Example #1
0
        /// <summary>
        /// Renvoi les informations des cours d'une classe pour une semaine
        /// </summary>
        /// <param name="classId">ID de la Classe</param>
        /// <param name="scheduleDate">Une date de cette Semaine</param>
        /// <returns></returns>
        public ConcurrentBag <DayCoursCards> GetClassWeekAgendaData(Guid classId, DateTime scheduleDate)
        {
            scheduleDate = scheduleDate.Date;

            var firstDateOfWeek = scheduleDate.DayOfWeek == DayOfWeek.Sunday ? scheduleDate.AddDays(-6) : scheduleDate.AddDays(-((int)scheduleDate.DayOfWeek - 1));

            var scheduleData = new ConcurrentBag <DayCoursCards>();

            var days = new HashSet <DateTime>();

            for (var i = 0; i <= 6; i++)
            {
                days.Add(firstDateOfWeek.AddDays(i));
            }

            Parallel.ForEach(days, d =>
            {
                var dayCard = new DayCoursCards(classId, d);

                if (dayCard.DayDate.Equals(scheduleDate) && scheduleDate != DateTime.Today)
                {
                    dayCard.DayColor = "Brown";
                }

                if (dayCard.DayCours.Any())
                {
                    scheduleData.Add(dayCard);
                }
            });

            return(new ConcurrentBag <DayCoursCards>(scheduleData.OrderByDescending(d => d.DayDate)));
        }
Example #2
0
        /// <summary>
        /// Emploi du Temps d un Staff
        /// </summary>
        /// <param name="staffGuid"></param>
        /// <param name="currentDate"></param>
        /// <param name="scheduleType"></param>
        /// <returns></returns>
        public IEnumerable GetStaffSchedule(Guid staffGuid, DateTime?currentDate, ScheduleType?scheduleType = ScheduleType.Weekly)
        {
            var scheduleDate = currentDate?.Date ?? DateTime.Today;

            var scheduleData = new ConcurrentBag <DayCoursCards>();

            var days = new HashSet <DateTime>();

            if (scheduleType == ScheduleType.Weekly)
            {
                var firstDateOfWeek = scheduleDate.DayOfWeek == DayOfWeek.Sunday
                    ? scheduleDate.AddDays(-6)
                    : scheduleDate.AddDays(-((int)scheduleDate.DayOfWeek - 1));
                for (var i = 0; i <= 6; i++)
                {
                    days.Add(firstDateOfWeek.AddDays(i));
                }
            }
            else
            {
                days.Add(scheduleDate);
            }

            Parallel.ForEach(days, d => {
                var dayCard = new DayCoursCards(staffGuid, d, true);

                if (dayCard.DayDate.Equals(scheduleDate) && scheduleDate != DateTime.Today)
                {
                    dayCard.DayColor = "#894769";
                }

                if (dayCard.DayCours.Any())
                {
                    scheduleData.Add(dayCard);
                }
            });

            return(scheduleData.OrderBy(d => d.DayDate));
        }