//Notificação para quem interagiu (Resposta/Replica) private void InserirNotificacaoInteracoes(DuvidaAcademicaContract duvida, List <int> clientIds, EnumTipoMensagemNotificacaoDuvidasAcademicas tipo) { foreach (var id in clientIds) { var PossuiNotificacaoDeDuvidaHomologada = _rep.GetNotificacoesDuvidaPorAluno(duvida.DuvidaId.Value, id, (int)EnumTipoMensagemNotificacaoDuvidasAcademicas.DuvidaRespostaHomologada).Any(); var PossuiNotificacaoDeDevidaRespondidaMedGrupo = _rep.GetNotificacoesDuvidaPorAluno(duvida.DuvidaId.Value, id, (int)EnumTipoMensagemNotificacaoDuvidasAcademicas.DuvidaRespostaMedgrupo).Any(); var PosuiDuvidasFavoritdasHomologada = _rep.GetNotificacoesDuvidaPorAluno(duvida.DuvidaId.Value, id, (int)EnumTipoMensagemNotificacaoDuvidasAcademicas.DuvidaFavoritadaRespostaHomologada).Any(); var PossuiDuvidasFavoritadasRespondidaMedGrupo = _rep.GetNotificacoesDuvidaPorAluno(duvida.DuvidaId.Value, id, (int)EnumTipoMensagemNotificacaoDuvidasAcademicas.DuvidaFavoritadaRespostaMedgrupo).Any(); if (!PossuiNotificacaoDeDuvidaHomologada && !PossuiNotificacaoDeDevidaRespondidaMedGrupo && !PosuiDuvidasFavoritdasHomologada && !PossuiDuvidasFavoritadasRespondidaMedGrupo) { SetNotificacaoAtiva(duvida.DuvidaId.Value, id, (int)tipo); SetNotificacaoDuvidaAcademica(duvida, id, tipo); } } }
private int SetNotificacaoDuvidaAcademica(DuvidaAcademicaContract duvida, int clientId, EnumTipoMensagemNotificacaoDuvidasAcademicas tipo, int?respostaClientId = null) { var descricao = GetDuvidasAcademicasMensagens(duvida, tipo); var notificacoesExistentes = _rep.GetNotificacoesDuvidaPorAluno(duvida.DuvidaId.Value, duvida.ClientId, (int)tipo); var hasNotificacaoEnviada = notificacoesExistentes.Any(x => x.Status == EnumStatusNotificacao.Enviado); var id = tipo == EnumTipoMensagemNotificacaoDuvidasAcademicas.ReplicaResposta ? respostaClientId.Value : duvida.DuvidaId.Value; var notificacaoDuvida = new NotificacaoDuvidaAcademica() { NotificacaoId = Utilidades.NovasInteracoesDuvidasAcademicas, DuvidaId = duvida.DuvidaId.Value, Status = hasNotificacaoEnviada ? EnumStatusNotificacao.Enviado : EnumStatusNotificacao.NaoEnviado, ClientId = respostaClientId != null ? respostaClientId.Value : clientId, Descricao = descricao, TipoCategoria = tipo }; var result = _rep.SetNotificacaoDuvidaAcademica(notificacaoDuvida); return(result); }
private string GetDuvidasAcademicasMensagens(DuvidaAcademicaContract duvida, EnumTipoMensagemNotificacaoDuvidasAcademicas tipo) { var descricao = string.Empty; if (duvida.Origem != null && duvida.OrigemSubnivel != null) { descricao = "em \"" + duvida.Origem + " - " + duvida.OrigemSubnivel + "\""; } switch (tipo) { case EnumTipoMensagemNotificacaoDuvidasAcademicas.DuvidaRespondida: descricao = string.Format(Mensagens.NotificacaoMensagens.DuvidaResposta, descricao); break; case EnumTipoMensagemNotificacaoDuvidasAcademicas.DuvidaRespostaHomologada: descricao = string.Format(Mensagens.NotificacaoMensagens.DuvidaRespostaHomologada, descricao); break; case EnumTipoMensagemNotificacaoDuvidasAcademicas.DuvidaRespostaMedgrupo: descricao = string.Format(Mensagens.NotificacaoMensagens.DuvidaRespostaMedgrupo, descricao); break; case EnumTipoMensagemNotificacaoDuvidasAcademicas.DuvidaFavoritadaRespondida: descricao = string.Format(Mensagens.NotificacaoMensagens.DuvidaFavoritadaRespondida, descricao); break; case EnumTipoMensagemNotificacaoDuvidasAcademicas.DuvidaFavoritadaRespostaHomologada: descricao = string.Format(Mensagens.NotificacaoMensagens.DuvidaFavoritadaRespostaHomologada, descricao); break; case EnumTipoMensagemNotificacaoDuvidasAcademicas.DuvidaFavoritadaRespostaMedgrupo: descricao = string.Format(Mensagens.NotificacaoMensagens.DuvidaFavoritadaRespostaMedgrupo, descricao); break; case EnumTipoMensagemNotificacaoDuvidasAcademicas.RespostaHomologadaMedGrupo: descricao = string.Format(Mensagens.NotificacaoMensagens.RespostaHomologadaMedGrupo, descricao); break; case EnumTipoMensagemNotificacaoDuvidasAcademicas.NovaReplica: descricao = string.Format(Mensagens.NotificacaoMensagens.ReplicaResposta, descricao); break; case EnumTipoMensagemNotificacaoDuvidasAcademicas.InteracaoDuvidaRespostaMedGrupo: descricao = string.Format(Mensagens.NotificacaoMensagens.InteracaoDuvidaRespostaMedGrupo, descricao); break; case EnumTipoMensagemNotificacaoDuvidasAcademicas.InteracaoDuvidaHomologada: descricao = string.Format(Mensagens.NotificacaoMensagens.InteracaoDuvidaHomologada, descricao); break; case EnumTipoMensagemNotificacaoDuvidasAcademicas.ReplicaDuvida: descricao = string.Format(Mensagens.NotificacaoMensagens.ReplicaDuvida, descricao); break; case EnumTipoMensagemNotificacaoDuvidasAcademicas.ReplicaResposta: descricao = string.Format(Mensagens.NotificacaoMensagens.ReplicaResposta, descricao); break; } return(descricao); }
public static IList <DuvidaAcademicaContract> GetList_DuvidaAcademicaContract() { var listaDuvidas = new List <DuvidaAcademicaContract>(); #region mock duvidas var duvidaAcademica1 = new DuvidaAcademicaContract { ApostilaId = null, AprovacaoMedGrupo = false, Arquivada = false, BitAtiva = false, BitEditada = null, BitEncaminhada = false, BitEnviada = false, BitResponderMaisTarde = false, BitVisualizada = false, CaminhoImagem = null, ClientId = 150589, CodigoMarcacao = null, Congelada = false, CursoAluno = "MEDCURSO/MED", Data = null, DataCriacao = new DateTime(2019, 04, 22), Denuncia = false, DenunciaAluno = false, Descricao = "Tenho uma dúvida referente ao capítulo de cirurgia do coração", Dono = false, DownVotes = 0, DuvidaId = 7226, Editada = false, EspecialidadeAluno = "PEDIATRIA", EstadoAluno = "RJ", EstadoFake = null, ExercicioId = null, Favorita = false, Genero = 1, InteracaoId = null, Lida = false, MaisDe7Dias = false, MedGrupoId = null, MinhasRespostas = false, NRespostas = 0, NomeAluno = "A", NomeAlunoCompleto = "ALINE MASIERO FERNANDES MARQUES", NomeFake = null, NomeGestor = null, NotificacaoId = null, NumeroCapitulo = null, NumeroCategoriaApostila = null, NumeroQuestao = null, ObservacaoMedGrupo = null, Origem = null, OrigemSubnivel = null, ProductId = null, ProfessoresEncaminhados = new List <tblDuvidasAcademicas_DuvidasEncaminhadas>(), QuantidadeDuvidas = null, QuantidadeReplicas = 0, Questao = null, QuestaoId = null, Replicas = null, RespostaId = null, RespostaMedGrupo = false, RespostaParentId = 0, TemRascunho = false, TipoAvaliacao = 0, TipoCategoria = null, TipoCategoriaApostila = null, TipoDenuncia = 0, TipoExercicioId = null, TipoInteracao = 0, TipoQuestaoId = null, TrechoSelecionado = null, UpVotes = 0, VotadoDownvote = false, VotadoUpvote = false }; var duvidaAcademica2 = new DuvidaAcademicaContract { ApostilaId = 218, AprovacaoMedGrupo = false, Arquivada = false, BitAtiva = false, BitEditada = null, BitEncaminhada = false, BitEnviada = false, BitResponderMaisTarde = false, BitVisualizada = false, CaminhoImagem = null, ClientId = 267711, CodigoMarcacao = "selection1555944610739", Congelada = false, CursoAluno = "MEDCURSO/MED", Data = null, DataCriacao = new DateTime(2019, 04, 22), Denuncia = false, DenunciaAluno = false, Descricao = "Teste", Dono = false, DownVotes = 0, DuvidaId = 7208, Editada = false, EspecialidadeAluno = "Aperfeiçoamento", EstadoAluno = "RJ", EstadoFake = null, ExercicioId = null, Favorita = false, Genero = 0, InteracaoId = null, Lida = false, MaisDe7Dias = false, MedGrupoId = null, MinhasRespostas = false, NRespostas = 0, NomeAluno = "A", NomeAlunoCompleto = "ACADEMICO 3 TESTE", NomeFake = null, NomeGestor = null, NotificacaoId = null, NumeroCapitulo = 1, NumeroCategoriaApostila = "1", NumeroQuestao = null, ObservacaoMedGrupo = null, Origem = "CLM 02", OrigemSubnivel = "Capítulo 1", ProductId = 18459, ProfessoresEncaminhados = new List <tblDuvidasAcademicas_DuvidasEncaminhadas>(), QuantidadeDuvidas = null, QuantidadeReplicas = 0, Questao = null, QuestaoId = null, Replicas = null, RespostaId = null, RespostaMedGrupo = false, RespostaParentId = 0, TemRascunho = false, TipoAvaliacao = 0, TipoCategoria = 2, TipoCategoriaApostila = 2, TipoDenuncia = 0, TipoExercicioId = null, TipoInteracao = 0, TipoQuestaoId = null, TrechoSelecionado = " NEURO-INTENSIVISMO Você que está na Residência de Clínica Médica percebeu que na terapia intensiva não existe somente a preocupação principal com o sistema cardiorrespiratório, mas também, com sistema nervoso central, o qual pode estar acometido diretamente por uma agressão, ou pode ficar <comp class=\"CLASSTEMPORARIA_ duvidaComp\" id=\"selection1555944610739\">secundariamente</comp> lesado devido um problema cardíaco, por exemplo.", UpVotes = 0, VotadoDownvote = false, VotadoUpvote = false }; var duvidaAcademica3 = new DuvidaAcademicaContract { ApostilaId = null, AprovacaoMedGrupo = false, Arquivada = false, BitAtiva = false, BitEditada = null, BitEncaminhada = false, BitEnviada = false, BitResponderMaisTarde = false, BitVisualizada = false, CaminhoImagem = null, ClientId = 227167, CodigoMarcacao = null, Congelada = false, CursoAluno = "MEDCURSO/MED", Data = null, DataCriacao = new DateTime(2019, 04, 22), Denuncia = false, DenunciaAluno = false, Descricao = "Teste okok", Dono = false, DownVotes = 0, DuvidaId = 7207, Editada = false, EspecialidadeAluno = "Revalidação de Diploma", EstadoAluno = "RJ", EstadoFake = null, ExercicioId = null, Favorita = true, Genero = 0, InteracaoId = null, Lida = false, MaisDe7Dias = false, MedGrupoId = null, MinhasRespostas = false, NRespostas = 0, NomeAluno = "B", NomeAlunoCompleto = "BRUNO TARDIVO DE OLIVEIRA TESTE", NomeFake = null, NomeGestor = null, NotificacaoId = null, NumeroCapitulo = null, NumeroCategoriaApostila = null, NumeroQuestao = null, ObservacaoMedGrupo = null, Origem = null, OrigemSubnivel = null, ProductId = null, ProfessoresEncaminhados = new List <tblDuvidasAcademicas_DuvidasEncaminhadas>(), QuantidadeDuvidas = null, QuantidadeReplicas = 0, Questao = null, QuestaoId = null, Replicas = null, RespostaId = null, RespostaMedGrupo = false, RespostaParentId = 0, TemRascunho = false, TipoAvaliacao = 0, TipoCategoria = null, TipoCategoriaApostila = null, TipoDenuncia = 0, TipoExercicioId = null, TipoInteracao = 0, TipoQuestaoId = null, TrechoSelecionado = null, UpVotes = 0, VotadoDownvote = false, VotadoUpvote = false }; var duvidaAcademica4 = new DuvidaAcademicaContract { ApostilaId = 273, AprovacaoMedGrupo = false, Arquivada = false, BitAtiva = false, BitEditada = null, BitEncaminhada = false, BitEnviada = false, BitResponderMaisTarde = false, BitVisualizada = false, CaminhoImagem = null, ClientId = 227167, CodigoMarcacao = "selection1555943893839", Congelada = false, CursoAluno = "MEDCURSO/MED", Data = null, DataCriacao = new DateTime(2019, 04, 22), Denuncia = false, DenunciaAluno = false, Descricao = "Teste dúvida", Dono = false, DownVotes = 0, DuvidaId = 7206, Editada = false, EspecialidadeAluno = "Revalidação de Diploma", EstadoAluno = "RJ", EstadoFake = null, ExercicioId = null, Favorita = false, Genero = 0, InteracaoId = null, Lida = false, MaisDe7Dias = false, MedGrupoId = null, MinhasRespostas = false, NRespostas = 0, NomeAluno = "B", NomeAlunoCompleto = "BRUNO TARDIVO DE OLIVEIRA TESTE", NomeFake = null, NomeGestor = null, NotificacaoId = null, NumeroCapitulo = 2, NumeroCategoriaApostila = "2", NumeroQuestao = null, ObservacaoMedGrupo = null, Origem = "CLM 09", OrigemSubnivel = "Capítulo 2", ProductId = 18569, ProfessoresEncaminhados = new List <tblDuvidasAcademicas_DuvidasEncaminhadas>(), QuantidadeDuvidas = null, QuantidadeReplicas = 0, Questao = null, QuestaoId = null, Replicas = null, RespostaId = null, RespostaMedGrupo = false, RespostaParentId = 0, TemRascunho = false, TipoAvaliacao = 0, TipoCategoria = 2, TipoCategoriaApostila = 2, TipoDenuncia = 0, TipoExercicioId = null, TipoInteracao = 0, TipoQuestaoId = null, TrechoSelecionado = " Cefaleias Primárias <comp class=\"CLASSTEMPORARIA_ duvidaComp\" id=\"selection1555943893839\">As cefaleias primárias são aquelas não associadas a lesões neurológicas ou distúrbios sistêmicos. Representam a própria \"doença\" do paciente. Possuem mecanismos fisiopatológicos complexos, embora não totalmente claros</comp>. A Classificação Internacional das Cefaleias as dividem em quatro tipos= 1- Enxaqueca; 2- Tensional; 3- Trigêmino-autonômica; 4- Outras. Agora, as mais importantes para o seu concurso são as três representadas a seguir no quadro de resumo.", UpVotes = 0, VotadoDownvote = false, VotadoUpvote = false }; var duvidaAcademica5 = new DuvidaAcademicaContract { ApostilaId = null, AprovacaoMedGrupo = false, Arquivada = false, BitAtiva = false, BitEditada = null, BitEncaminhada = false, BitEnviada = false, BitResponderMaisTarde = false, BitVisualizada = false, CaminhoImagem = null, ClientId = 241747, CodigoMarcacao = null, Congelada = false, CursoAluno = "MEDCURSO/MED", Data = null, DataCriacao = new DateTime(2019, 04, 22), Denuncia = false, DenunciaAluno = false, Descricao = "Teste completo", Dono = false, DownVotes = 0, DuvidaId = 7205, Editada = false, EspecialidadeAluno = "ACUPUNTURA", EstadoAluno = "RJ", EstadoFake = null, ExercicioId = null, Favorita = false, Genero = 0, InteracaoId = null, Lida = false, MaisDe7Dias = false, MedGrupoId = null, MinhasRespostas = false, NRespostas = 0, NomeAluno = "B", NomeAlunoCompleto = "BRUNA SANTORO ZIMBARRA", NomeFake = null, NomeGestor = null, NotificacaoId = null, NumeroCapitulo = null, NumeroCategoriaApostila = null, NumeroQuestao = null, ObservacaoMedGrupo = null, Origem = null, OrigemSubnivel = null, ProductId = null, ProfessoresEncaminhados = new List <tblDuvidasAcademicas_DuvidasEncaminhadas>(), QuantidadeDuvidas = null, QuantidadeReplicas = 0, Questao = null, QuestaoId = null, Replicas = null, RespostaId = null, RespostaMedGrupo = false, RespostaParentId = 0, TemRascunho = false, TipoAvaliacao = 0, TipoCategoria = null, TipoCategoriaApostila = null, TipoDenuncia = 0, TipoExercicioId = null, TipoInteracao = 0, TipoQuestaoId = null, TrechoSelecionado = null, UpVotes = 0, VotadoDownvote = false, VotadoUpvote = false }; #endregion listaDuvidas.Add(duvidaAcademica1); listaDuvidas.Add(duvidaAcademica2); listaDuvidas.Add(duvidaAcademica3); listaDuvidas.Add(duvidaAcademica4); listaDuvidas.Add(duvidaAcademica5); return(listaDuvidas); }
public static IList <DuvidaAcademicaContract> GetList_DuvidaAcademica_FavoritaAprovadaMedGrupo() { var listaDuvidas = new List <DuvidaAcademicaContract>(); #region mock duvidas var duvidaAcademica1 = new DuvidaAcademicaContract { ApostilaId = null, AprovacaoMedGrupo = false, Arquivada = false, BitAtiva = false, BitEditada = null, BitEncaminhada = false, BitEnviada = false, BitResponderMaisTarde = false, BitVisualizada = false, CaminhoImagem = null, ClientId = 150589, CodigoMarcacao = null, Congelada = false, CursoAluno = "MEDCURSO/MED", Data = null, DataCriacao = new DateTime(2019, 04, 22), Denuncia = false, DenunciaAluno = false, Descricao = "Tenho uma dúvida referente ao capítulo de cirurgia do coração", Dono = false, DownVotes = 0, DuvidaId = 7226, Editada = false, EspecialidadeAluno = "PEDIATRIA", EstadoAluno = "RJ", EstadoFake = null, ExercicioId = null, Favorita = true, Genero = 1, InteracaoId = null, Lida = false, MaisDe7Dias = false, MedGrupoId = null, MinhasRespostas = false, NRespostas = 0, NomeAluno = "A", NomeAlunoCompleto = "ALINE MASIERO FERNANDES MARQUES", NomeFake = null, NomeGestor = null, NotificacaoId = null, NumeroCapitulo = null, NumeroCategoriaApostila = null, NumeroQuestao = null, ObservacaoMedGrupo = null, Origem = null, OrigemSubnivel = null, ProductId = null, ProfessoresEncaminhados = new List <tblDuvidasAcademicas_DuvidasEncaminhadas>(), QuantidadeDuvidas = null, QuantidadeReplicas = 0, Questao = null, QuestaoId = null, Replicas = null, RespostaId = null, RespostaMedGrupo = false, RespostaParentId = 0, TemRascunho = false, TipoAvaliacao = 0, TipoCategoria = null, TipoCategoriaApostila = null, TipoDenuncia = 0, TipoExercicioId = null, TipoInteracao = 0, TipoQuestaoId = null, TrechoSelecionado = null, UpVotes = 0, VotadoDownvote = false, VotadoUpvote = false }; var duvidaAcademica2 = new DuvidaAcademicaContract { ApostilaId = 218, AprovacaoMedGrupo = true, Arquivada = false, BitAtiva = false, BitEditada = null, BitEncaminhada = false, BitEnviada = false, BitResponderMaisTarde = false, BitVisualizada = false, CaminhoImagem = null, ClientId = 267711, CodigoMarcacao = "selection1555944610739", Congelada = false, CursoAluno = "MEDCURSO/MED", Data = null, DataCriacao = new DateTime(2019, 04, 22), Denuncia = false, DenunciaAluno = false, Descricao = "Teste", Dono = false, DownVotes = 0, DuvidaId = 7208, Editada = false, EspecialidadeAluno = "Aperfeiçoamento", EstadoAluno = "RJ", EstadoFake = null, ExercicioId = null, Favorita = false, Genero = 0, InteracaoId = null, Lida = false, MaisDe7Dias = false, MedGrupoId = null, MinhasRespostas = false, NRespostas = 0, NomeAluno = "A", NomeAlunoCompleto = "ACADEMICO 3 TESTE", NomeFake = null, NomeGestor = null, NotificacaoId = null, NumeroCapitulo = 1, NumeroCategoriaApostila = "1", NumeroQuestao = null, ObservacaoMedGrupo = null, Origem = "CLM 02", OrigemSubnivel = "Capítulo 1", ProductId = 18459, ProfessoresEncaminhados = new List <tblDuvidasAcademicas_DuvidasEncaminhadas>(), QuantidadeDuvidas = null, QuantidadeReplicas = 0, Questao = null, QuestaoId = null, Replicas = null, RespostaId = null, RespostaMedGrupo = false, RespostaParentId = 0, TemRascunho = false, TipoAvaliacao = 0, TipoCategoria = 2, TipoCategoriaApostila = 2, TipoDenuncia = 0, TipoExercicioId = null, TipoInteracao = 0, TipoQuestaoId = null, TrechoSelecionado = " NEURO-INTENSIVISMO Você que está na Residência de Clínica Médica percebeu que na terapia intensiva não existe somente a preocupação principal com o sistema cardiorrespiratório, mas também, com sistema nervoso central, o qual pode estar acometido diretamente por uma agressão, ou pode ficar <comp class=\"CLASSTEMPORARIA_ duvidaComp\" id=\"selection1555944610739\">secundariamente</comp> lesado devido um problema cardíaco, por exemplo.", UpVotes = 0, VotadoDownvote = false, VotadoUpvote = false }; #endregion listaDuvidas.Add(duvidaAcademica1); listaDuvidas.Add(duvidaAcademica2); return(listaDuvidas); }
public static List <DuvidaAcademicaContract> GetRespostaPorDuvida() { var lista = new List <DuvidaAcademicaContract>(); var resposta = new DuvidaAcademicaContract { ApostilaId = null, AprovacaoMedGrupo = false, Arquivada = false, BitAtiva = false, BitEditada = null, BitEncaminhada = false, BitEnviada = false, BitResponderMaisTarde = false, BitVisualizada = false, CaminhoImagem = null, ClientId = 227167, CodigoMarcacao = null, Congelada = false, CursoAluno = "MEDCURSO/MED", Data = null, DataCriacao = new DateTime(2019, 04, 22), Denuncia = false, DenunciaAluno = false, Descricao = "Teste okok", Dono = false, DownVotes = 0, DuvidaId = 7207, Editada = false, EspecialidadeAluno = "Revalidação de Diploma", EstadoAluno = "RJ", EstadoFake = null, ExercicioId = null, Favorita = true, Genero = 0, InteracaoId = null, Lida = false, MaisDe7Dias = false, MedGrupoId = null, MinhasRespostas = false, NRespostas = 0, NomeAluno = "B", NomeAlunoCompleto = "BRUNO TARDIVO DE OLIVEIRA TESTE", NomeFake = null, NomeGestor = null, NotificacaoId = null, NumeroCapitulo = null, NumeroCategoriaApostila = null, NumeroQuestao = null, ObservacaoMedGrupo = null, Origem = null, OrigemSubnivel = null, ProductId = null, ProfessoresEncaminhados = new List <tblDuvidasAcademicas_DuvidasEncaminhadas>(), QuantidadeDuvidas = null, QuantidadeReplicas = 0, Questao = null, QuestaoId = null, Replicas = null, RespostaId = 1, RespostaMedGrupo = false, RespostaParentId = 0, TemRascunho = false, TipoAvaliacao = 0, TipoCategoria = null, TipoCategoriaApostila = null, TipoDenuncia = 0, TipoExercicioId = null, TipoInteracao = 0, TipoQuestaoId = null, TrechoSelecionado = null, UpVotes = 0, VotadoDownvote = false, VotadoUpvote = false }; lista.Add(resposta); return(lista); }