Пример #1
0
 private void DaySelected(ScheduleDayOfWeek day)
 {
     StudentGroups = day.StudentGroups.ToObservableCollection();
     if (selectedGroup != null)
     {
         GroupSelected(day.StudentGroups.Where(x => x.Name == selectedGroup.Name).First());
     }
     selectedDay = day;
 }
        public TemporalExpressionUnion Create(ISchedule schedule)
        {
            if (schedule.DayInterval == DayInterval.None)
            {
                throw new ArgumentException("DayInterval must be set for schedules with a weekly frequency.");
            }

            var union      = new TemporalExpressionUnion();
            var daysOfWeek = union.GetFlags(schedule.DayInterval);

            foreach (var day in daysOfWeek)
            {
                var dayOfWeek = new ScheduleDayOfWeek((DayInterval)day);
                union.Add(dayOfWeek);
            }

            return(union);
        }
Пример #3
0
        private void DateTimePicker_ValueChanged(object sender, EventArgs e)
        {
            DateTimePicker dateTimePicker = sender as DateTimePicker;

            if (dateTimePicker.Value.DayOfWeek == DayOfWeek.Sunday)
            {
                return;
            }

            ScheduleDayOfWeek scheduleDayOfWeek = (ScheduleDayOfWeek)((int)(dateTimePicker.Value.DayOfWeek) - 1);

            Presenter.SetDate(dateTimePicker.Value.Date);

            ScheduleTimes = ScheduleProvider.GetScheduleEntry(
                Groups[groupComboBox.SelectedIndex].Id,
                Subjects[subjectComboBox.SelectedIndex].Id,
                scheduleDayOfWeek);

            timeComboBox.Enabled = false;
            timeComboBox.Items.Clear();
            timeComboBox.Text = "";
            for (int i = 0; i < ScheduleTimes.Count; i++)
            {
                timeComboBox.Items.Add(ScheduleTimes[i].Time.ToString("HH;mm"));
            }

            DisposeAttendancePanel();

            if (ScheduleTimes.Count > 0)
            {
                timeComboBox.Enabled = true;

                timeComboBox.SelectedIndex = 0;
                Presenter.SetScheduleEntry(ScheduleTimes[timeComboBox.SelectedIndex]);
            }
        }
Пример #4
0
        /// <summary>
        /// Получить расписание для конкретных ключей
        /// </summary>
        /// <param name="groupId"></param>
        /// <param name="subjectId"></param>
        /// <param name="dayOfWeek"></param>
        /// <returns></returns>
        public static IList <ScheduleExtModel> GetScheduleEntry(int groupId, int subjectId, ScheduleDayOfWeek dayOfWeek)
        {
            NameValueCollection nvc = new NameValueCollection();

            nvc.Add("groupId", groupId.ToString());
            nvc.Add("subjectId", subjectId.ToString());
            nvc.Add("dayOfWeek", dayOfWeek.ToString());

            var api = ApiProviderBase.GetInstance();
            IApiResponse <IList <ScheduleExtModel> > response = api.GetRequest <IList <ScheduleExtModel> >(UriResource.concrete_schedule, nvc);

            var result = response.data as IList <ScheduleExtModel>;

            return(result);
        }
Пример #5
0
 /// <summary>
 /// 指定一个月里最后一个星期的具体日期,默认该日期的0时0分0秒执行
 /// </summary>
 /// <param name="time"></param>
 /// <param name="weekDay"></param>
 /// <returns></returns>
 public static CronScheduleTime SetLastDayOfWeek(this CronScheduleTime time, ScheduleDayOfWeek weekDay)
 {
     return(time.SetLastDayOfWeek((int)weekDay));
 }
Пример #6
0
        /// <summary>
        /// 指定一个月里的第几个星期的星期几,每经过该日期执行一次,默认该日期的0时0分0秒
        /// </summary>
        /// <param name="time"></param>
        /// <param name="week"></param>
        /// <param name="weekDay"></param>
        /// <returns></returns>
        public static CronScheduleTime SetSpecificWeek(this CronScheduleTime time, ScheduleWeek week, ScheduleDayOfWeek weekDay)
        {
            time.Second = time.Second.SetDefaultValue();

            time.Minute = time.Minute.SetDefaultValue();

            time.Hour = time.Hour.SetDefaultValue();

            time.Day = "?";

            time.Week = $"{(int)week}#{(int)weekDay}";

            return(time);
        }
Пример #7
0
 /// <summary>
 /// 指定一个月里最后一个星期的具体日期,默认该日期的0时0分0秒执行
 /// </summary>
 public static string SetLastDayOfWeek(ScheduleDayOfWeek weekDay)
 {
     return(SetLastDayOfWeek(GetInstant, (int)weekDay).Result);
 }
Пример #8
0
 /// <summary>
 /// 指定一个月里的第几个星期的星期几,每经过该日期执行一次,默认该日期的0时0分0秒
 /// </summary>
 /// <param name="week">指定的具体星期</param>
 /// <param name="weekDay">具体星期几</param>
 /// <returns></returns>
 public static string SetSpecificWeek(ScheduleWeek week, ScheduleDayOfWeek weekDay)
 {
     return(SetSpecificWeek(GetInstant, week, weekDay).Result);
 }
Пример #9
0
 /// <summary>
 /// 指定一个礼拜的具体星期,从startTime开始,endTime结束,默认每日0时0分0秒执行一次
 /// </summary>
 /// <param name="startTime"></param>
 /// <param name="endTime"></param>
 /// <returns></returns>
 public static string SetWeekCycle(ScheduleDayOfWeek startTime, ScheduleDayOfWeek endTime)
 {
     return(SetWeekCycle(GetInstant, (int)startTime, (int)endTime).Result);
 }
Пример #10
0
        //methods
        public Schedule GetSchedule(string path)
        {
            string[,] excel = this.getValuesFromExcel(path);
            var plan = new Schedule();

            plan.Name = excel[0, 0];
            int bufor_wiersz  = excel.GetLength(0);
            int bufor_kolumna = excel.GetLength(1);

            var dzien = new ScheduleDayOfWeek();

            dzien.Day = SubjectTimeResolver.Instance.GetDayOfWeekFromString(excel[1, 0]);

            var grupa = new StudentGroup();

            for (int wiersz = 1; wiersz < bufor_wiersz; wiersz++)
            {
                Subject aktualnyPrzedmiot = new Subject();

                for (int kolumna = 0; kolumna < bufor_kolumna; kolumna++)
                {
                    if (kolumna == 0 && (!String.IsNullOrEmpty(excel[wiersz, kolumna]) || excel[wiersz, kolumna] == plan.Name))
                    {
                        if (wiersz + 1 == bufor_wiersz)
                        {
                            // skonczył sie ostatni dzień
                            plan.DaysOfWeek.Add(dzien);
                        }
                        else if (SubjectTimeResolver.Instance.IsValidDay(excel[wiersz + 1, kolumna]) && dzien.Day != SubjectTimeResolver.Instance.GetDayOfWeekFromString(excel[wiersz + 1, kolumna]))
                        {
                            // skonczył się aktualny dzień i zaczyna nowy
                            plan.DaysOfWeek.Add(dzien);
                            dzien     = new ScheduleDayOfWeek();
                            dzien.Day = SubjectTimeResolver.Instance.GetDayOfWeekFromString(excel[wiersz + 1, kolumna]);
                        }
                    }
                    else if (kolumna == 1 && excel[wiersz, kolumna] != "Grupa")
                    {
                        grupa.Name = excel[wiersz, kolumna];
                    }
                    else
                    {
                        if (!String.IsNullOrEmpty(excel[wiersz, kolumna]))// jest coś w komórce
                        {
                            if (excel[wiersz, kolumna] != aktualnyPrzedmiot.Name)
                            {
                                // zaczyna sie nowy przedmiot i konczy stary lub po prostu zaczyna sie przedmiot
                                if (!String.IsNullOrEmpty(aktualnyPrzedmiot.Name))
                                {
                                    aktualnyPrzedmiot.TimeEnds = Tools.SubjectTimeResolver.Instance.GetMinutesFromCell(kolumna);
                                    grupa.Subjects.Add(aktualnyPrzedmiot);
                                }
                                aktualnyPrzedmiot            = new Subject();
                                aktualnyPrzedmiot.TimeStarts = Tools.SubjectTimeResolver.Instance.GetMinutesFromCell(kolumna);
                                aktualnyPrzedmiot.Name       = excel[wiersz, kolumna];
                            }
                            else
                            {
                                // trwa stary
                            }
                        }
                        else // komórka jest pusta
                        {
                            if (!String.IsNullOrEmpty(aktualnyPrzedmiot.Name)) // aktualny przedmiot nie jest pusty
                            {
                                // skonczyl sie aktualny przedmiot
                                aktualnyPrzedmiot.TimeEnds = Tools.SubjectTimeResolver.Instance.GetMinutesFromCell(kolumna);
                                grupa.Subjects.Add(aktualnyPrzedmiot);
                                aktualnyPrzedmiot = new Subject();
                            }
                        }
                    }
                }
                dzien.StudentGroups.Add(grupa);
                grupa = new StudentGroup();
            }
            return(plan);
        }