Example #1
0
        public async Task <Response> Handle(EditarNota request, CancellationToken cancellationToken)
        {
            if (request == null)
            {
                return(new Response(false, "Informe os dados da nota que deseja alterar", request));
            }

            Usuario usuario = await _repositorioUsuario.CarregarObjetoPeloID(request.UsuarioId);

            Ticket ticket = await _repositorioTicket.CarregarObjetoPeloID(request.TicketId);

            Nota nota = ticket.Notas.FirstOrDefault(n => n.Id == request.IdNota);

            AddNotifications(new Contract()
                             .Requires()
                             .IsNotNull(usuario, "Usuário", "Usuário não encontrado")
                             .IsNotNull(ticket, "Ticket", "Ticket não encontrado")
                             .IsNotNull(nota, "Nota", "Nota não encontrada")
                             );

            if (Invalid)
            {
                return(new Response(false, "Verifique os erros e tente novamente", Notifications));
            }

            nota.Editar(request.Titulo, request.Descricao, usuario);
            //_repositorioTicket.Editar(ticket);
            _repositorioNota.Editar(nota);

            var result = new Response(true, "Nota alterada com sucesso!", null);

            return(await Task.FromResult(result));
        }