Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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));
        }
Exemple #5
0
 public void Setup()
 {
     calendarDay = new CalendarDayModel(new DateTime(1996, 11, 11), "#FFFFFFFF");
 }