public List <StationToLineModel> PostSaveGeometry(SaveGeometryModel model) { var res = new List <StationToLineModel>(); using (var logic = new LineLogic()) { var line = logic.GetLine(model.Id); if (line != null) { line.PathGeometry = model.Data; logic.SaveChanges(); string fs = "0:0"; StationsToLine st = null; st = line.Direction == 0 ? line.StationsToLines.OrderBy(s => s.Position).Last() : line.StationsToLines.OrderBy(s => s.Position).First(); if (line.StationsToLines.Select(l => l.ArrivalDate).Max() > st.ArrivalDate && line.Direction == 0) { st.ArrivalDate = line.StationsToLines.Select(l => l.ArrivalDate).Max(); } fs = st.ArrivalDate.Hours + ":" + st.ArrivalDate.Minutes; var data = new SaveDurationsModel { LineId = model.Id, Durations = model.Durations, FirstStation = fs }; var ln = logic.ReCalcTimeTable(data); if (ln != null) { res = ln.StationsToLines .OrderBy(z => z.Position) .Select(z => new StationToLineModel(z)) .ToList(); } } } return(res); }
public JsonResult EditLine(GridLineModel model) { int LineIdToAutoCorrect = -1; using (var logic = new LineLogic()) { switch ((GridOperation)Enum.Parse(typeof(GridOperation), model.Oper, true)) { case GridOperation.edit: var existingLine = logic.GetLine(model.Id); if (existingLine != null) { model.UpdateDbModel(existingLine); logic.SaveChanges(); using (var busesToLinesLogic = new BusToLineLogic()) { busesToLinesLogic.UpdateBusToLine(model.Id, model.Bus); } LineIdToAutoCorrect = existingLine.Id; } break; case GridOperation.del: logic.DeleteLine(model.Id); break; } } if (LineIdToAutoCorrect != -1) { var weekStart = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek); using (var l = new tblScheduleLogic()) { l.AutoCorrectLineSchedules(LineIdToAutoCorrect, weekStart, weekStart.AddDays(7)); } } return(new JsonResult { Data = true }); }