Example #1
0
        private static List <Models.DayOfWeek> GetDaysOfWeek(MultilistField daysOfWeeks)
        {
            List <Models.DayOfWeek> lstDaysOfWeek = new List <Models.DayOfWeek>();

            if (daysOfWeeks != null)
            {
                // trigger.DaysOfWeeks = daysOfWeeks.GetItems().ToList<Item>();
                Item[] items = daysOfWeeks.GetItems();
                if (items != null && items.Length > 0)
                {
                    for (int i = 0; i < items.Length; i++)
                    {
                        Models.DayOfWeek dayOfWeek = new Models.DayOfWeek()
                        {
                            itemId         = items[i].ID.ToString(),
                            itemName       = items[i].Name,
                            DayOfWeekValue = (DaysOfWeek)Enum.Parse(typeof(DaysOfWeek), items[i].Name, true)
                        };
                        lstDaysOfWeek.Add(dayOfWeek);
                    }
                }
            }
            return(lstDaysOfWeek);
        }
 /// <summary>
 /// The number of shards to be created on a Premium Cluster Cache.
 /// </summary>
 /// <param name="dayOfWeek">Day of week when cache can be patched.</param>
 /// <param name="startHourUtc">Start hour after which cache patching can start.</param>
 /// <param name="maintenanceWindow">ISO8601 timespan specifying how much time cache patching can take.</param>
 /// <return>The next stage of Redis Cache with Premium SKU definition.</return>
 RedisCache.Update.IUpdate RedisCache.Update.IUpdate.WithPatchSchedule(Models.DayOfWeek dayOfWeek, int startHourUtc, TimeSpan maintenanceWindow)
 {
     return(this.WithPatchSchedule(dayOfWeek, startHourUtc, maintenanceWindow) as RedisCache.Update.IUpdate);
 }
 /// <summary>
 /// Patch schedule on a Premium Cluster Cache.
 /// </summary>
 /// <param name="dayOfWeek">Day of week when cache can be patched.</param>
 /// <param name="startHourUtc">Start hour after which cache patching can start.</param>
 /// <return>The next stage of Redis Cache with Premium SKU definition.</return>
 RedisCache.Update.IUpdate RedisCache.Update.IUpdate.WithPatchSchedule(Models.DayOfWeek dayOfWeek, int startHourUtc)
 {
     return(this.WithPatchSchedule(dayOfWeek, startHourUtc) as RedisCache.Update.IUpdate);
 }
 /// <summary>
 /// Patch schedule on a Premium Cluster Cache.
 /// </summary>
 /// <param name="dayOfWeek">Day of week when cache can be patched.</param>
 /// <param name="startHourUtc">Start hour after which cache patching can start.</param>
 /// <param name="maintenanceWindow">ISO8601 timespan specifying how much time cache patching can take.</param>
 /// <return>The next stage of Redis Cache with Premium SKU definition.</return>
 RedisCache.Definition.IWithPremiumSkuCreate RedisCache.Definition.IWithPremiumSkuCreate.WithPatchSchedule(Models.DayOfWeek dayOfWeek, int startHourUtc, TimeSpan maintenanceWindow)
 {
     return(this.WithPatchSchedule(dayOfWeek, startHourUtc, maintenanceWindow) as RedisCache.Definition.IWithPremiumSkuCreate);
 }
 /// <summary>
 /// Patch schedule on a Premium Cluster Cache.
 /// </summary>
 /// <param name="dayOfWeek">Day of week when cache can be patched.</param>
 /// <param name="startHourUtc">Start hour after which cache patching can start.</param>
 /// <return>The next stage of Redis Cache with Premium SKU definition.</return>
 RedisCache.Definition.IWithPremiumSkuCreate RedisCache.Definition.IWithPremiumSkuCreate.WithPatchSchedule(Models.DayOfWeek dayOfWeek, int startHourUtc)
 {
     return(this.WithPatchSchedule(dayOfWeek, startHourUtc) as RedisCache.Definition.IWithPremiumSkuCreate);
 }
Example #6
0
        // GET: DutyRosters
        public async Task <IActionResult> Index(short searchYear, short searchWeek, short weekChange)
        {
            var employees = from e in _context.Employees
                            select e;

            var groups = from g in _context.Groups
                         select g;

            CultureInfo myCI  = new CultureInfo("de-DE");
            Calendar    myCal = myCI.Calendar;

            // Gets the DTFI properties required by GetWeekOfYear.
            CalendarWeekRule myCWR = myCI.DateTimeFormat.CalendarWeekRule;

            System.DayOfWeek myFirstDOW = myCI.DateTimeFormat.FirstDayOfWeek;

            var dutyRoster = new DutyRoster();

            if (searchYear > 0 && searchWeek > 0)
            {
                if (weekChange == -1)
                {
                    if (searchWeek == 1)
                    {
                        dutyRoster.Year = (short)(searchYear - 1);
                        dutyRoster.Week = 52;
                    }
                    else
                    {
                        dutyRoster.Year = searchYear;
                        dutyRoster.Week = (short)(searchWeek - 1);
                    }
                }
                else if (weekChange == 1)
                {
                    if (searchWeek == 52)
                    {
                        dutyRoster.Year = (short)(searchYear + 1);
                        dutyRoster.Week = 1;
                    }
                    else
                    {
                        dutyRoster.Year = searchYear;
                        dutyRoster.Week = (short)(searchWeek + 1);
                    }
                }
                else
                {
                    dutyRoster.Year = searchYear;
                    dutyRoster.Week = searchWeek;
                }
            }
            else
            {
                // Displays the number of the current week relative to the beginning of the year.
                //Console.WriteLine("The CalendarWeekRule used for the en-US culture is {0}.", myCWR);
                //Console.WriteLine("The FirstDayOfWeek used for the en-US culture is {0}.", myFirstDOW);
                //Console.WriteLine("Therefore, the current week is Week {0} of the current year.", myCal.GetWeekOfYear(DateTime.Now, myCWR, myFirstDOW));
                dutyRoster.Year = (short)DateTime.Today.Year;
                dutyRoster.Week = (short)myCal.GetWeekOfYear(DateTime.Now, myCWR, myFirstDOW);
            }

            var rosters = from r in _context.DutyRosters
                          where r.Year == dutyRoster.Year && r.Week == dutyRoster.Week
                          select r;

            var joinedDataRostersEmployees = rosters.AsQueryable().Join
                                                 (employees,
                                                 roster => roster.EmployeeId,
                                                 empoyee => empoyee.Id,
                                                 (roster, employee) =>
                                                 new
            {
                Id           = roster.Id,
                Year         = roster.Year,
                Week         = roster.Week,
                Day          = roster.Day,
                GroupId      = roster.GroupId,
                EmployeeId   = roster.EmployeeId,
                StartTime    = roster.StartTime,
                EndTime      = roster.EndTime,
                EmployeeName = employee.Surname + ", " + employee.Forename
            });

            List <DutyRosterModel> dutyRosterModels = new List <DutyRosterModel>();

            foreach (var item in joinedDataRostersEmployees)
            {
                dutyRosterModels.Add(
                    new DutyRosterModel
                {
                    Id           = item.Id,
                    Year         = item.Year,
                    Week         = item.Week,
                    Day          = item.Day,
                    GroupId      = item.GroupId,
                    EmployeeId   = item.EmployeeId,
                    StartTime    = item.StartTime,
                    EndTime      = item.EndTime,
                    EmployeeName = item.EmployeeName
                }
                    );
            }

            var firstDayInWeek = ISOWeek.ToDateTime(dutyRoster.Year, dutyRoster.Week, myFirstDOW).Date;

            var daysOfWeek = new List <Models.DayOfWeek>();

            Models.DayOfWeek dayOfWeek = new Models.DayOfWeek();

            for (int i = 0; i < 7; i++)
            {
                dayOfWeek = new Models.DayOfWeek
                {
                    Index   = i,
                    DayName = firstDayInWeek.AddDays(i).DayOfWeek.ToString(),
                    Date    = firstDayInWeek.AddDays(i)
                };
                daysOfWeek.Add(dayOfWeek);
            }

            var dutyRosterModel = new DutyRosterIndexModel
            {
                DutyRosters = dutyRosterModels,
                Employees   = await employees.ToListAsync(),
                Groups      = await groups.ToListAsync(),
                DutyRoster  = dutyRoster,
                DaysOfWeek  = daysOfWeek
            };

            return(View(dutyRosterModel));
        }