private static CalendarDayModel[,] GetMatrixForSite(CalendarPageViewModel calendarModel) { var countOfWeeks = calendarModel.Matrix.GetLength(0); var newMatrix = new CalendarDayModel[countOfWeeks, 6]; for (var i = 0; i < countOfWeeks; i++) { for (var j = 0; j < 6; j++) { newMatrix[i, j] = calendarModel.Matrix[i, j]; newMatrix[i, j].Events = newMatrix[i, j].Events .GroupBy(x => (x.Date, x.Type, x.Name, x.Color)) .Select(gr => { var model = gr.First(); model.Summary = gr.Select(x => (x.Place, x.Teacher)).ToArray(); return(model); }) .OrderBy(x => x.Date) .ThenBy(x => x.Color.ToArgb()) .ToList(); } } return(newMatrix); }
private CalendarPageViewModel GetSchedule(CalendarSettingsModel settingsModel) { var queryModel = new GetCalendarQueryModel { ItemHashes = settingsModel.Items, HiddenEvents = _mapper.Map <List <HidableEventEntity> >(settingsModel.HiddenEvents).ToArray(), ShowWindows = settingsModel.ShowWindows, CountOfWeeksAfterCurrent = settingsModel.CountOfWeeksAfterCurrent }; var queryResult = _getCalendarQuery.Execute(queryModel); var calendarModel = queryResult.IsSuccessful ? _mapper.Map <CalendarPageViewModel>(queryResult.Data) : new CalendarPageViewModel(); if (settingsModel.Items.Length > calendarModel.Legend.Count) { calendarModel.ErrorMessage = "Сайт расписания ТПУ не вернул расписание для одной или нескольких групп. " + "Подождите 30 секунд или пару минут и повторите попытку..."; } var newMatrix = new CalendarDayModel[2, 6]; for (var i = 0; i < 2; i++) { for (var j = 0; j < 6; j++) { newMatrix[i, j] = calendarModel.Matrix[i, j]; newMatrix[i, j].Events = newMatrix[i, j].Events .GroupBy(x => (x.Date, x.Type, x.Name, x.Color)) .Select(gr => { var model = gr.First(); model.Summary = gr.Select(x => (x.Place, x.Teacher)).ToArray(); return(model); }) .OrderBy(x => x.Date) .ThenBy(x => x.Color.ToArgb()) .ToList(); } } calendarModel.Matrix = newMatrix; return(calendarModel); }
public CottageCalendarModel Get(string propertyCode) { CottageCalendarModel cm = new CottageCalendarModel(); DateTime start = new DateTime(2019, 1, 1); while (start <= new DateTime(2019, 12, 31)) { var day = new CalendarDayModel(); day.Date = start; cm.Days.Add(day); start = start.AddDays(1); } return(cm); }
public ActionResult Index(int?page, int?size, string msg, AlertMsgType?msgType, int year, int month, string src = "") { List <CalendarDayModel> data = new List <CalendarDayModel>(); List <TblSaleOrder> lst = new List <TblSaleOrder>(); List <TblJobOrder> joblst = new List <TblJobOrder>(); try { if (!string.IsNullOrWhiteSpace(msg)) { WidgetAlertModel alert = new WidgetAlertModel() { Message = msg }; if (msgType.HasValue) { alert.Type = msgType.Value; } ViewBag.Alert = alert; } AccountPermission permission = GetPermission(CurrentUID); ViewData["optPermission"] = permission; DateTime firstDt = new DateTime(year, month, 1); ViewBag.FocusDate = firstDt; if (permission.TeamType == TeamType.Admin || permission.TeamType == TeamType.Sale) //administrator of sale { int total = uow.Modules.SaleOrder.Count(month, src); lst = uow.Modules.SaleOrder.GetAll(1, -1, month, src, (permission.IsAdminTeam || permission.IsManager) ? 0 : CurrentUID); #region Calculate first week for (int i = firstDt.DayOfWeek.ToInt(); i > 0; i--) { CalendarDayModel day = new CalendarDayModel() { Date = firstDt.AddDays(-i), Jobs = new List <TblSaleOrder>(), TeamType = permission.TeamType }; data.Add(day); } #endregion int offset = data.Count; for (int i = offset; i <= 42; i++) { CalendarDayModel day = new CalendarDayModel() { Date = firstDt.AddDays(i - offset), Jobs = new List <TblSaleOrder>(), TeamType = permission.TeamType }; if (day.Date.Month == month) { var dayJobs = lst.Where(x => x.SaleOrderDate.HasValue && x.SaleOrderDate.Value.Date == day.Date.Date); day.Jobs = dayJobs.Count() > 0 ? dayJobs.ToList() : new List <TblSaleOrder>(); } data.Add(day); } } else if (permission.TeamType == TeamType.Operation) ///operation { joblst = uow.Modules.JobOrder.GetAll(1, -1, month, src, (permission.IsAdminTeam) ? 0 : permission.TeamId); #region Calculate first week for (int i = firstDt.DayOfWeek.ToInt(); i > 0; i--) { CalendarDayModel day = new CalendarDayModel() { Date = firstDt.AddDays(-i), JobsOrder = new List <TblJobOrder>(), TeamType = permission.TeamType }; data.Add(day); } #endregion int offset = data.Count; for (int i = offset; i <= 42; i++) { CalendarDayModel day = new CalendarDayModel() { Date = firstDt.AddDays(i - offset), JobsOrder = new List <TblJobOrder>(), TeamType = permission.TeamType }; if (day.Date.Month == month) { var dayJobs = joblst.Where(x => x.StartDate.HasValue && x.StartDate.Value.Date == day.Date.Date ); day.JobsOrder = dayJobs.Count() > 0 ? dayJobs.ToList() : new List <TblJobOrder>(); } data.Add(day); } } else { #region Calculate first week for (int i = firstDt.DayOfWeek.ToInt(); i > 0; i--) { CalendarDayModel day = new CalendarDayModel() { Date = firstDt.AddDays(-i), JobsOrder = new List <TblJobOrder>(), TeamType = permission.TeamType }; data.Add(day); } #endregion int offset = data.Count; for (int i = offset; i <= 42; i++) { CalendarDayModel day = new CalendarDayModel() { Date = firstDt.AddDays(i - offset) }; data.Add(day); } } } catch (Exception ex) { WidgetAlertModel Alert = new WidgetAlertModel() { Type = AlertMsgType.Danger, Message = ex.GetMessage() }; ViewBag.Alert = Alert; } return(View(data)); }
public void Setup() { calendarDay = new CalendarDayModel(new DateTime(1996, 11, 11), "#FFFFFFFF"); }