Estou actualmente a implementar o GeradorDeNotificacoes(dos SN) e deparei-me com um grande dilema.
Funcionamento do GeradorDeNotificacoes
O gerador de notificações têm como objectivo receber eventos das mais variadas fontes (atribuição de notas, notícias sobre um determinado curso, etc...), e gerar uma notificação, caso exista alguém subscrito para receber esse tipo de informação.
Para já o gerador de notificações apenas têm um método
public bool criarNotificacao(string[] campos,int topico), o qual recebe um conjunto de informação na forma nome=valor, e o nº do tópico ao qual a informação está associada.
Formulação do Dilema
Sabendo que as notifiçaões a enviar para a PISNA devem ser
"user friendly", e que os geradores de eventos apenas devem enviar campos/valores que podem ou não gerar notificações, como é que se transforma uma coisa noutra?
Quem e como gerar notificações?
Atendendo à deversidade de geradores de eventos que pode existir, como é possível transformar
CCD=14 em
"Parabéns , tiveste 14 valores a CCD"
ou
LEIC="Re-estruturação do curso aprovada hoje, entra em vigor dia 1 de Setembro de 2004" & MaisInfo="http://www.deetc.isel.ipl.pt/leic/"
em
"Novidades sobre o LEIC! Re-estruturação do curso aprovada hoje, entra em vigor dia 1 de Setembro de 2004. Vai a http://www.deetc.isel.ipl.pt/leic/ para saberes mais!"
...pois...??????
Pois é! O Gerador de notificações é suposto conseguir fazer isto, mas e algoritmo que o faça?
Não me parece nada trivial, é só exceppções à regra, o principal problema prende-se com o facto de apenas existir um gerador de notificações para vários tipos de geradores de notificações.
Possiveis Soluções
- Um gerador para cada tipo de notificação (geradorDeNotificacoesDeNoticias, um geradorDeNotificacoesDeNotas, etc)
- Um algoritmo de geração de notificações que consuante o tópico gera notificações diferentes.
Por enquanto só tenho estas como possíveis soluções (caso alguém conheça outras formas de resolver isto, p.f. coloquem nos comentários)
A segunda parece-me a mais eficiente, sobretudo aliada ao facto de podermos utilizar templates de geração notificação para cada tipo de tópico.
Vou investigar mais um pouco esta possivel solução...
Que tal alguém fazer uns comentários?! Hein...? ;).