public MsgRetorno AdaptarMsgRetorno(MsgOperadorDependencia msg, IList <string> erros) { _log.TraceMethodStart(); MsgRetorno retorno = new MsgRetorno(); string identificador = string.Empty; DateTime dataEnvio = DateTime.Now; string status = erros.Any() ? ConstantesIntegracao.StatusIntegracao.Erro : ConstantesIntegracao.StatusIntegracao.OK; if (msg != null && msg.header != null) { identificador = msg.header.identificadorEnvio; dataEnvio = msg.header.dataHoraEnvio.HasValue ? msg.header.dataHoraEnvio.Value : DateTime.Now; } var header = new MsgHeaderRetorno() { identificador = identificador, dataHoraEnvio = dataEnvio, dataHoraRetorno = DateTime.Now, status = status }; if (erros.Any()) { header.erros = erros.ToArray(); } retorno.header = header; _log.TraceMethodEnd(); return(retorno); }
public ActionResult postOperadorDependencia([FromBody] MsgOperadorDependencia msg) { List <string> listaErros = new List <string>(); MsgRetorno retorno; try { _log.TraceMethodStart(); if (msg == null) { throw new ApplicationException("Mensagem inválida"); } if (msg.header == null) { throw new ApplicationException("Mensagem inválida - chave header não informada"); } if (msg.body == null) { throw new ApplicationException("Mensagem inválida - chave body não informada"); } if (msg.body.RegistroOperadorDependencia == null) { throw new ApplicationException("Mensagem inválida - corpo da mensagem não informado"); } if (string.IsNullOrWhiteSpace(msg.header.identificadorEnvio)) { msg.header.identificadorEnvio = Util.GerarIdentificadorUnico(); } _log.Information($"Iniciando o processamento da mensagem [post] com o identificador {msg.header.identificadorEnvio}"); _log.SetIdentificador(msg.header.identificadorEnvio); if (!Util.ValidarApiKey(Request, _configuracaoBaseAPI)) { return(StatusCode((int)HttpStatusCode.Unauthorized)); } listaErros = Util.ValidarModel(ModelState); if (listaErros.Any()) { retorno = _adaptador.AdaptarMsgRetorno(msg, listaErros); _log.TraceMethodEnd(); return(StatusCode((int)HttpStatusCode.BadRequest, retorno)); } tb_depope tb_depope = _adaptador.AdaptarMsgOperadorDependenciaToModeltb_depope(msg.body.RegistroOperadorDependencia, ConstantesIntegracao.ModoIntegracao.ModoInclusao); _ServiceOperadorDependencia.GravarOperadorDependencia(tb_depope); retorno = _adaptador.AdaptarMsgRetorno(msg, listaErros); _log.TraceMethodEnd(); return(StatusCode((int)HttpStatusCode.OK, retorno)); } catch (LogErrorException LogEx) { listaErros.Add(LogEx.Message); retorno = _adaptador.AdaptarMsgRetorno(msg, listaErros); return(StatusCode((int)HttpStatusCode.InternalServerError, retorno)); } catch (ApplicationException appEx) { listaErros.Add(appEx.Message); retorno = _adaptador.AdaptarMsgRetorno(msg, listaErros); _log.Error(appEx); _log.TraceMethodEnd(); return(StatusCode((int)HttpStatusCode.BadRequest, retorno)); } catch (Exception ex) { listaErros.Add(ex.Message); retorno = _adaptador.AdaptarMsgRetorno(msg, listaErros); _log.Error(ex); _log.TraceMethodEnd(); return(StatusCode((int)HttpStatusCode.InternalServerError, retorno)); } }