Пример #1
0
        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
            });
        }