public object Post(FormularioModel model) { tbCuestionario cuestionarioResult = null; try { //Asigno nulos a las listas de paciente y cuestionario ya que modifican la salidan y nunca //Se utilizan como entrada model.Paciente.tbCuestionario = null; model.Cuestionario.tbCuestionarioPregunta = null; //Inserto el request ServiceRequestBusiness serviceRequestBusiness = new ServiceRequestBusiness(); tbRequest request = new tbRequest(); Func <tbRequest, bool> predicado = p => p.req_codigo == model.CodigoRequest; request = ((List <tbRequest>)serviceRequestBusiness.Read(predicado)).FirstOrDefault(); if (request != null) { if (request.req_body_response != null) { model = JsonConvert.DeserializeObject <FormularioModel>(request.req_body_response); log.Info("Retorno el modelo almacenado en DB_DACS: " + JsonConvert.SerializeObject(model)); return(Request.CreateResponse(HttpStatusCode.Created, model)); } else { //Tengo que procesar todo nuevemente model = JsonConvert.DeserializeObject <FormularioModel>(request.req_body_request); cuestionarioResult = InsertFormulario(model); } } else { //Insert bd local request = new tbRequest() { req_fecha_request = DateTime.Now, req_fecha_response = null, req_body_request = JsonConvert.SerializeObject(model), req_estado = false, req_codigo = model.CodigoRequest }; //Creo objeto en base local serviceRequestBusiness.Create(request); cuestionarioResult = InsertFormulario(model); } if (cuestionarioResult != null) { //Actualizo tabla request request.req_fecha_response = DateTime.Now; request.req_body_response = JsonConvert.SerializeObject(model); request.req_estado = true; serviceRequestBusiness.Update(request); //Actualizo el modelo con los datos del paciente almacenado model.Paciente.pac_dni = (this.ObtenerPaciente(model.Paciente.pac_dni)).pac_dni; //Actualizo el modelo con los datos del cuestionario insertado var cuestionarioResponse = (tbCuestionario)cuestionarioResult; model.Cuestionario.cue_id = cuestionarioResponse.cue_id; model.Cuestionario.pac_id = model.Paciente.pac_id; model.ListaCuestionarioPregunta.ForEach(x => x.cue_id = cuestionarioResponse.cue_id); return(Request.CreateResponse(HttpStatusCode.Created, model)); } else { return(Request.CreateResponse(HttpStatusCode.InternalServerError, "No se inserto registros.")); } } catch (Exception ex) { log.Error("Mensaje de Error: " + ex.Message); if (ex.InnerException != null) { log.Error("Inner exception: " + ex.InnerException.Message); } throw ex; } }
public HttpResponseMessage Post([FromBody] ItrisPlanillaEntity model) { log.Info("- Ingreso -"); HttpResponseMessage response = new HttpResponseMessage(); try { ServiceRequestBusiness serviceRequestBusiness = new ServiceRequestBusiness(); tbRequest request = new tbRequest(); //Valido request en DACS Func <tbRequest, bool> predicado = p => p.req_codigo == model.CodigoRequest; request = ((List <tbRequest>)serviceRequestBusiness.Read(predicado)).FirstOrDefault(); if (request != null) { if (request.req_body_response != null) { model = JsonConvert.DeserializeObject <ItrisPlanillaEntity>(request.req_body_response); log.Info("Retorno el modelo almacenado en DB_DACS: " + JsonConvert.SerializeObject(model)); return(Request.CreateResponse(HttpStatusCode.Created, model)); } else { //Envio nuevamente el request a itris si no se proceso model = JsonConvert.DeserializeObject <ItrisPlanillaEntity>(request.req_body_request); this.PostItris(model); } } else { //Insert bd local request = new tbRequest() { req_fecha_request = DateTime.Now, req_fecha_response = null, req_body_request = JsonConvert.SerializeObject(model), req_estado = false, req_codigo = model.CodigoRequest }; //Creo objeto en base local serviceRequestBusiness.Create(request); //Inserts itris this.PostItris(model); } //PERSISTENCIA ITRIS OK => ACTUALIZO BASE LOCAL CON OK if (model.Relevamiento.ID != 0) { request.req_fecha_response = DateTime.Now; request.req_body_response = JsonConvert.SerializeObject(model); request.req_estado = true; serviceRequestBusiness.Update(request); response = Request.CreateResponse(HttpStatusCode.Created, model); } else { response = Request.CreateResponse(HttpStatusCode.InternalServerError, "Itris no inserto registros."); } } catch (Exception ex) { log.Error("Mensaje de Error: " + ex.Message); if (ex.InnerException != null) { log.Error("Inner exception: " + ex.InnerException.Message); } response = Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message); } log.Info("Retorna objeto: " + JsonConvert.SerializeObject(model)); log.Info("- Salio -"); return(response); }