public IHttpActionResult GetById(int id) { try { var entity = _statusTicketBusiness.GetById(id); if (entity == null) { return(NotFound()); } //Monta response _result = Ok(Retorno <StatusTicketResponse> .Criar(true, "Consulta Realizada Com Sucesso", Mapper.Map <StatusTicket, StatusTicketResponse>(entity))); //Retorna o response return(_result); } catch (Exception) { throw new HttpResponseException(HttpStatusCode.InternalServerError); } }
//[AllowAnonymous] public IHttpActionResult Insert([FromBody] TicketRequest request) { UsuarioCliente usuarioCliente = null; AtendenteEmpresa atendenteEmpresa = null; List <AtendenteEmpresa> listaAtendentes = null; try { //Valida objeto if (!ModelState.IsValid) { return(BadRequest("Dados inválidos.")); } var entity = Mapper.Map <TicketRequest, Ticket>(request); var pathAnexosUsuario = request.PathAnexos; entity.DataHoraInicial = DateTime.Now; _ticketBusiness.Insert(ref entity); if (entity.Id > 0) { //Monta response _result = Ok(Retorno <TicketResponse> .Criar(true, "Inclusão Realizada Com Sucesso", Mapper.Map <Ticket, TicketResponse>(entity))); //Trata dos anexos if (Directory.Exists(pathAnexosUsuario)) { //Zipa todos os anexos var zipName = Arquivo.Compress(ConfigurationManager.AppSettings["CaminhoFisicoAnexo"], pathAnexosUsuario, entity.Id); //====================================== //Guarda anexo (zip) no banco de dados //====================================== var anexo = new Anexo { IdTicket = entity.Id, Nome = zipName }; _anexoBusiness.Insert(ref anexo); } //=========================================================================================== //Enviar email de confirmação de criação do novo atendimento //=========================================================================================== var ticketResponse = _ticketBusiness.GetByIdFilled(entity.Id, false); if (request.UserTypeAgent == "S") { usuarioCliente = _usuarioClienteBusiness.GetById(request.IdUsuarioCliente); atendenteEmpresa = _atendenteEmpresaBusiness.GetById(request.IdAtendente); if (atendenteEmpresa != null) { if (atendenteEmpresa.Copia) { listaAtendentes = _atendenteEmpresaBusiness.GetList(x => x.IdEmpresa == atendenteEmpresa.IdEmpresa && x.IdEmpresa != atendenteEmpresa.IdEmpresa).ToList(); } } } else { usuarioCliente = _usuarioClienteBusiness.GetById(request.IdUsuarioCliente); listaAtendentes = _atendenteEmpresaBusiness.GetAll(ticketResponse.UsuarioCliente.Cliente.IdEmpresa).ToList(); } var statusTicket = _statusTicketBusiness.GetById(request.IdStatusTicket); try { _ticketBusiness.EnviarEmailConfirmacao(request.UserTypeAgent, statusTicket, null, entity, usuarioCliente, atendenteEmpresa, listaAtendentes, "insert"); } catch (Exception) { //Monta response _result = Ok(Retorno <TicketResponse> .Criar(true, "Inclusão Realizada Com Sucesso - Email de confirmação não enviado", Mapper.Map <Ticket, TicketResponse>(entity))); } //=========================================================================================== } //Retorna o response return(_result); } catch (Exception) { throw new HttpResponseException(HttpStatusCode.InternalServerError); } }