public async Task <bool> Handle(AutorizacaoNotasCommand request, CancellationToken cancellationToken) { try { var usuario = _context.Usuarios.SingleOrDefault(x => x.Id == request.IdUsuario); var nota = _context.NotadeCompras.SingleOrDefault(x => x.Id == request.IdNota); _context.AutorizacaoHistoricos.Add(new AutorizacaoHistorico(DateTime.Now, usuario, nota, usuario.Papel)); if (ValidacoeseVerificacoes.VerificarConfiguracaoAutorizacao(_context, nota, usuario.Papel)) { nota.AprovarNota(); _context.NotadeCompras.Update(nota); } await _context.SaveChangesAsync(cancellationToken); return(true); } catch (Exception ex) { return(false); } }
public async Task <IList <NotadeCompraDTO> > Handle(ListarNotasparaAprovacaoQuery request, CancellationToken cancellationToken) { var listaresultado = new List <NotadeCompraDTO>(); var usuario = _context.Usuarios.SingleOrDefault(x => x.Id == request.IdUsuario); if (usuario == null) { return(listaresultado); } //teste adm if (usuario.Papel == PapelAprovacao.Adm) { return(await _context.NotadeCompras.ProjectTo <NotadeCompraDTO>(_mapper.ConfigurationProvider).OrderBy(o => o.DataEmissao).ToListAsync(cancellationToken)); } var listadenotas = _context.NotadeCompras.Where(GetQuery(request, usuario)).OrderBy(o => o.DataEmissao).ToList(); foreach (var nota in listadenotas) { if (_context.AutorizacaoHistoricos.Any(x => x.Nota.Id == nota.Id && x.Usuario.Id == usuario.Id)) { continue; } var hist = _context.AutorizacaoHistoricos.Where(x => x.Nota.Id == nota.Id).ToList(); if (ValidacoeseVerificacoes.VerificarConfiguracaoAutorizacaoDiponivel(_context, nota, hist, usuario)) { listaresultado.Add(_mapper.Map <NotadeCompraDTO>(nota)); continue; } } return(listaresultado); }