public JsonResult Crear(GestanteMedicamentoViewModel gestanteMedicamentos) { try { if (ModelState.IsValid) { var result = _gestanteManager.GrabarGestanteMedicamento(gestanteMedicamentos); RegistrarAccion((byte)AccionSesion.Crear, (byte)ObjetoSesion.CrearGestanteMedicamento, result); return(result > 0 ? Json(new { Success = 1, GestanteMedicamentoId = result, ex = "" }) : Json(new { Success = 0, ex = new Exception("No se pudo registrar los medicamentos.").Message.ToString() })); } } catch (Exception ex) { // If Sucess== 0 then Unable to perform Save/Update Operation and send Exception to View as JSON return(Json(new { Success = 0, ex = ex.Message.ToString() })); } return(Json(new { Success = 0, ex = new Exception("No se pudo registrar los medicamentos.").Message.ToString() })); }
public GestanteMedicamentoViewModel MostrarGestanteMedicamento(int id) { var gestanteMedicamento = _db.GestanteMedicamentos.Find(id); if (gestanteMedicamento == null) { return(null); } var gestanteMedModel = new GestanteMedicamentoViewModel { GestanteMedicamentoId = gestanteMedicamento.GestanteMedicamentoId, GestanteKey = gestanteMedicamento.GestanteKey, EstablecimientoId = gestanteMedicamento.EstablecimientoId, Fecha = gestanteMedicamento.Fecha, NombreMedico = gestanteMedicamento.NombreMedico, GestanteDni = gestanteMedicamento.Gestante.GestanteNroDocumento, Nombres = gestanteMedicamento.Gestante.Nombres, APaterno = gestanteMedicamento.Gestante.APaterno, AMaterno = gestanteMedicamento.Gestante.AMaterno, Medicamentos = new List <GestanteMedicamentoDetalleViewModel>() }; foreach (var gestanteMedDetalleModel in gestanteMedicamento.GestanteMedicamentoDetalle.Select(gdm => new GestanteMedicamentoDetalleViewModel { GestanteMedicamentoDetalleId = gdm.GestanteMedicamentoDetalleId, GestanteMedicamentoId = gdm.GestanteMedicamentoId, MedicamentoId = gdm.MedicamentoId, Descripcion = gdm.Medicamento.Descripcion, Dosis = gdm.Dosis, Dias = gdm.Dias, Cantidad = gdm.Cantidad, Instrucciones = gdm.Instrucciones })) { gestanteMedModel.Medicamentos.Add(gestanteMedDetalleModel); } return(gestanteMedModel); }
public int GrabarGestanteMedicamento(GestanteMedicamentoViewModel gestanteMedicamentos) { try { var gmId = gestanteMedicamentos.GestanteMedicamentoId; GestanteMedicamento gestanteMed; if (gmId > 0) { gestanteMed = _db.GestanteMedicamentos.FirstOrDefault(gm => gm.GestanteMedicamentoId == gmId); if (gestanteMed == null) { return(0); } gestanteMed.Fecha = gestanteMedicamentos.Fecha; gestanteMed.NombreMedico = gestanteMedicamentos.NombreMedico; gestanteMed.EstablecimientoId = gestanteMedicamentos.EstablecimientoId; _db.Entry(gestanteMed).State = EntityState.Modified; if (gestanteMedicamentos.Medicamentos != null && gestanteMedicamentos.Medicamentos.Any()) { foreach (var detail in gestanteMedicamentos.Medicamentos) { detail.GestanteMedicamento = gestanteMedicamentos; if (detail.GestanteMedicamentoDetalleId == 0) { var newMed = new GestanteMedicamentoDetalle() { GestanteMedicamentoId = gmId, MedicamentoId = detail.MedicamentoId, Dosis = detail.Dosis, Dias = detail.Dias, Cantidad = detail.Cantidad, Instrucciones = detail.Instrucciones }; gestanteMed.GestanteMedicamentoDetalle.Add(newMed); } else { var gesMedDetalle = _db.GestanteMedicamentoDetalle.Single(x => x.GestanteMedicamentoDetalleId == detail.GestanteMedicamentoDetalleId); gesMedDetalle.MedicamentoId = detail.MedicamentoId; gesMedDetalle.Dosis = detail.Dosis; gesMedDetalle.Dias = detail.Dias; gesMedDetalle.Cantidad = detail.Cantidad; gesMedDetalle.Instrucciones = detail.Instrucciones; _db.Entry(gesMedDetalle).State = EntityState.Modified; } } if (gestanteMed.GestanteMedicamentoDetalle != null) { foreach (var gmr in gestanteMed.GestanteMedicamentoDetalle.Where(x => gestanteMedicamentos.Medicamentos.All(u => u.GestanteMedicamentoDetalleId != x.GestanteMedicamentoDetalleId)).ToList()) { _db.GestanteMedicamentoDetalle.Remove(gmr); } } } else { gestanteMed.GestanteMedicamentoDetalle = null; var detailsToRemove = _db.GestanteMedicamentoDetalle.Where(x => x.GestanteMedicamentoId == gmId); foreach (var gdm in detailsToRemove) { _db.GestanteMedicamentoDetalle.Remove(gdm); } } _db.SaveChanges(); return(gmId); } gestanteMed = new GestanteMedicamento() { GestanteKey = gestanteMedicamentos.GestanteKey, Fecha = gestanteMedicamentos.Fecha, NombreMedico = gestanteMedicamentos.NombreMedico, EstablecimientoId = gestanteMedicamentos.EstablecimientoId }; foreach (var medicamento in gestanteMedicamentos.Medicamentos.Select(med => new GestanteMedicamentoDetalle() { MedicamentoId = med.MedicamentoId, Dosis = med.Dosis, Dias = med.Dias, Cantidad = med.Cantidad, Instrucciones = med.Instrucciones })) { gestanteMed.GestanteMedicamentoDetalle.Add(medicamento); } _db.GestanteMedicamentos.Add(gestanteMed); _db.SaveChanges(); return(gestanteMed.GestanteMedicamentoId); } catch (Exception e) { return(0); } }