public ActionResult Create(HorarioViewModel Omodelo) { var OMensaje = new Mensaje(); try { using (RELOJBIOEntities wdb = new RELOJBIOEntities()) { var OUltimoHorario = wdb.Shift.OrderByDescending(a => a.ShiftID).FirstOrDefault(); int wId = OUltimoHorario.ShiftID + 1; var OHorario = new Shift { ShiftID = wId, Code = Omodelo.Code, Name = Omodelo.Name, ShiftTypeID = Omodelo.ShiftTypeID, Color = Omodelo.Color, Flexible = Omodelo.Flexible, Start = Omodelo.Start, End = Omodelo.End, RangeStartIni = Omodelo.RangeStartIni, RangeStartFin = Omodelo.RangeStartFin, RangeEndIni = Omodelo.RangeEndIni, RangeEndFin = Omodelo.RangeEndFin, AllowBefore = Omodelo.AllowBefore, BeforeStart = Omodelo.BeforeStart, AfterEnd = Omodelo.AfterEnd, AllowAfter = Omodelo.AllowAfter, Late = Omodelo.Late, LateCome = Omodelo.LateCome, Early = Omodelo.Early, EarlyOut = Omodelo.EarlyOut, EarlyCome = Omodelo.EarlyCome, }; wdb.Shift.Add(OHorario); wdb.SaveChanges(); foreach (var item in Omodelo.ListDescansoCodigoSeleccionados) { var OExiste = wdb.BreakShift.Where(a => a.ShiftID == OHorario.ShiftID && a.BreakID == item).FirstOrDefault(); if (OExiste == null) { var OUltimoHorarioDescanso = wdb.BreakShift.OrderByDescending(a => a.BreakShiftID).FirstOrDefault(); int wID = OUltimoHorarioDescanso.BreakShiftID + 1; var OHorarioDescanso = new BreakShift { BreakShiftID = wID, ShiftID = wId, BreakID = item }; wdb.BreakShift.Add(OHorarioDescanso); wdb.SaveChanges(); } } OMensaje.Tipo = "Exito"; OMensaje.Msg = "Horario Creado con exito"; Session["Mensaje"] = OMensaje; return(RedirectToAction("Index", "Horario")); } } catch (DbEntityValidationException e) { var errorMessages = e.EntityValidationErrors.SelectMany(x => x.ValidationErrors).Select(x => x.ErrorMessage); var fullErrorMessage = string.Join("; ", errorMessages); var exceptionMessage = string.Concat(e.Message, " El error de validacion es: ", fullErrorMessage); OMensaje.Tipo = "Error"; OMensaje.Msg = exceptionMessage; Session["Mensaje"] = OMensaje; return(View(Omodelo)); } }
public ActionResult Edit(HorarioViewModel Omodelo) { var OMensaje = new Mensaje(); try { using (RELOJBIOEntities wdb = new RELOJBIOEntities()) { var OHorario = wdb.Shift.Where(a => a.ShiftID == Omodelo.ShiftID).FirstOrDefault(); OHorario.Code = Omodelo.Code; OHorario.Name = Omodelo.Name; OHorario.ShiftTypeID = Omodelo.ShiftTypeID; OHorario.Color = Omodelo.Color; OHorario.Flexible = Omodelo.Flexible; OHorario.Start = Omodelo.Start; OHorario.End = Omodelo.End; OHorario.RangeStartIni = Omodelo.RangeStartIni; OHorario.RangeStartFin = Omodelo.RangeStartFin; OHorario.RangeEndIni = Omodelo.RangeEndIni; OHorario.RangeEndFin = Omodelo.RangeEndFin; OHorario.AllowBefore = Omodelo.AllowBefore; OHorario.BeforeStart = Omodelo.BeforeStart; OHorario.AfterEnd = Omodelo.AfterEnd; OHorario.AllowAfter = Omodelo.AllowAfter; OHorario.Late = Omodelo.Late; OHorario.LateCome = Omodelo.LateCome; OHorario.Early = Omodelo.Early; OHorario.EarlyOut = Omodelo.EarlyOut; OHorario.EarlyCome = Omodelo.EarlyCome; wdb.Entry(OHorario).State = EntityState.Modified; wdb.SaveChanges(); foreach (var item in Omodelo.ListDescansoCodigoSeleccionados) { var OExiste = wdb.BreakShift.Where(a => a.ShiftID == OHorario.ShiftID && a.BreakID == item).FirstOrDefault(); if (OExiste == null) { var OUltimoHorarioDescanso = wdb.BreakShift.OrderByDescending(a => a.BreakShiftID).FirstOrDefault(); int wID = OUltimoHorarioDescanso.BreakShiftID + 1; var OHorarioDescanso = new BreakShift { BreakShiftID = wID, ShiftID = OHorario.ShiftID, BreakID = item }; wdb.BreakShift.Add(OHorarioDescanso); wdb.SaveChanges(); } } var ListEliminarDescansosHorarios = wdb.BreakShift.Where(a => a.ShiftID == Omodelo.ShiftID && !Omodelo.ListDescansoCodigoSeleccionados.Any(w => a.BreakID == w)).ToList(); foreach (var item in ListEliminarDescansosHorarios) { wdb.BreakShift.Remove(item); wdb.SaveChanges(); } OMensaje.Tipo = "Exito"; OMensaje.Msg = "El Horario Fue Modificado con exito"; Session["Mensaje"] = OMensaje; return(RedirectToAction("Index", "Horario")); } } catch (DbEntityValidationException e) { var errorMessages = e.EntityValidationErrors.SelectMany(x => x.ValidationErrors).Select(x => x.ErrorMessage); var fullErrorMessage = string.Join("; ", errorMessages); var exceptionMessage = string.Concat(e.Message, " El error de validacion es: ", fullErrorMessage); OMensaje.Tipo = "Error"; OMensaje.Msg = exceptionMessage; Session["Mensaje"] = OMensaje; return(View(Omodelo)); } }