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)));
        }
Пример #3
0
 public List <mview_Cronograma> GetCursosComUltimaAulaDoDia(ParametrosAvaliacaoAula parametros)
 {
     throw new NotImplementedException();
 }
Пример #4
0
 public List <AlunoTemaAvaliacao> GetAlunoTemaAvaliacao(ParametrosAvaliacaoAula parametros)
 {
     throw new NotImplementedException();
 }
Пример #5
0
        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);
            }
        }
Пример #6
0
        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);
            }
        }