public IHttpActionResult GetById(int id)
        {
            try
            {
                var entity = _classificacaoBusiness.GetById(id);

                if (entity == null)
                {
                    return(NotFound());
                }

                //Monta response
                _result = Ok(Retorno <ClassificacaoResponse> .Criar(true, "Consulta Realizada Com Sucesso", Mapper.Map <Classificacao, ClassificacaoResponse>(entity)));

                //Retorna o response
                return(_result);
            }
            catch (Exception)
            {
                throw new HttpResponseException(HttpStatusCode.InternalServerError);
            }
        }
예제 #2
0
        //[AllowAnonymous]
        public IHttpActionResult UpdateClassificacao([FromBody] TicketUpdateClassificacaoRequest request)
        {
            AtendenteEmpresa        atendenteEmpresa = null;
            List <AtendenteEmpresa> listaAtendentes  = null;

            try
            {
                //Valida objeto
                if (!ModelState.IsValid)
                {
                    return(BadRequest("Dados inválidos."));
                }

                var entityInDb = _ticketBusiness.GetById(request.Id);

                //Verifica se objeto existe
                if (entityInDb == null)
                {
                    return(NotFound());
                }

                entityInDb.IdClassificacao   = request.IdClassificacao;
                entityInDb.DataHoraAlteracao = DateTime.Now;

                if (_ticketBusiness.Update(entityInDb))
                {
                    //Recupera o ticket atualizado
                    entityInDb = _ticketBusiness.GetById(request.Id);

                    //Monta response
                    _result = Ok(Retorno <Ticket> .Criar(true, "Atualização Realizada Com Sucesso", entityInDb));

                    //===========================================================================================
                    //Enviar email de atualização do atendimento
                    //===========================================================================================
                    var usuarioCliente = _usuarioClienteBusiness.GetById(request.IdUsuarioCliente);
                    var classificacao  = _classificacaoBusiness.GetById(entityInDb.IdClassificacao);

                    if (request.UserTypeAgent == "S")
                    {
                        atendenteEmpresa = _atendenteEmpresaBusiness.GetById(request.IdAtendente);

                        if (atendenteEmpresa != null)
                        {
                            if (atendenteEmpresa.Copia)
                            {
                                listaAtendentes = _atendenteEmpresaBusiness.GetList(x => x.IdEmpresa == atendenteEmpresa.IdEmpresa && x.Id != atendenteEmpresa.Id).ToList();
                            }
                        }
                    }

                    try
                    {
                        _ticketBusiness.EnviarEmailConfirmacao(request.UserTypeAgent, null, classificacao, entityInDb, usuarioCliente, atendenteEmpresa, listaAtendentes, nameof(classificacao));
                    }
                    catch (Exception)
                    {
                        //Monta response
                        _result = Ok(Retorno <Ticket> .Criar(true, "Atualização Realizada Com Sucesso - Email de confirmação não enviado", entityInDb));
                    }

                    //===========================================================================================

                    //Retorna o response
                    return(_result);
                }
                else
                {
                    return(BadRequest("Nenhum registro atualizado. Verifique os dados enviados."));
                }
            }
            catch (Exception)
            {
                throw new HttpResponseException(HttpStatusCode.InternalServerError);
            }
        }