public async Task <bool> Handle(MarcarExcluidaMensagenUsuarioAlunoIdCommand request, CancellationToken cancellationToken)
        {
            var usuario = await usuarioRepository.ObterUsuarioNaoExcluidoPorCpf(request.Cpf) ?? throw new ArgumentException($"CPF não encontrado {request.Cpf}");

            var usuarioNotificacao = await usuarioNotificacaoRepositorio.ObterPorUsuarioAlunoNotificacao(usuario.Id, request.CodigoAluno, request.NotificacaoId);

            if (usuarioNotificacao == null)
            {
                usuarioNotificacao = new UsuarioNotificacao
                {
                    UsuarioId           = usuario.Id,
                    UsuarioCpf          = usuario.Cpf,
                    CriadoPor           = usuario.Cpf,
                    NotificacaoId       = request.NotificacaoId,
                    MensagemExcluida    = true,
                    MensagemVisualizada = true
                };
                return(await usuarioNotificacaoRepositorio.Criar(usuarioNotificacao));
            }
            else
            {
                usuarioNotificacao.MensagemExcluida = true;
                return(await usuarioNotificacaoRepositorio.Atualizar(usuarioNotificacao));
            }
        }
        public async Task <UsuarioNotificacao> ObterPorNotificacaoIdEhUsuarioCpf(long notificacaoId, string usuarioCpf, long dreCodigoEol, string ueCodigoEol, long codigoEolAluno)
        {
            var query = @"select
                            id as Id,
	                        usuario_Id as UsuarioId,
                            codigo_eol_aluno as CodigoEolAluno,
                            notificacao_id as NotificacaoId,
                            dre_codigoeol as DreCodigoEol,
                            ue_codigoeol as UeCodigoEol,
                            usuario_cpf as UsuarioCpf
                        from
	                        public.usuario_notificacao_leitura
                        where
	                        usuario_cpf = @usuarioCpf
                            and codigo_eol_aluno = @codigoEolAluno
	                        and notificacao_id = @notificacaoId
	                        and dre_codigoeol = @dreCodigoEol
	                        and ue_codigoeol = @ueCodigoEol"    ;

            UsuarioNotificacao retorno = null;

            await using (var conn = new NpgsqlConnection(variaveisGlobaisOptions.AEConnection))
            {
                conn.Open();
                retorno = await conn.QueryFirstOrDefaultAsync <UsuarioNotificacao>(
                    query, new { usuarioCpf, notificacaoId, dreCodigoEol, ueCodigoEol, codigoEolAluno });

                conn.Close();
            }
            return(retorno);
        }
        public async Task <bool> Atualizar(UsuarioNotificacao usuarioNotificacao)
        {
            await using var conn = new NpgsqlConnection(variaveisGlobaisOptions.AEConnection);
            conn.Open();
            var dataAtual = DateTime.Now;
            var retorno   = await conn.ExecuteAsync(
                @"UPDATE public.usuario_notificacao_leitura
                         SET 
                             alteradoem= @dataAtual, 
                             alteradopor= @UsuarioId, 
                             mensagemVisualizada= @MensagemVisualizada,
                             mensagemExcluida= @MensagemExcluida
                         WHERE id = @Id ;",
                new
            {
                dataAtual,
                usuarioNotificacao.UsuarioId,
                usuarioNotificacao.MensagemVisualizada,
                usuarioNotificacao.MensagemExcluida,
                usuarioNotificacao.Id
            });

            conn.Close();
            return(true);
        }
Exemple #4
0
        public HttpResponseMessage AtualizarNotificacaoUsuario(HttpRequestMessage request, NotificacaoViewModel notificacao)
        {
            return(CreateHttpResponse(request, () =>
            {
                var usuario = _usuarioRep.GetSingle(int.Parse(HttpContext.Current.User.Identity.GetUserId()));

                var notif = usuario.Notificacoes.FirstOrDefault(x => x.NotificacaoId.Equals(notificacao.Id));

                if (notif != null)
                {
                    notif.DtAlteracao = DateTime.Now;
                    notif.UsuarioAlteracao = usuario;
                    notif.Ativo = !notificacao.Checked;
                }
                else
                {
                    notif = new UsuarioNotificacao
                    {
                        UsuarioId = usuario.Id,
                        NotificacaoId = notificacao.Id,
                        UsuarioCriacao = usuario,
                        DtCriacao = DateTime.Now,
                        Ativo = !notificacao.Checked
                    };

                    usuario.Notificacoes.Add(notif);
                }

                _unitOfWork.Commit();

                var response = request.CreateResponse(HttpStatusCode.OK, new { success = true });

                return response;
            }));
        }
Exemple #5
0
 private void ArmazenarNotificacoesUsuarios(Notificacao notificacao, List <Usuarios> usuarios)
 {
     foreach (var u in usuarios)
     {
         var usuarioNotificacao = UsuarioNotificacao.Criar(notificacao, u.UsuarioId, DateTime.Now);
         unitOfWork.UsuariosNotificacao.Add(usuarioNotificacao);
         unitOfWork.Complete();
     }
 }
        public async Task <bool> Criar(UsuarioNotificacao usuarioNotificacao)
        {
            try
            {
                await using var conn = new NpgsqlConnection(variaveisGlobaisOptions.AEConnection);
                conn.Open();
                var dataAtual = DateTime.Now;
                var retorno   = await conn.ExecuteAsync(
                    @"INSERT INTO public.usuario_notificacao_leitura
                    (usuario_id,
                     notificacao_id,
                           criadoem,
                    codigo_eol_aluno, 
                      dre_codigoeol, 
                       ue_codigoeol, 
                        usuario_cpf,
                        codigo_eol_turma,
                          criadopor,
                     mensagemvisualizada,
                     mensagemexcluida
                        )
                    VALUES(@UsuarioId,
                           @NotificacaoId,
                           @dataAtual,
                           @CodigoEolAluno,
                           @DreCodigoEol,
                           @UeCodigoEol,
                           @UsuarioCpf,
                           @CodigoEolTurma,
                           @CriadoPor,
                           @MensagemVisualizada,
                           @MensagemExcluida
                        );",
                    new
                {
                    usuarioNotificacao.UsuarioId,
                    usuarioNotificacao.NotificacaoId,
                    dataAtual,
                    usuarioNotificacao.CodigoEolAluno,
                    usuarioNotificacao.DreCodigoEol,
                    usuarioNotificacao.UeCodigoEol,
                    usuarioNotificacao.UsuarioCpf,
                    usuarioNotificacao.CodigoEolTurma,
                    usuarioNotificacao.CriadoPor,
                    usuarioNotificacao.MensagemVisualizada,
                    usuarioNotificacao.MensagemExcluida
                });

                conn.Close();
                return(true);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public async Task <UsuarioNotificacao> Selecionar(UsuarioNotificacao usuarioNotificacao)
        {
            await using var conn = new NpgsqlConnection(variaveisGlobaisOptions.AEConnection);
            conn.Open();
            var dataAtual = DateTime.Now;
            var retorno   = await conn.QueryFirstOrDefaultAsync <UsuarioNotificacao>(
                @"SELECT id, usuario_id UsuarioId, notificacao_id NotificacaoId from public.usuario_notificacao_leitura
                     WHERE usuario_id = @UsuarioId AND notificacao_id = @NotificacaoId", new { usuarioNotificacao.UsuarioId, usuarioNotificacao.NotificacaoId });

            conn.Close();
            return(retorno);
        }
Exemple #8
0
        private static async Task ConfirmarLeitura(IMediator mediator, UsuarioNotificacaoDto usuarioMensagem, string cpfUsuario, Dominio.Entidades.Aluno aluno)
        {
            var usuarioNotificacao = new UsuarioNotificacao
            {
                UsuarioCpf          = cpfUsuario,
                NotificacaoId       = usuarioMensagem.NotificacaoId,
                DreCodigoEol        = long.Parse(aluno.CodigoDre),
                UeCodigoEol         = aluno.CodigoEscola,
                CodigoEolAluno      = aluno.CodigoEol,
                UsuarioId           = usuarioMensagem.UsuarioId,
                MensagemVisualizada = usuarioMensagem.MensagemVisualizada,
            };

            await IncluiConfirmacaoDeLeitura(mediator, usuarioNotificacao);
        }
Exemple #9
0
        public void NotificarEncomendaRecebida(Encomenda encomenda)
        {
            var notificacao = Notificacao.NotificarEncomendaRecebida(encomenda);

            unitOfWork.Notificacoes.Add(notificacao);
            unitOfWork.Complete();

            var notificacaoEncomenda = NotificacaoEncomenda.Criar(notificacao.Id, encomenda.Id);

            unitOfWork.NotificacaoEncomenda.Salvar(notificacaoEncomenda);
            unitOfWork.Complete();

            var usuarioNotificacao = UsuarioNotificacao.Criar(notificacao, encomenda.UsuarioId, DateTime.Now);

            unitOfWork.UsuariosNotificacao.Add(usuarioNotificacao);
            unitOfWork.Complete();
        }
        public Funcionario Save(FuncionarioEditVM vm)
        {
            Funcionario model;

            if (vm.Id > 0)
            {
                model = Get(vm.Id);
                model.Inject(vm);
            }
            else
            {
                model = vm.ConvertTo <Funcionario>();
            }

            model.Latitude  = vm.Latitude;
            model.Longitude = vm.Longitude;

            model.Usuario.Inject(vm);

            if (model.Usuario.Notificacoes == null)
            {
                model.Usuario.Notificacoes = new List <UsuarioNotificacao>();
            }
            else
            {
                model.Usuario.Notificacoes.Foreach((notificacao) => notificacao.Notificar = false);
            }

            if (vm.Notificacoes != null)
            {
                vm.Notificacoes.Foreach((vmNotificacao) =>
                {
                    var notificacao = model.Usuario.Notificacoes.SingleOrDefault(a => a.TipoEvento == vmNotificacao);
                    if (notificacao == null)
                    {
                        notificacao = new UsuarioNotificacao();
                        model.Usuario.Notificacoes.Add(notificacao);
                    }

                    notificacao.Notificar = true;
                });
            }

            return(Save(model));
        }
Exemple #11
0
        private void NotificarEncomenda(Encomenda encomenda)
        {
            var notificacao = Notificacao.NotificarEncomendaRecebida(encomenda);

            unitOfWork.Notificacoes.Add(notificacao);
            unitOfWork.Complete();

            var notificacaoEncomenda = NotificacaoEncomenda.Criar(notificacao.Id, encomenda.Id);

            unitOfWork.NotificacaoEncomenda.Salvar(notificacaoEncomenda);
            unitOfWork.Complete();

            var usuarios = unitOfWork.Usuarios.GetAllUsuarios().Where(u => u.PerfilId == 2 || u.PerfilId == 3).ToList();

            foreach (var u in usuarios)
            {
                var usuarioNotificacao = UsuarioNotificacao.Criar(notificacao, u.UsuarioId, DateTime.Now);
                unitOfWork.UsuariosNotificacao.Add(usuarioNotificacao);
                unitOfWork.Complete();
            }
        }
Exemple #12
0
        public void NotificarReuniao(Reuniao reuniao)
        {
            var notificacao = Notificacao.NotificarReuniao(reuniao);

            unitOfWork.Notificacoes.Add(notificacao);
            unitOfWork.Complete();

            var notificacaoReuniao = NotificacaoReuniao.Criar(reuniao.Id, notificacao.Id);

            unitOfWork.NotificacaoReuniao.Add(notificacaoReuniao);
            unitOfWork.Complete();

            var usuarios = unitOfWork.Usuarios.GetAllUsuarios();

            foreach (var u in usuarios)
            {
                var usuarioNotificacao = UsuarioNotificacao.Criar(notificacao, u.UsuarioId, DateTime.Now);
                unitOfWork.UsuariosNotificacao.Add(usuarioNotificacao);
                unitOfWork.Complete();
            }
        }
Exemple #13
0
        public void NotificarMudanca(Mudanca mudanca)
        {
            var tipoMudanca = unitOfWork.TiposMudanca.GetAllTiposMudanca().Where(p => p.Id == mudanca.TipoMudancaId).FirstOrDefault().Descricao;
            var notificacao = Notificacao.NotificarMudanca(mudanca, tipoMudanca);

            unitOfWork.Notificacoes.Add(notificacao);
            unitOfWork.Complete();

            var notificacaoMudanca = NotificacaoMudanca.Criar(notificacao.Id, mudanca.Id);

            unitOfWork.NotificacaoMudanca.Salvar(notificacaoMudanca);
            unitOfWork.Complete();

            var usuarios = unitOfWork.Usuarios.GetAllUsuarios();

            foreach (var u in usuarios)
            {
                var usuarioNotificacao = UsuarioNotificacao.Criar(notificacao, u.UsuarioId, DateTime.Now);
                unitOfWork.UsuariosNotificacao.Add(usuarioNotificacao);
                unitOfWork.Complete();
            }
        }
Exemple #14
0
        public void NotificarReserva(Reserva r)
        {
            var nomeLocal   = unitOfWork.Locais.GetLocalPorId(r.LocalId.Value).Nome;
            var notificacao = Notificacao.NotificarReserva(r, nomeLocal);

            unitOfWork.Notificacoes.Add(notificacao);
            unitOfWork.Complete();

            var notificacaoReserva = NotificacaoReserva.Criar(r.Id, notificacao.Id);

            unitOfWork.NotificacaoReserva.Add(notificacaoReserva);
            unitOfWork.Complete();

            var usuarios = unitOfWork.Usuarios.GetAllUsuarios();
            UsuarioNotificacao usuarioNotificacao = null;

            foreach (var u in usuarios)
            {
                usuarioNotificacao = UsuarioNotificacao.Criar(notificacao, u.UsuarioId, DateTime.Now);
                unitOfWork.UsuariosNotificacao.Add(usuarioNotificacao);
                unitOfWork.Complete();
            }
        }
Exemple #15
0
        public async Task <UsuarioNotificacao> ObterPorNotificacaoIdEhUsuarioCpf(long notificacaoId, string usuarioCpf, long dreCodigoEol, string ueCodigoEol)
        {
            var query = @"select
	                        *
                        from
	                        public.usuario_notificacao_leitura
                        where
	                        usuario_cpf = @usuarioCpf
	                        and notificacao_id = @notificacaoId
	                        and dre_codigoeol = @dreCodigoEol
	                        and ue_codigoeol = @ueCodigoEol"    ;

            UsuarioNotificacao retorno = null;

            await using (var conn = new NpgsqlConnection(ConnectionStrings.Conexao))
            {
                conn.Open();
                retorno = await conn.QueryFirstOrDefaultAsync <UsuarioNotificacao>(
                    query, new { usuarioCpf, notificacaoId, dreCodigoEol, ueCodigoEol });

                conn.Close();
            }
            return(retorno);
        }
 public void Add(UsuarioNotificacao usuarionotificacao)
 {
     _ctx.UsuarioNotificacoes.Add(usuarionotificacao);
 }
Exemple #17
0
 public UsuarioNotificacaoCommand(UsuarioNotificacao usuarioNotificacao)
 {
     UsuarioNotificacao = usuarioNotificacao;
 }
Exemple #18
0
        private static async Task IncluiConfirmacaoDeLeitura(IMediator mediator, UsuarioNotificacao usuarioNotificacao)
        {
            usuarioNotificacao.InserirAuditoria();

            await mediator.Send(new UsuarioNotificacaoCommand(usuarioNotificacao));
        }