public void NotificacaoAvaliacao_SetNotificacoesAvaliacao_SeletivasMensagemTratada() { var parametros = new ParametrosAvaliacaoAula(); var notificacao = NotificacaoEntityTestData.GetNotificacaoAvaliacao(); var devices = NotificacaoEntityTestData.GetDeviceNotificacoes(); var hoje = DateTime.Now.ToString("dd/MM"); var seletivas = new NotificacaoBusiness(new NotificacaoEntity(), new AccessEntity(), new AlunoEntity(), new NotificacaoDuvidasAcademicasEntity(), new MenuBusiness(new MenuEntity(), new PessoaEntity(), new BlackListEntity()) ).SetNotificacoesAvaliacao(devices, notificacao, parametros); Assert.IsTrue(seletivas.All(x => !x.Mensagem.Contains("#DATA"))); Assert.IsTrue(seletivas.All(x => x.Mensagem.Contains(hoje))); }
public void NotificacaoAvaliacao_SetNotificacoesAvaliacao_SeletivasMensagemTratadaDiaParametizado() { var notificacao = NotificacaoEntityTestData.GetNotificacaoAvaliacao(); var devices = NotificacaoEntityTestData.GetDeviceNotificacoes(); var parametros = new ParametrosAvaliacaoAula(); parametros.Data = new DateTime(2019, 01, 02); var data = new DateTime(2019, 01, 02).ToString("yyyy-MM-dd"); var dataTratada = new DateTime(2019, 01, 02).ToString("dd/MM/yyyy"); var seletivas = new NotificacaoBusiness(new NotificacaoEntity(), new AccessEntity(), new AlunoEntity(), new NotificacaoDuvidasAcademicasEntity(), new MenuBusiness(new MenuEntity(), new PessoaEntity(), new BlackListEntity())).SetNotificacoesAvaliacao(devices, notificacao, parametros); Assert.IsTrue(seletivas.All(x => !x.Mensagem.Contains("#DATA"))); Assert.IsTrue(seletivas.All(x => x.Mensagem.Contains(dataTratada))); }
public List <mview_Cronograma> GetCursosComUltimaAulaDoDia(ParametrosAvaliacaoAula parametros) { throw new NotImplementedException(); }
public List <AlunoTemaAvaliacao> GetAlunoTemaAvaliacao(ParametrosAvaliacaoAula parametros) { throw new NotImplementedException(); }
public List <NotificacaoSeletiva> SetNotificacoesAvaliacao(List <DeviceNotificacao> devices, Notificacao notificacao, ParametrosAvaliacaoAula parametros) { using (MiniProfiler.Current.Step("Alterando notificações de avaliação")) { List <NotificacaoSeletiva> notificacaoSeletivas = new List <NotificacaoSeletiva> (); DateTime dataMensagem = parametros.Data != default(DateTime) ? parametros.Data : DateTime.Today; var devicesInfoAgrupadas = devices.GroupBy(x => x.InfoAdicional).ToList(); var mensagem = notificacao.Texto.Replace("#DATA", dataMensagem.ToString("dd/MM/yyyy")); foreach (var item in devicesInfoAgrupadas) { var notificacaoSeletivaAvaliacao = new NotificacaoSeletiva() { NotificacaoTipoId = notificacao.TipoNotificacao, Titulo = notificacao.Titulo, Mensagem = mensagem, InfoAdicional = item.Key, DevicesUsuarios = item.Select(x => x.DeviceToken).ToList() }; notificacaoSeletivas.Add(notificacaoSeletivaAvaliacao); } return(notificacaoSeletivas); } }
public List <DeviceNotificacao> GetDevicesNotificacaoAvaliacaoAula(Notificacao notificacao, ParametrosAvaliacaoAula parametros) { using (MiniProfiler.Current.Step("Obtendo devices notificação aula")) { var alunosPresentes = _notificacaoRepository.GetAlunoTemaAvaliacao(parametros); var cronogramaUltimasAulasDoDia = _notificacaoRepository.GetCursosComUltimaAulaDoDia(parametros); var cursoHorarioNotificacao = cronogramaUltimasAulasDoDia.Select(x => new { CourseId = x.intCourseID, DateTime = x.dteDateTime.AddMinutes(x.intDuration).AddMinutes(TempoAposAula) }).ToList(); var alunosNotificar = new List <AlunoTemaAvaliacao> (); foreach (var curso in cursoHorarioNotificacao.Where(x => x.DateTime <= DateTime.Now)) { var alunos = alunosPresentes.Where(x => x.CourseId == curso.CourseId); alunosNotificar.AddRange(alunos); } var devicesInscritos = AgrupaDevicesAvaliacao(alunosNotificar, notificacao); return(devicesInscritos); } }