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); }
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; })); }
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); }
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); }
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)); }
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(); } }
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(); } }
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(); } }
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(); } }
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); }
public UsuarioNotificacaoCommand(UsuarioNotificacao usuarioNotificacao) { UsuarioNotificacao = usuarioNotificacao; }
private static async Task IncluiConfirmacaoDeLeitura(IMediator mediator, UsuarioNotificacao usuarioNotificacao) { usuarioNotificacao.InserirAuditoria(); await mediator.Send(new UsuarioNotificacaoCommand(usuarioNotificacao)); }