public async Task <IActionResult> Finalizar([FromBody] FinalizarTicket request) { try { var response = await _mediator.Send(request, CancellationToken.None); return(await ResponseAsync(response)); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public async Task <Response> Handle(FinalizarTicket request, CancellationToken cancellationToken) { if (request == null) { return(new Response(false, "Informe os dados do ticket para finalizar", request)); } Ticket ticket = await _repositorioTicket.CarregarObjetoPeloID(request.TicketId); Usuario usuario = await _repositorioUsuario.CarregarObjetoPeloID(request.UsuarioId); if (ticket == null) { return(new Response(false, "Ticket não localizado", request)); } if (usuario == null) { return(new Response(false, "Usuário não localizado", request)); } ticket.Finalizar(request.Solucao, usuario); //teste //NotificarFechamentoDeTicket notificacao = new NotificarFechamentoDeTicket(_servicoEmail); //notificacao.NotificaFechamentoDoTicket(ticket, usuario, request.Solucao); if (ticket.Invalid) { return(new Response(false, "Ticket inválido", ticket.Notifications)); } _repositorioTicket.Editar(ticket); _notificarNovoTicket.Finalizar(ticket, usuario, request.Solucao); Response result = new Response(true, "Ticket finalizado com sucesso!", null); return(await Task.FromResult(result)); }