public IEnumerable <tblSchedule> GenerateSchedule(ScheduleParamsModel parameters) { var dateFrom = DateHelper.StringToDate(parameters.DateFrom); var dateTo = DateHelper.StringToDate(parameters.DateTo); var schedule = new List <tblSchedule>(); var fakeId = 0; if (!dateFrom.HasValue || !dateTo.HasValue || string.IsNullOrEmpty(parameters.LinesIds)) { return(null); } using (var logic = new LineLogic()) { var lines = logic.GetLinesByPlan(parameters.LinesIds.Split(',').Select(int.Parse)); foreach (var line in lines) { var dates = GetScheduleLineDates(line, dateFrom.Value, dateTo.Value, parameters); foreach (var date in dates) { var item = GenerateSingleSchedule(line, date, parameters.LeaveTime, parameters.ArriveTime); item.Id = fakeId++; schedule.Add(item); } } } return(schedule); }
static void Test_GetLineColumnIndexFromCharIndex() { TextBuffer text; SplitArray <int> lhi; int l, c; MakeTestData(out text, out lhi); LineLogic.GetLineColumnIndexFromCharIndex(text, lhi, 0, out l, out c); TestUtl.AssertEquals(0, l); TestUtl.AssertEquals(0, c); LineLogic.GetLineColumnIndexFromCharIndex(text, lhi, 2, out l, out c); TestUtl.AssertEquals(0, l); TestUtl.AssertEquals(2, c); LineLogic.GetLineColumnIndexFromCharIndex(text, lhi, 40, out l, out c); TestUtl.AssertEquals(4, l); TestUtl.AssertEquals(2, c); LineLogic.GetLineColumnIndexFromCharIndex(text, lhi, 71, out l, out c); // 71 --> EOF TestUtl.AssertEquals(6, l); TestUtl.AssertEquals(18, c); try { LineLogic.GetLineColumnIndexFromCharIndex(text, lhi, 72, out l, out c); TestUtl.Fail("exception must be thrown here."); } catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); } }
public MapStateModel GetState() { var res = new MapStateModel(); using (var logic = new LineLogic()) { res.Lines = logic.GetList().Select(z => new LineModel(z)).ToList(); foreach (var line in res.Lines) { line.Stations = logic.GetStations(line.Id) .OrderBy(z => z.Position) .Select(z => new StationToLineModel(z)) .ToList(); } } using (var logic = new StationsLogic()) { res.Stations = logic.GetList().Select(z => new StationModel(z)).ToList(); foreach (var station in res.Stations) { station.Students = logic.GetStudents(station.Id) .Select(z => new StudentToLineModel(z)) .ToList(); } } using (var logic = new tblStudentLogic()) { res.Students = logic.GetActiveStudents() .Select(z => new StudentShortInfo(z)) .ToList(); } return(res); }
static void Test_GetCharIndexFromLineColumnIndex() { TextBuffer text; SplitArray <int> lhi; SplitArray <LineDirtyState> lds; MakeTestData(out text, out lhi, out lds); TestUtl.AssertEquals(0, LineLogic.GetCharIndexFromLineColumnIndex(text, lhi, 0, 0)); TestUtl.AssertEquals(34, LineLogic.GetCharIndexFromLineColumnIndex(text, lhi, 2, 1)); TestUtl.AssertEquals(71, LineLogic.GetCharIndexFromLineColumnIndex(text, lhi, 6, 18)); try { LineLogic.GetCharIndexFromLineColumnIndex(text, lhi, 6, 19); TestUtl.Fail("exception must be thrown here."); } catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); } try { LineLogic.GetCharIndexFromLineColumnIndex(text, lhi, 0, 100); TestUtl.Fail("exception must be thrown here."); } catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); } }
public JsonResult EditLine(GridLineBusModel model) { using (var logic = new LineLogic()) { switch ((GridOperation)Enum.Parse(typeof(GridOperation), model.Oper, true)) { //case GridOperation.add: // logic.SaveLine(model.ToDbModel()); // break; case GridOperation.edit: var existingLine = logic.GetLine(model.Id); if (existingLine != null) { //model.UpdateDbModel(existingLine); //logic.SaveChanges(); logic.UpdateBusToLine(model.Id, model.Bus); } break; case GridOperation.del: logic.DeleteLine(model.Id); break; } } return(new JsonResult { Data = true }); }
static void Test_GetLineRange() { int head, end; TextBuffer text; SplitArray <int> lhi; SplitArray <LineDirtyState> lds; MakeTestData(out text, out lhi, out lds); LineLogic.GetLineRange(text, lhi, 0, out head, out end); TestUtl.AssertEquals(0, head); TestUtl.AssertEquals(30, end); LineLogic.GetLineRange(text, lhi, 1, out head, out end); TestUtl.AssertEquals(32, head); TestUtl.AssertEquals(32, end); LineLogic.GetLineRange(text, lhi, 2, out head, out end); TestUtl.AssertEquals(33, head); TestUtl.AssertEquals(36, end); LineLogic.GetLineRange(text, lhi, 3, out head, out end); TestUtl.AssertEquals(37, head); TestUtl.AssertEquals(37, end); LineLogic.GetLineRange(text, lhi, 4, out head, out end); TestUtl.AssertEquals(38, head); TestUtl.AssertEquals(51, end); LineLogic.GetLineRange(text, lhi, 5, out head, out end); TestUtl.AssertEquals(52, head); TestUtl.AssertEquals(52, end); LineLogic.GetLineRange(text, lhi, 6, out head, out end); TestUtl.AssertEquals(53, head); TestUtl.AssertEquals(71, end); }
public JsonResult GetAllLinesPeriodStatistic(DateTime startDate, DateTime endDate) { using (var l = new LineLogic()) { var rows = l.GetAllLinesPeriodActivities(startDate, endDate); var footer = l.GetLineTotalStatisticByDays(startDate, endDate); return(new JsonResult { Data = new { rows = rows, footer = footer } }); } }
public JsonResult GetTotal(bool _search, string nd, int rows, int page, string sidx, string sord, string filters = "") { TotalDto total; using (var logic = new LineLogic()) { total = logic.GetTotal(_search, rows, page, sidx, sord, filters); } return(new JsonResult { Data = total }); }
static void MakeTestData(out TextBuffer text, out SplitArray <int> lhi, out SplitArray <LineDirtyState> lds) { text = new TextBuffer(1, 1); lhi = new SplitArray <int>(1, 8); lds = new SplitArray <LineDirtyState>(1); lhi.Add(0); lds.Add(LineDirtyState.Clean); LineLogic.LHI_Insert(lhi, lds, text, TestData, 0); text.Insert(0, TestData.ToCharArray()); }
public LineActiveSwitchModel PostLineActiveSwitch(LineActiveSwitchModel data) { var res = new LineActiveSwitchModel(); using (var logic = new LineLogic()) { res.Done = logic.SwitchActive(data.LineId, data.Active); res.LineId = data.LineId; res.Active = data.Active; } return(res); }
public EditLineResultModel PostDeleteLine(int id) { var res = new EditLineResultModel(); using (var logic = new LineLogic()) { res.Done = logic.DeleteLine(id); } res.Line = new LineModel { Id = id }; return(res); }
public GridLineModel[] GetPrint(bool _search, string nd, int rows, int page, string sidx, string sord, string filters = "") { var lines = new GridLineModel[] { }; var totalRecords = 0; using (var logic = new LineLogic()) { totalRecords = logic.Lines.Count(); lines = logic.GetPaged(_search, totalRecords, page, sidx, sord, filters) .Select(z => new GridLineModel(z)).ToArray(); } return(lines); }
public JsonResult GetLinesTotalStatistic(int year) { DateTime date = new DateTime(year, 1, 1); var result = new List <LinesTotalStatisticDto>(); using (var logic = new LineLogic()) { for (int i = 0; i < 12; i++) { result.Add(logic.GetLinesTotalStatistic(date.AddMonths(i), date.AddMonths(i + 1))); } } return(new JsonResult { Data = result }); }
static void Test_NextLineHead() { TextBuffer text = new TextBuffer(1, 32); text.Insert(0, TestData.ToCharArray()); try { LineLogic.NextLineHead(text, -1); TestUtl.Fail("exception must be thrown here."); } catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); } int i = 0; for ( ; i < 32; i++) { TestUtl.AssertEquals(32, LineLogic.NextLineHead(text, i)); } for ( ; i < 33; i++) { TestUtl.AssertEquals(33, LineLogic.NextLineHead(text, i)); } for ( ; i < 37; i++) { TestUtl.AssertEquals(37, LineLogic.NextLineHead(text, i)); } for ( ; i < 38; i++) { TestUtl.AssertEquals(38, LineLogic.NextLineHead(text, i)); } for ( ; i < 52; i++) { TestUtl.AssertEquals(52, LineLogic.NextLineHead(text, i)); } for ( ; i < 53; i++) { TestUtl.AssertEquals(53, LineLogic.NextLineHead(text, i)); } for ( ; i < 71; i++) { TestUtl.AssertEquals(-1, LineLogic.NextLineHead(text, i)); } TestUtl.AssertEquals(-1, LineLogic.NextLineHead(text, i)); }
public JsonResult PostSave(StationModel model) { double lat = 0; double lng = 0; double.TryParse(StringHelper.FixDecimalSeparator(model.StrLat), out lat); double.TryParse(StringHelper.FixDecimalSeparator(model.StrLng), out lng); var station = new Station { Id = model.Id, color = model.Color, StationName = model.Name, Lattitude = lat.ToString(CultureInfo.InvariantCulture), Longitude = lng.ToString(CultureInfo.InvariantCulture), StationType = model.Type, Address = model.Address }; var res = new SaveStationResultModel(); using (var logic = new StationsLogic()) { var stRes = logic.Save(station); res.Station = stRes == null ? null : new StationModel(stRes); if (res.Station != null) { res.Station.Students = logic.GetStudents(station.Id) .Select(z => new StudentToLineModel(z)) .ToList(); using (var logic2 = new LineLogic()) { res.Lines = logic2.GetLinesForStation(res.Station.Id) .Select(z => new LineModel(z)).ToList(); foreach (var line in res.Lines) { line.Stations = logic2.GetStations(line.Id) .OrderBy(z => z.Position) .Select(z => new StationToLineModel(z)) .ToList(); } } } } return(new JsonResult { Data = res }); }
public SaveStationToLineResult PostAddToLine(AddStationToLineModel model) { var positionMode = 0; if (model.StrAlwaysFirst == "on") { positionMode = 1; } if (model.StrAlwaysLast == "on") { positionMode = 2; } var ts = new TimeSpan(model.Hours, model.Minutes, 0); var res = new SaveStationToLineResult(); using (var logic = new StationsLogic()) { res.Done = logic.AddToLine( model.StationId, model.LineId, ts, model.Position, positionMode, model.ChangeColor); res.Station = new StationModel(logic.GetStation(model.StationId)); res.Station.Students = logic.GetStudents(model.StationId) .Select(z => new StudentToLineModel(z)) .ToList(); } using (var logic = new LineLogic()) { res.Line = new LineModel(logic.GetLine(model.LineId)); res.Line.Stations = logic.GetStations(model.LineId) .OrderBy(z => z.Position) .Select(z => new StationToLineModel(z)) .ToList(); } using (var logic = new tblStudentLogic()) { res.Students = logic.GetStudentsForStation(model.StationId) .Select(z => new StudentShortInfo(z)) .ToList(); } return(res); }
public LineModel PostSaveDurations(SaveDurationsModel data) { LineModel res = null; using (var logic = new LineLogic()) { var ln = logic.ReCalcTimeTable(data); if (ln != null) { res = new LineModel(ln) { Stations = ln.StationsToLines.Select(z => new StationToLineModel(z)).ToList() }; } } return(res); }
//[Authorize] //public JsonResult regPay1(string h) //{ // return Json(JsonRequestBehavior.AllowGet); //} //------------------------------------// // GET: tblStudent public ActionResult Index() { using (var logic = new tblStudentLogic()) { ViewBag.Classes = logic.Classes(); ViewBag.Shicvas = logic.Shicvas(); ViewBag.DefaultCityId = logic.DefaultCityId; } if (ViewBag.DefaultCityId > 0) { using (var logic5 = new tblStreetsLogic()) { ViewBag.DefaultCity = logic5.GetCityById(ViewBag.DefaultCityId); } } using (var logic2 = new LineLogic()) { ViewBag.Lines = logic2.GetList(); } using (var logic3 = new StationsLogic()) { ViewBag.Stations = logic3.GetList(); } using (var logic4 = new tblFamilyLogic()) { ViewBag.Families = JsonConvert.SerializeObject(logic4.GetAll().Select(z => new { Id = z.familyId, Name = z.parent1FirstName + " " + z.parent1LastName + (z.oneParentOnly ? "" : " / " + z.parent2FirstName + " " + z.parent2LastName) })); } using (var logic5 = new tblSchoolLogic()) { ViewBag.Schools = JsonConvert.SerializeObject(logic5.GetList().Select(z => new { Id = z.id, Name = z.name })); } return(View()); }
public HttpResponseMessage GetLines(bool _search, string nd, int rows, int page, string sidx, string sord, string filters = "") { var lines = new List <GridLineModel>(); var totalRecords = 0; using (var logic = new LineLogic()) { lines = logic.GetPaged(_search, rows, page, sidx, sord, filters) .Select(z => new GridLineModel(z)).ToList(); totalRecords = logic.Lines.Count(); } return(Request.CreateResponse( HttpStatusCode.OK, new { total = (totalRecords + rows - 1) / rows, page, records = totalRecords , rows = lines })); }
public JsonResult GetCompaniesFilter() { var companies = new List <SelectItemModel>(); companies.Add(new SelectItemModel { Value = "", Text = DictExpressionBuilderSystem.Translate("Search.All") }); using (var logic = new LineLogic()) { var getCompanies = logic.GetCompaniesFilter(); companies.AddRange(getCompanies .Where(w => w != null) .Select(z => new SelectItemModel { Value = z.pk.ToString(), Text = z.companyName }).ToList()); } return(new JsonResult { Data = companies }); }
public JsonResult GetAvailableBuses(int lineId) { var buses = new List <SelectItemModel>(); buses.Add(new SelectItemModel { Value = "0", Text = string.Empty, Title = string.Empty }); using (var logic = new LineLogic()) { buses.AddRange(logic.GetAvailableBuses(lineId) .ToList() .Select(z => new SelectItemModel { Value = z.Id.ToString(), Text = DescriptionHelper.GetBusDescription(z), Title = DescriptionHelper.GetBusDescription(z) })); } return(new JsonResult { Data = buses }); }
static void Test_LineHeadIndexFromCharIndex() { TextBuffer text; SplitArray <int> lhi; MakeTestData(out text, out lhi); int i = 0; for ( ; i < 32; i++) { TestUtl.AssertEquals(0, LineLogic.GetLineHeadIndexFromCharIndex(text, lhi, i)); } for ( ; i < 33; i++) { TestUtl.AssertEquals(32, LineLogic.GetLineHeadIndexFromCharIndex(text, lhi, i)); } for ( ; i < 37; i++) { TestUtl.AssertEquals(33, LineLogic.GetLineHeadIndexFromCharIndex(text, lhi, i)); } for ( ; i < 38; i++) { TestUtl.AssertEquals(37, LineLogic.GetLineHeadIndexFromCharIndex(text, lhi, i)); } for ( ; i < 52; i++) { TestUtl.AssertEquals(38, LineLogic.GetLineHeadIndexFromCharIndex(text, lhi, i)); } for ( ; i < 53; i++) { TestUtl.AssertEquals(52, LineLogic.GetLineHeadIndexFromCharIndex(text, lhi, i)); } for ( ; i <= 71; i++) { TestUtl.AssertEquals(53, LineLogic.GetLineHeadIndexFromCharIndex(text, lhi, i)); } try{ LineLogic.GetLineHeadIndexFromCharIndex(text, lhi, i); TestUtl.Fail("exception must be thrown here."); } catch (Exception ex) { TestUtl.AssertType <AssertException>(ex); } }
static void Test_GetLineIndexFromCharIndex() { SplitArray <int> lhi = new SplitArray <int>(32, 32); lhi.Add(0); lhi.Add(32); lhi.Add(33); lhi.Add(37); lhi.Add(38); lhi.Add(52); lhi.Add(53); int i = 0; for ( ; i < 32; i++) { TestUtl.AssertEquals(0, LineLogic.GetLineIndexFromCharIndex(lhi, i)); } for ( ; i < 33; i++) { TestUtl.AssertEquals(1, LineLogic.GetLineIndexFromCharIndex(lhi, i)); } for ( ; i < 37; i++) { TestUtl.AssertEquals(2, LineLogic.GetLineIndexFromCharIndex(lhi, i)); } for ( ; i < 38; i++) { TestUtl.AssertEquals(3, LineLogic.GetLineIndexFromCharIndex(lhi, i)); } for ( ; i < 52; i++) { TestUtl.AssertEquals(4, LineLogic.GetLineIndexFromCharIndex(lhi, i)); } for ( ; i < 53; i++) { TestUtl.AssertEquals(5, LineLogic.GetLineIndexFromCharIndex(lhi, i)); } TestUtl.AssertEquals(6, LineLogic.GetLineIndexFromCharIndex(lhi, 54)); }
public JsonResult GetScheduleLines() { var lines = new List <SelectItemModel>(); lines.Add(new SelectItemModel { Value = "0", Text = string.Empty, Title = string.Empty }); using (var logic = new LineLogic()) { lines.AddRange(logic.GetList() .Select(z => new SelectItemModel { Value = z.Id.ToString(), Text = string.Format("{0} - {1}", z.LineName, z.LineNumber), Title = string.Format("{0} ({1} - {2})", z.LineName, z.LineNumber, DictExpressionBuilderSystem.Translate("General." + (LineDirection)z.Direction)) }).ToList()); } return(new JsonResult { Data = lines }); }
public EditLineResultModel PostSaveLine(LineModel data) { var res = new EditLineResultModel(); using (var logic = new LineLogic()) { res.Line = new LineModel( logic.SaveLine( data.Id, data.LineNumber, data.Name, data.Color, data.Direction)); res.Line.Stations = logic.GetStations(res.Line.Id) .OrderBy(z => z.Position) .Select(z => new StationToLineModel(z)) .ToList(); } using (var logic = new StationsLogic()) { res.Stations = logic.GetStationForLine(res.Line.Id) .Select(z => new StationModel(z)) .ToList(); foreach (var station in res.Stations) { station.Students = logic.GetStudents(station.Id) .Select(z => new StudentToLineModel(z)) .ToList(); } } using (var logic = new tblStudentLogic()) { res.Students = logic.GetStudentsForLine(res.Line.Id) .Select(z => new StudentShortInfo(z)) .ToList(); } return(res); }
public bool PopulateLinesPlan() { var linesIds = new List <int>(); var dateFrom = DateHelper.GetSunday(DateTime.Now); // DateTime.Now.AddDays(1).Date; var dateTo = dateFrom.AddDays(7).Date; using (var logic = new LineLogic()) { linesIds = logic.GetList().Select(x => x.Id).ToList(); } var parameters = new ScheduleParamsModel { LinesIds = string.Join(",", linesIds), DateFrom = DateHelper.DateToString(dateFrom), DateTo = DateHelper.DateToString(dateTo), ArriveTime = true, LeaveTime = true, Sun = true, Mon = true, Tue = true, Wed = true, Thu = true, Fri = true, Sut = true, }; using (var logic = new tblLinesPlanLogic()) { // 0 Step - Remove all plans that has no line attached to it logic.DeleteAllUnbindedPlans(); // 1 Step - Setting tblLines to LinesPlan state logic.SyncLinesToPlans(); } // 2 Step - Generate new schedule sets by tblLines state var schedule = GenerateSchedule(parameters).ToList(); // 3 Step - save new sets to tblSchedule return(SaveGeneratedShcedule(schedule, dateFrom, dateTo)); }
public AttachStudentResultModel PostDeleteAttachStudent(int id) { var res = new AttachStudentResultModel { Stations = new List <StationModel>(), Lines = new List <LineModel>() }; using (var logic = new StationsLogic()) { var itm = logic.GetAttachInfo(id); if (itm != null) { var stId = itm.StationId; var lnId = itm.LineId; res.Done = logic.DeleteAttach(id); if (lnId != -1) { using (var logic2 = new LineLogic()) { var ln = new LineModel(logic2.GetLine(lnId)) { Stations = logic2.GetStations(lnId) .Select(z => new StationToLineModel(z)) .ToList() }; res.Lines.Add(ln); } } var st = new StationModel(logic.GetStation(stId)) { Students = logic.GetStudents(stId) .Select(z => new StudentToLineModel(z)) .ToList() }; res.Stations.Add(st); } } return(res); }
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 GetAvailableBuses(int?lineId = null, int?scheduleId = null) { var buses = new List <SelectItemModel>(); Line scheduleLine = null; buses.Add(new SelectItemModel { Value = "0", Text = string.Empty, Title = string.Empty }); if (scheduleId.HasValue) { using (var logic = new tblScheduleLogic()) { var scheduleItem = logic.GetItem(scheduleId.Value); if (scheduleItem != null) { scheduleLine = scheduleItem.Line; } } } var lineIdRes = scheduleLine != null ? scheduleLine.Id : lineId ?? 0; using (var logic = new LineLogic()) { buses.AddRange(logic.GetAvailableBuses(lineIdRes) .Select(z => new SelectItemModel { Value = z.Id.ToString(), Text = string.Format("{0} ({1} - {2})", z.Id, z.BusId, z.PlateNumber), Title = string.Format("{0} ({1} - {2} - {3} - {4})", z.Id, z.BusId, z.PlateNumber, z.BusCompany != null ? z.BusCompany.companyName : string.Empty, z.seats.HasValue ? z.seats.Value.ToString() : string.Empty), Selected = z.BusesToLines.Any() && z.BusesToLines.First().LineId == lineIdRes }).ToList()); } return(new JsonResult { Data = buses }); }
static void Test_GetLineLengthByCharIndex() { TextBuffer text = new TextBuffer(1, 32); int i = 0; text.Insert(0, TestData.ToCharArray()); for ( ; i < 32; i++) { TestUtl.AssertEquals(32, LineLogic.GetLineLengthByCharIndex(text, i)); } for ( ; i < 33; i++) { TestUtl.AssertEquals(1, LineLogic.GetLineLengthByCharIndex(text, i)); } for ( ; i < 37; i++) { TestUtl.AssertEquals(4, LineLogic.GetLineLengthByCharIndex(text, i)); } for ( ; i < 38; i++) { TestUtl.AssertEquals(1, LineLogic.GetLineLengthByCharIndex(text, i)); } for ( ; i < 52; i++) { TestUtl.AssertEquals(14, LineLogic.GetLineLengthByCharIndex(text, i)); } for ( ; i < 53; i++) { TestUtl.AssertEquals(1, LineLogic.GetLineLengthByCharIndex(text, i)); } for ( ; i < 71; i++) { TestUtl.AssertEquals(17, LineLogic.GetLineLengthByCharIndex(text, i)); } TestUtl.AssertEquals(17, LineLogic.GetLineLengthByCharIndex(text, i)); // EOF }