Пример #1
0
        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));
            }
        }
Пример #2
0
        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));
        }