public GetScheduleWeekResponse GetScheduleWeek(GetScheduleWeekRequest request)
        {
            ScheduleWeek week = new ScheduleWeek()
            {
                Name = ruleSerializer.BookStorage.Oktoikh.GetWeekName(request.Date, false)
            };

            GetScheduleDayRequest dayRequest = new GetScheduleDayRequest()
            {
                Date     = request.Date,
                Typicon  = request.Typicon,
                Handler  = request.Handler,
                Language = request.Language,
                ThrowExceptionIfInvalid = request.ThrowExceptionIfInvalid,
                ApplyParameters         = request.ApplyParameters,
                CheckParameters         = request.CheckParameters
            };

            int i = 0;

            while (i < 7)
            {
                GetScheduleDayResponse dayResponse = GetScheduleDay(dayRequest);
                week.Days.Add(dayResponse.Day);
                dayRequest.Date = dayRequest.Date.AddDays(1);
                i++;
            }

            return(new GetScheduleWeekResponse()
            {
                Week = week
            });
        }
Beispiel #2
0
        public void Execute(ScheduleWeek week)
        {
            _resultString = "";

            _resultString += "<div class=\"schedule\">";

            //Название седмицы пропускаем. Считаем, что название седмицы будет в наименовании файла
            _resultString += "<h4 class=\"subtitle\">" + week.Name.ToUpper() + "</h4>";

            //теперь начинаем наполнять дни
            foreach (ScheduleDay day in week.Days)
            {
                _resultString += "<div style=\"margin - top:10px; \">";

                _resultString += "[sign cat=\"" + day.SignNumber.ToString() + "\"]<strong>";

                //если бдение или бдение с литией или воскресный день - красим в красный цвет
                if (day.SignNumber == 4 || day.SignNumber == 5 || day.SignNumber == 8)
                {
                    _resultString += "<span style=\"color: #ff0000;\">";
                }

                _resultString += day.Date.ToString("dd MMMM yyyy г.") + "<br/>";
                _resultString += day.Date.ToString("dddd").ToUpper() + "<br/>";
                _resultString += day.Name + "</strong>";

                if (day.SignNumber == 4 || day.SignNumber == 5 || day.SignNumber == 8)
                {
                    _resultString += "</span>";
                }

                _resultString += "</div>";

                _resultString += "<table border=0>";

                foreach (WorshipRuleViewModel service in day.Schedule)
                {
                    _resultString += "<tr><td>";

                    _resultString += service.Time.ToString() + "&nbsp;</td><td>";
                    _resultString += service.Name;

                    //additionalName
                    if (!string.IsNullOrEmpty(service.AdditionalName))
                    {
                        _resultString += "<strong>" + service.AdditionalName + "</strong>";
                    }
                    _resultString += "</td></tr>";
                }

                _resultString += "</table>";
            }

            _resultString += "</div>";
        }
Beispiel #3
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);
        }
Beispiel #4
0
        private void setDayOfWeekChecked(ScheduleWeek schedule, DayOfWeek day, bool value)
        {
            if (value && schedule.SchedDays.Contains(day))
            {
                return;
            }
            if (!value && !schedule.SchedDays.Contains(day))
            {
                return;
            }

            if (value)
            {
                schedule.SchedDays.Add(day);
            }
            else
            {
                schedule.SchedDays.Remove(day);
            }
        }
        public BulkScheduleViewModel(bool weekIsPublished)
        {
            WeekIsPublished = weekIsPublished;
            Shifts          = new ObservableCollection <Shift>();
            Tasks           = new ObservableCollection <Task>();
            Users           = new ObservableCollection <User>();

            this.LoadLookupsCommand        = new Command(async() => await loadLookups());
            this.SaveCommand               = new Command(async() => await saveSchedules());
            this.UpdateScheduleWeekCommand = new Command(() =>
            {
                updateScheduleWeek();
            });
            ScheduleWeek = DateTime.Now;
            var user = LoginHelper.GetLoggedInUser().User;

            while ((int)ScheduleWeek.DayOfWeek != user.Company.WeekStartValue)
            {
                ScheduleWeek = ScheduleWeek.AddDays(-1);
            }
            updateScheduleWeek();
        }
Beispiel #6
0
        public ScheduleWeekViewModel(ScheduleWeek week, WellknownData wellknown)
        {
            WeekNumber        = week.WeekNumber;
            WeekNumberDisplay = Application.Current.GetService <ILocalizationService>().Format("ScheduleTableWeekNumberHeaderFormat", week.WeekNumber);
            Days = new ScheduleDayViewModel[7];
            DateTimeOffset weekStartDate = wellknown.TermStartDate.GetLocalDate().AddDays((week.WeekNumber - 1) * 7);

            foreach (var group in week.Entries.GroupBy(x => x.DayOfWeek))
            {
                int            dayOfWeek = group.Key;
                DateTimeOffset day       = weekStartDate.AddDays(dayOfWeek - 1);
                Days[dayOfWeek - 1] = new ScheduleDayViewModel(WeekNumber, day, group, wellknown);
            }
            for (int i = 0; i < 7; i++)
            {
                if (!Days[i].Initialized)
                {
                    DateTimeOffset day = weekStartDate.AddDays(i);
                    Days[i] = new ScheduleDayViewModel(WeekNumber, day, Array.Empty <ScheduleEntry>(), wellknown);
                }
            }
        }
Beispiel #7
0
        public void ReadXlsx(string fileName)
        {
            //schedule.CheckFile();

            //Schedule.AddUniversity("НИТУ МИСиС");
            //Schedule.AddFacility("НИТУ МИСиС", fileName);


            XSSFWorkbook hssfwb;

            using (FileStream file = new FileStream(@"Schedule Files\Misis\" + fileName + ".xlsx", FileMode.Open, FileAccess.Read))
            {
                hssfwb = new XSSFWorkbook(file);
            }

            for (int course = 1; course < 9; course++)
            {
                if (hssfwb.GetSheet(course + " курс") == null)
                {
                    break;
                }
                //Schedule.AddCourse("НИТУ МИСиС", fileName, course.ToString());

                ISheet sheet = hssfwb.GetSheet(course + " курс");

                int group = 4;
                //int myFlag = 0;

                while (sheet.GetRow(1).GetCell(group - 1) != null)
                {
                    //if (sheet.GetRow(1).GetCell(group - 1).NumericCellValue.ToString() == "1")
                    //{
                    //    Schedule.AddGroup("НИТУ МИСиС", fileName, course.ToString(), sheet.GetRow(0).GetCell(group - 1).StringCellValue + " 1 подгруппа",2);
                    //}
                    //else if (sheet.GetRow(1).GetCell(group - 1).NumericCellValue.ToString() == "2")
                    //{
                    //    if (sheet.GetRow(0).GetCell(group - 1).ToString() == "")
                    //        Schedule.AddGroup("НИТУ МИСиС", fileName, course.ToString(), sheet.GetRow(0).GetCell(group - 3).StringCellValue + " 2 подгруппа",2);
                    //    else
                    //        Schedule.AddGroup("НИТУ МИСиС", fileName, course.ToString(), sheet.GetRow(0).GetCell(group - 1).StringCellValue + " 2 подгруппа",2);
                    //}
                    //else
                    //{
                    //    Schedule.AddGroup("НИТУ МИСиС", fileName, course.ToString(), sheet.GetRow(0).GetCell(group - 1).StringCellValue,2);
                    //}

                    ScheduleWeek week1 = new ScheduleWeek();
                    ScheduleWeek week2 = new ScheduleWeek();

                    week1.Week = 1;
                    week1.Days = new List <ScheduleDay>();


                    week2.Week = 2;
                    week2.Days = new List <ScheduleDay>();


                    for (int dayofweek = 3; dayofweek < 100; dayofweek += 14)
                    {
                        ScheduleDay day1 = new ScheduleDay();
                        ScheduleDay day2 = new ScheduleDay();

                        day1.Day     = dayofweek / 14 + 1;
                        day1.Lessons = new List <Lesson>();
                        day2.Day     = dayofweek / 14 + 1;
                        day2.Lessons = new List <Lesson>();



                        for (int para = dayofweek; para < dayofweek + 14; para += 2)
                        {
                            if (sheet.GetRow(para - 1).GetCell(group - 1) != null)
                            {
                                if (sheet.GetRow(para - 1).GetCell(group - 1).StringCellValue != "")
                                {
                                    try
                                    {
                                        if (sheet.GetRow(para - 1).GetCell(group - 1).StringCellValue == "")
                                        {
                                            continue;
                                        }
                                        Lesson a = new Lesson()
                                        {
                                            Name = GetName(sheet.GetRow(para - 1).GetCell(group - 1).StringCellValue), Time = sheet.GetRow(para - 1).GetCell(2).StringCellValue, Room = sheet.GetRow(para - 1).GetCell(group).StringCellValue, Teacher = GetTeacher(sheet.GetRow(para - 1).GetCell(group - 1).StringCellValue), Type = GetType(sheet.GetRow(para - 1).GetCell(group - 1).StringCellValue), Number = ((para - dayofweek) / 2 + 1).ToString()
                                        };
                                        day1.Lessons.Add(a);
                                    }
                                    catch
                                    {
                                        continue;
                                    }
                                }
                            }

                            if (sheet.GetRow(para).GetCell(group - 1) != null)
                            {
                                if (sheet.GetRow(para).GetCell(group - 1).StringCellValue != "")
                                {
                                    day2.Lessons.Add(new Lesson()
                                    {
                                        Name = sheet.GetRow(para).GetCell(group - 1).StringCellValue, Time = sheet.GetRow(para - 1).GetCell(2).StringCellValue, Room = sheet.GetRow(para).GetCell(group).StringCellValue, Teacher = GetTeacher(sheet.GetRow(para).GetCell(group - 1).StringCellValue), Type = GetType(sheet.GetRow(para).GetCell(group - 1).StringCellValue), Number = ((para - dayofweek) / 2 + 1).ToString()
                                    });
                                }
                            }
                        }

                        week1.Days.Add(day1);
                        week2.Days.Add(day2);
                    }

                    if (sheet.GetRow(1).GetCell(group - 1).NumericCellValue.ToString() == "1")
                    {
                        Schedule.AddScheduleWeek("НИТУ МИСиС", fileName, course.ToString(), sheet.GetRow(0).GetCell(group - 1).StringCellValue + " 1 подгруппа", 2, week1);
                        Schedule.AddScheduleWeek("НИТУ МИСиС", fileName, course.ToString(), sheet.GetRow(0).GetCell(group - 1).StringCellValue + " 1 подгруппа", 2, week2);
                    }
                    else if (sheet.GetRow(1).GetCell(group - 1).NumericCellValue.ToString() == "2")
                    {
                        if (sheet.GetRow(0).GetCell(group - 1).ToString() == "")
                        {
                            Schedule.AddScheduleWeek("НИТУ МИСиС", fileName, course.ToString(), sheet.GetRow(0).GetCell(group - 3).StringCellValue + " 2 подгруппа", 2, week1);
                            Schedule.AddScheduleWeek("НИТУ МИСиС", fileName, course.ToString(), sheet.GetRow(0).GetCell(group - 3).StringCellValue + " 2 подгруппа", 2, week2);
                        }
                        else
                        {
                            Schedule.AddScheduleWeek("НИТУ МИСиС", fileName, course.ToString(), sheet.GetRow(0).GetCell(group - 1).StringCellValue + " 2 подгруппа", 2, week1);
                            Schedule.AddScheduleWeek("НИТУ МИСиС", fileName, course.ToString(), sheet.GetRow(0).GetCell(group - 1).StringCellValue + " 2 подгруппа", 2, week2);
                        }
                    }
                    else
                    {
                        Schedule.AddScheduleWeek("НИТУ МИСиС", fileName, course.ToString(), sheet.GetRow(0).GetCell(group - 1).StringCellValue, 2, week1);
                        Schedule.AddScheduleWeek("НИТУ МИСиС", fileName, course.ToString(), sheet.GetRow(0).GetCell(group - 1).StringCellValue, 2, week2);
                    }

                    group += 2;
                }
            }
        }
        public static void ReadXls(string FileName)
        {
            //ScheduleController.CheckFile();

            ScheduleController.Unit();

            ScheduleController.AddUniversity("мисис");
            ScheduleController.AddFaculty("мисис", FileName);

            HSSFWorkbook hssfwb;

            using (FileStream file = new FileStream(@"" + FileName + ".xls", FileMode.Open, FileAccess.Read))
            {
                hssfwb = new HSSFWorkbook(file);
            }

            for (int course = 1; course < 7; course++)
            {
                if (hssfwb.GetSheet(course + " курс") == null)
                {
                    break;
                }

                ScheduleController.AddCourse("мисис", FileName, course.ToString());

                ISheet sheet = hssfwb.GetSheet(course + " курс");

                int group = 4;
                //int myFlag = 0;

                while (sheet.GetRow(1).GetCell(group - 1) != null)
                {
                    if (sheet.GetRow(1).GetCell(group - 1).NumericCellValue.ToString() == "1")
                    {
                        ScheduleController.AddGroup("мисис", FileName, course.ToString(), sheet.GetRow(0).GetCell(group - 1).StringCellValue + " 1 подгруппа");
                    }
                    else if (sheet.GetRow(1).GetCell(group - 1).NumericCellValue.ToString() == "2")
                    {
                        if (sheet.GetRow(0).GetCell(group - 1).ToString() == "")
                        {
                            ScheduleController.AddGroup("мисис", FileName, course.ToString(), sheet.GetRow(0).GetCell(group - 3).StringCellValue + " 2 подгруппа");
                        }
                        else
                        {
                            ScheduleController.AddGroup("мисис", FileName, course.ToString(), sheet.GetRow(0).GetCell(group - 1).StringCellValue + " 2 подгруппа");
                        }
                    }
                    else
                    {
                        ScheduleController.AddGroup("мисис", FileName, course.ToString(), sheet.GetRow(0).GetCell(group - 1).StringCellValue);
                    }

                    ScheduleWeek week1 = new ScheduleWeek();
                    ScheduleWeek week2 = new ScheduleWeek();

                    week1.Week = 1;
                    week1.Day  = new List <ScheduleDay>();

                    week2.Week = 2;
                    week2.Day  = new List <ScheduleDay>();

                    for (int dayofweek = 3; dayofweek < 100; dayofweek += 14)
                    {
                        ScheduleDay day1 = new ScheduleDay();
                        ScheduleDay day2 = new ScheduleDay();

                        day1.Day    = dayofweek / 14 + 1;
                        day1.Lesson = new List <Lesson>();
                        day2.Day    = dayofweek / 14 + 1;
                        day2.Lesson = new List <Lesson>();

                        for (int para = dayofweek; para < dayofweek + 14; para += 2)
                        {
                            if (sheet.GetRow(para - 1).GetCell(group - 1) != null)
                            {
                                if (sheet.GetRow(para - 1).GetCell(group - 1).StringCellValue != "")
                                {
                                    Lesson a = new Lesson()
                                    {
                                        Name = sheet.GetRow(para - 1).GetCell(group - 1).StringCellValue, Time = sheet.GetRow(para - 1).GetCell(2).StringCellValue, Room = sheet.GetRow(para - 1).GetCell(group).StringCellValue, Teacher = "", Number = ((para - dayofweek) / 2 + 1).ToString()
                                    };
                                    day1.Lesson.Add(a);
                                }
                            }

                            if (sheet.GetRow(para).GetCell(group - 1) != null)
                            {
                                if (sheet.GetRow(para).GetCell(group - 1).StringCellValue != "")
                                {
                                    day2.Lesson.Add(new Lesson()
                                    {
                                        Name = sheet.GetRow(para).GetCell(group - 1).StringCellValue, Time = sheet.GetRow(para - 1).GetCell(2).StringCellValue, Room = sheet.GetRow(para).GetCell(group).StringCellValue, Teacher = "", Number = ((para - dayofweek) / 2 + 1).ToString()
                                    });
                                }
                            }
                        }

                        week1.Day.Add(day1);
                        week2.Day.Add(day2);
                    }

                    if (sheet.GetRow(1).GetCell(group - 1).NumericCellValue.ToString() == "1")
                    {
                        ScheduleController.AddScheduleWeek("мисис", FileName, course.ToString(), sheet.GetRow(0).GetCell(group - 1).StringCellValue + " 1 подгруппа", week1);
                        ScheduleController.AddScheduleWeek("мисис", FileName, course.ToString(), sheet.GetRow(0).GetCell(group - 1).StringCellValue + " 1 подгруппа", week2);
                    }
                    else if (sheet.GetRow(1).GetCell(group - 1).NumericCellValue.ToString() == "2")
                    {
                        if (sheet.GetRow(0).GetCell(group - 1).ToString() == "")
                        {
                            ScheduleController.AddScheduleWeek("мисис", FileName, course.ToString(), sheet.GetRow(0).GetCell(group - 3).StringCellValue + " 2 подгруппа", week1);
                            ScheduleController.AddScheduleWeek("мисис", FileName, course.ToString(), sheet.GetRow(0).GetCell(group - 3).StringCellValue + " 2 подгруппа", week2);
                        }
                        else
                        {
                            ScheduleController.AddScheduleWeek("мисис", FileName, course.ToString(), sheet.GetRow(0).GetCell(group - 1).StringCellValue + " 2 подгруппа", week1);
                            ScheduleController.AddScheduleWeek("мисис", FileName, course.ToString(), sheet.GetRow(0).GetCell(group - 1).StringCellValue + " 2 подгруппа", week2);
                        }
                    }
                    else
                    {
                        ScheduleController.AddScheduleWeek("мисис", FileName, course.ToString(), sheet.GetRow(0).GetCell(group - 1).StringCellValue, week1);
                        ScheduleController.AddScheduleWeek("мисис", FileName, course.ToString(), sheet.GetRow(0).GetCell(group - 1).StringCellValue, week2);
                    }

                    group += 2;
                }
            }
        }
Beispiel #9
0
 /// <summary>
 /// 指定一个礼拜的具体星期,从startTime开始,endTime结束,默认每日0时0分0秒执行一次
 /// </summary>
 /// <param name="time"></param>
 /// <param name="startTime"></param>
 /// <param name="endTime"></param>
 /// <returns></returns>
 public static CronScheduleTime SetWeekCycle(this CronScheduleTime time, ScheduleWeek startTime, ScheduleWeek endTime)
 {
     return(time.SetWeekCycle((int)startTime, (int)endTime));
 }
        public void Execute(ScheduleWeek week)
        {
            _resultString = "";

            _resultString += "<div class=\"schedule\">";

            //Название седмицы пропускаем. Считаем, что название седмицы будет в наименовании файла
            _resultString += "<h4 class=\"subtitle\">" + week.Name.ToUpper() + "</h4>";

            //теперь начинаем наполнять дни
            foreach (ScheduleDay day in week.Days)
            {
                _resultString += "<div style=\"margin - top:10px; \">";

                int sign = SignMigrator.GetOldId(k => k.Key == day.SignNumber);

                _resultString += "<img style=\"margin-right: 10px;\" src=\"";

                switch (sign)
                {
                case 2:
                    _resultString += "Signs/6.png\" alt = \"Шестеричная служба\">";
                    break;

                case 3:
                    _resultString += "Signs/slav.png\" alt = \"Славословная служба\">";
                    break;

                case 4:
                    _resultString += "Signs/pol.png\" alt = \"Полиелейная служба\">";
                    break;

                case 5:
                    _resultString += "Signs/bd.png\" alt = \"Бденная служба\">";
                    break;

                case 6:
                    _resultString += "Signs/lit.png\" alt = \"Бденная служба с литией\">";
                    break;

                default:
                    _resultString += "Signs/0.png\">";
                    break;
                }

                _resultString += "<strong>";

                //если бдение или бдение с литией или воскресный день - красим в красный цвет
                if (sign == 5 || sign == 6 || sign == 9)
                {
                    _resultString += "<span style=\"color: #ff0000;\">";
                }

                CultureInfo ruRU = new CultureInfo("ru-RU");

                _resultString += day.Date.ToString("dd MMMM yyyy г.", ruRU) + "<br/>";
                _resultString += day.Date.ToString("dddd", ruRU).ToUpper() + "<br/>";
                _resultString += day.Name + "</strong>";

                if (sign == 5 || sign == 6 || sign == 9)
                {
                    _resultString += "</span>";
                }

                _resultString += "</div>";

                _resultString += "<table border=0>";

                foreach (WorshipRuleViewModel service in day.Schedule)
                {
                    _resultString += "<tr><td>";

                    _resultString += service.Time.ToString() + "&nbsp;</td><td>";
                    _resultString += service.Name;

                    //additionalName
                    if (!string.IsNullOrEmpty(service.AdditionalName))
                    {
                        _resultString += "<strong>" + service.AdditionalName + "</strong>";
                    }
                    _resultString += "</td></tr>";
                }

                _resultString += "</table>";
            }

            _resultString += "</div>";
        }
        public void Execute(ScheduleWeek week)
        {
            if (!File.Exists(_fileName))
            {
                throw new FileNotFoundException(_fileName);
            }

            if (week == null)
            {
                throw new ArgumentNullException("week");
            }

            using (WordprocessingDocument doc = WordprocessingDocument.Open(_fileName, true))
            {
                //просматриваем все элементы ChildElements и выбираем только таблицы
                //считаем, что всего таблиц 10.
                //0 - шапка с названием седмицы, а остальные - шаблоны для обозначения знаков служб

                //эта коллекция будет вместилищем таблиц - docx-шаблонов
                var templateTables = new List <Table>();
                //ищем их все и добавляем в коллекцию
                foreach (OpenXmlElement element in doc.MainDocumentPart.Document.Body.ChildElements)
                {
                    if (element.GetType() == typeof(Table))
                    {
                        templateTables.Add((Table)element);
                    }
                }

                //создаем коллекцию таблиц, которые будут результирующим содержанием выходного документа
                List <OpenXmlElement> resultElements = new List <OpenXmlElement>();

                int i = _daysPerPage;

                bool firstTime = true;

                foreach (ScheduleDay day in week.Days)
                {
                    //шапка
                    if (i == _daysPerPage)
                    {
                        if (!firstTime)
                        {
                            //вставляем разрыв страницы
                            resultElements.Add(GetPageBreak());
                        }
                        firstTime = false;

                        //Название седмицы
                        //table[2]->tr[1]->td[1]->p[1]->r[1]->t[1]
                        Table headerTable = GetHeaderTable(templateTables[0], week.Name);
                        resultElements.Add(headerTable);
                    }
                    Table dayTable = GetDayTable(day, templateTables);
                    //добавляем таблицу к выходной коллекции
                    resultElements.Add(dayTable);

                    i--;
                    if (i == 0)
                    {
                        i = _daysPerPage;
                    }
                }

                //в конце удаляем все из документа, оставляя только колонтитулы (прописаны в SectionProperties) и результирующие таблицы

                foreach (OpenXmlElement el in doc.MainDocumentPart.Document.Body.ChildElements)
                {
                    if (el.GetType() == typeof(SectionProperties))
                    {
                        resultElements.Add(el);
                        break;
                    }
                }

                doc.MainDocumentPart.Document.Body.RemoveAllChildren();
                foreach (OpenXmlElement t in resultElements)
                {
                    doc.MainDocumentPart.Document.Body.AppendChild(t);
                }

                doc.MainDocumentPart.Document.Save();
            }
        }
Beispiel #12
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);
 }
 private void updateScheduleWeek()
 {
     ScheduleWeekFormatted = ScheduleWeek.ToShortDateString();
     OnPropertyChanged("ScheduleWeekFormatted");
 }
Beispiel #14
0
 private bool getDayOfWeekChecked(ScheduleWeek schedule, DayOfWeek day) => schedule.SchedDays.Contains(day);
Beispiel #15
0
        //public void AddUniversity(string name)
        //{
        //    PostRequest request = new PostRequest
        //    {
        //        University = name,

        //    };
        //    Send(request);

        //}

        //public void AddFacility(string university, string name)
        //{
        //    PostRequest request = new PostRequest
        //    {
        //        University = university,
        //        Facility = name,

        //    };
        //    Send(request);

        //}

        //public void AddCourse(string university, string facility, string name)
        //{
        //    PostRequest request = new PostRequest
        //    {
        //        University = university,
        //        Facility = facility,
        //        Course = name,
        //    };
        //    Send(request);

        //}

        //public void AddGroup(string university, string facility, string course, string name, byte type)
        //{
        //    PostRequest request = new PostRequest
        //    {
        //        University = university,
        //        Facility = facility,
        //        Course = course,
        //        Group = name,
        //        Type = type

        //    };
        //    Send(request);

        //}



        public void AddScheduleWeek(string university, string facility, string course, string group, byte type, ScheduleWeek week)
        {
            List <ScheduleWeek> weeks = new List <ScheduleWeek>();

            weeks.Add(week);
            PostRequest request = new PostRequest
            {
                Key        = "76546b5ay2604648egh0dlbg1a0c44067k8dd167a0je2920b3c24f8e657effb9850eb13d4978c0da58959",
                University = university,
                Facility   = facility,
                Course     = course,
                Group      = group,
                Weeks      = weeks,
                Type       = type
            };

            Send(request);
        }
 public ClassScheduleAdapter(ScheduleWeek schedule)
 {
     Data = schedule;
 }
Beispiel #17
0
        public void ReadXlsx(string fileName)
        {
            //Schedule.AddUniversity("РХТУ им.Менделеева");


            XSSFWorkbook scheduleWorkbook;

            using (FileStream file = new FileStream(@"Schedule Files\Mendeleev\" + fileName + ".xlsx", FileMode.Open, FileAccess.Read))
            {
                scheduleWorkbook = new XSSFWorkbook(file);
            }

            int sheetCount = scheduleWorkbook.NumberOfSheets;

            for (int sheetNumber = 0; sheetNumber < sheetCount; sheetNumber++)
            {
                ISheet sheet = scheduleWorkbook.GetSheetAt(sheetNumber);

                try
                {
                    if (sheet.GetRow(0).GetCell(1).StringCellValue == "")
                    {
                        break;
                    }
                }
                catch
                {
                    break;
                }


                int row  = 3;
                int cell = 10;


                while (sheet.GetRow(row - 1).GetCell(cell + 1) != null) // перебор всех групп
                {
                    if (sheet.GetRow(row - 1).GetCell(cell + 1).StringCellValue == "")
                    {
                        break;
                    }

                    //Schedule.AddFacility("РХТУ им.Менделеева",
                    //GetFacility(sheet.GetRow(row - 1).GetCell(cell + 1).StringCellValue.Split('-')[0]));

                    //Schedule.AddCourse("РХТУ им.Менделеева",
                    //    GetFacility(sheet.GetRow(row - 1).GetCell(cell + 1).StringCellValue.Split('-')[0]),
                    //    fileName[0].ToString());
                    //Schedule.AddGroup("РХТУ им.Менделеева",
                    //    GetFacility(sheet.GetRow(row - 1).GetCell(cell + 1).StringCellValue.Split('-')[0]),
                    //            fileName[0].ToString(),
                    //            sheet.GetRow(row - 1).GetCell(cell + 1).StringCellValue,2);

                    ScheduleWeek week1 = new ScheduleWeek();
                    ScheduleWeek week2 = new ScheduleWeek();

                    week1.Week = 2;
                    week1.Days = new List <ScheduleDay>();

                    //номера недель отличаются от мисис
                    week2.Week = 1;
                    week2.Days = new List <ScheduleDay>();


                    for (int weekDay = 1; weekDay <= 6; weekDay++) //перебор всех дней недели
                    {
                        ScheduleDay day1 = new ScheduleDay();
                        ScheduleDay day2 = new ScheduleDay();

                        day1.Day     = weekDay;
                        day1.Lessons = new List <Lesson>();
                        day2.Day     = weekDay;
                        day2.Lessons = new List <Lesson>();

                        bool isFind = true; //определяет, найдены ли все куски склеенной ячейки

                        string startTime = String.Empty;
                        string endTime   = String.Empty;

                        int rowBufer = 0;

                        for (int lessonIndex = 0; lessonIndex < 10; lessonIndex++) //перебор всех пар в дне
                        {
                            if (sheet.GetRow(row).GetCell(cell) == null)
                            {
                                continue;
                            }

                            if (weekDay == 6 && lessonIndex > 5) //в суббту
                            {
                                continue;
                            }

                            if (isFind) //если вся ячейка собрана
                            {
                                rowBufer  = row;
                                startTime = sheet.GetRow(row).GetCell(1).StringCellValue;
                                endTime   = sheet.GetRow(row).GetCell(1).StringCellValue;

                                try
                                {
                                    if (sheet.GetRow(row + 1).GetCell(cell + 1).IsMergedCell &&
                                        sheet.GetRow(row + 1).GetCell(cell + 1).StringCellValue
                                        == "") //если снизу находится нижняя часть ячейки, то она объединенная
                                    {
                                        isFind = false;
                                    }
                                    else if (sheet.GetRow(row).GetCell(cell + 1).StringCellValue
                                             != "")
                                    {
                                        AddDay(sheet, row, cell, GetTime(startTime, endTime), GetLessonNumber(GetTime(startTime, startTime)), day1, day2, true);
                                    }
                                }
                                catch
                                {
                                    continue;
                                }
                            }
                            else //продолжается поиск всех частей сборной ячейки
                            {
                                endTime = sheet.GetRow(row).GetCell(1).StringCellValue;

                                try
                                {
                                    if (!sheet.GetRow(row + 1).GetCell(cell + 1).IsMergedCell ||
                                        (sheet.GetRow(row + 1).GetCell(cell + 1).IsMergedCell &&
                                         sheet.GetRow(row + 1).GetCell(cell + 1).StringCellValue != "") ||
                                        lessonIndex == 9)    //если снизу находится часть объединения ячеек или блок кончился, то можно запоминать последнее время и сохранять
                                    {
                                        isFind = true;

                                        AddDay(sheet, rowBufer, cell, GetTime(startTime, endTime), GetLessonNumber(GetTime(startTime, startTime)), day1, day2);
                                    }
                                }
                                catch
                                {
                                    continue;
                                }
                            }

                            row++;
                        }


                        week1.Days.Add(day1);
                        week2.Days.Add(day2);
                    }

                    row = 3;

                    Schedule.AddScheduleWeek("РХТУ им.Менделеева", GetFacility(sheet.GetRow(row - 1).GetCell(cell + 1).StringCellValue.Split('-')[0]), fileName[0].ToString(), sheet.GetRow(row - 1).GetCell(cell + 1).StringCellValue, 2, week1);
                    Schedule.AddScheduleWeek("РХТУ им.Менделеева", GetFacility(sheet.GetRow(row - 1).GetCell(cell + 1).StringCellValue.Split('-')[0]), fileName[0].ToString(), sheet.GetRow(row - 1).GetCell(cell + 1).StringCellValue, 2, week2);

                    cell += 4;
                }
            }
        }
        private async System.Threading.Tasks.Task saveSchedules()
        {
            if (Shift == null || Task == null || (!Monday && !Tuesday && !Wednesday && !Thursday && !Friday && !Saturday && !Sunday))
            {
                MessageHelper.ShowMessage("Please fill in required fields and select at least one day!", "Validation");
                return;
            }
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            try
            {
                var schedules = new List <Schedule>();
                var user      = LoginHelper.GetLoggedInUser().User;

                var daysOfWeek = new List <int>();
                if (Monday)
                {
                    daysOfWeek.Add((int)DayOfWeek.Monday);
                }
                if (Tuesday)
                {
                    daysOfWeek.Add((int)DayOfWeek.Tuesday);
                }
                if (Wednesday)
                {
                    daysOfWeek.Add((int)DayOfWeek.Wednesday);
                }
                if (Thursday)
                {
                    daysOfWeek.Add((int)DayOfWeek.Thursday);
                }
                if (Friday)
                {
                    daysOfWeek.Add((int)DayOfWeek.Friday);
                }
                if (Saturday)
                {
                    daysOfWeek.Add((int)DayOfWeek.Saturday);
                }
                if (Sunday)
                {
                    daysOfWeek.Add((int)DayOfWeek.Sunday);
                }

                foreach (var d in daysOfWeek)
                {
                    var schedule = new Schedule();
                    schedule.CompanyId = user.CompanyId;
                    schedule.DayOfWeek = d;
                    schedule.StartTimeTimezonedValue = (new DateTime(2000, 1, 1) + StartTime);
                    schedule.EndTimeTimezoned        = (new DateTime(2000, 1, 1) + EndTime);
                    schedule.ShiftId = Shift.ShiftId;
                    schedule.TaskId  = Task.TaskId;
                    if (User != null)
                    {
                        schedule.UserId = User.UserId;
                    }
                    var dow = d - user.Company.WeekStartValue;
                    if (dow < 0)
                    {
                        dow += 7;
                    }
                    schedule.ScheduleDate = ScheduleWeek.AddDays(dow);
                    if (User != null)
                    {
                        schedule.Published = WeekIsPublished;
                    }
                    else
                    {
                        schedule.Published = false;
                    }
                    schedules.Add(schedule);
                }

                await DataService.PostItemAsync <Schedule[]>("schedules", schedules.ToArray());

                MessagingCenter.Send <BulkScheduleViewModel>(this, SUCCESS);
                IsBusy = false;
            }
            catch (Exception ex)
            {
                IsBusy = false;
                ExceptionHelper.ShowException(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
Beispiel #19
0
 public static void AddScheduleWeek(string university, string faculty, string course, string group, ScheduleWeek week)
 {
     week.Group = db.Groups.Where(c => c.Course == db.Courses.Where(ll => ll.Facultie == db.Faculties.Where(n => n.University == db.Universities.Where(m => m.Name == university).FirstOrDefault()).Where(x => x.Name == faculty).FirstOrDefault()).Where(x => x.Name == course).FirstOrDefault()).Where(v => v.Name == group).FirstOrDefault();
     db.ScheduleWeeks.Add(week);
     db.SaveChanges();
 }
Beispiel #20
0
        public void Test_Schedule_All()
        {
            List <ScheduleEntry> entries = new List <ScheduleEntry>()
            {
                new ScheduleEntry()
                {
                    DayOfWeek = 1, StartSlot = 2, EndSlot = 4
                },
                new ScheduleEntry()
                {
                    DayOfWeek = 2, StartSlot = 1, EndSlot = 2
                },
                new ScheduleEntry()
                {
                    DayOfWeek = 2, StartSlot = 3, EndSlot = 4
                },
                new ScheduleEntry()
                {
                    DayOfWeek = 2, StartSlot = 5, EndSlot = 6
                },
                new ScheduleEntry()
                {
                    DayOfWeek = 3, StartSlot = 1, EndSlot = 4
                },
                new ScheduleEntry()
                {
                    DayOfWeek = 4, StartSlot = 2, EndSlot = 3
                },
                new ScheduleEntry()
                {
                    DayOfWeek = 5, StartSlot = 1, EndSlot = 2
                },
                new ScheduleEntry()
                {
                    DayOfWeek = 5, StartSlot = 7, EndSlot = 9
                },
            };

            ScheduleWeek week3 = new ScheduleWeek()
            {
                WeekNumber = 3,
                Entries    = entries
            };
            ScheduleWeek week5 = new ScheduleWeek()
            {
                WeekNumber = 5,
                Entries    = entries
            };
            ScheduleWeek week1 = new ScheduleWeek()
            {
                WeekNumber = 1,
                Entries    = entries
            };


            Schedule schedule = new Schedule();

            schedule.AddWeek(week3);
            Assert.AreEqual(3, schedule.Count);
            Assert.AreEqual(2, schedule.Weeks[1].WeekNumber);

            schedule.AddWeek(week5);
            Assert.AreEqual(5, schedule.Count);
            Assert.AreEqual(4, schedule.Weeks[3].WeekNumber);

            schedule.AddWeek(week1);
            Assert.AreEqual(5, schedule.Count);
            Assert.AreEqual(4, schedule.Weeks[3].WeekNumber);
            Assert.AreEqual(8, schedule.Weeks[0].Count);
            Assert.AreEqual(8, schedule.Weeks[4].Count);
            Assert.AreEqual(0, schedule.Weeks[1].Count);

            Assert.AreEqual(1, schedule.GetDaySchedule(2).Count);
            Assert.AreEqual(3, schedule.GetDaySchedule(1).Count);
            Assert.AreEqual(1, schedule.GetDaySchedule(0).Count);
            Assert.AreEqual(0, schedule.GetDaySchedule(5).Count);
            Assert.AreEqual(3, schedule.GetDaySchedule(15).Count);
            Assert.AreEqual(0, schedule.GetDaySchedule(120).Count);
            Assert.AreEqual(0, schedule.GetDaySchedule(-20).Count);

            schedule.AddWeek(week5);
            Assert.AreEqual(5, schedule.Count);
            Assert.AreEqual(16, schedule.Weeks[4].Count);
            schedule.AddEntry(5, week5.Entries[0]);
            Assert.AreEqual(17, schedule.Weeks[4].Count);
        }
Beispiel #21
0
        // ----------------------------------------------------------------------
        private static ScheduleWeek<TimeRange> GetScheduleWeek()
        {
            ScheduleWeek<TimeRange> week = new ScheduleWeek<TimeRange>();

            DateTime now = DateTime.Now; // used as time container

            week[ DayOfWeek.Monday ].WorkingTimes.Add( new TimeRange( TimeTrim.Hour( now, 6, 30 ), TimeTrim.Hour( now, 8, 30 ) ) );
            week[ DayOfWeek.Monday ].WorkingTimes.Add( new TimeRange( TimeTrim.Hour( now, 15 ), TimeTrim.Hour( now, 22, 30 ) ) );

            week[ DayOfWeek.Tuesday ].WorkingTimes.Add( new TimeRange( TimeTrim.Hour( now, 6, 30 ), TimeTrim.Hour( now, 8, 30 ) ) );
            week[ DayOfWeek.Monday ].WorkingTimes.Add( new TimeRange( TimeTrim.Hour( now, 15 ), TimeTrim.Hour( now, 22, 30 ) ) );

            week[ DayOfWeek.Wednesday ].WorkingTimes.Add( new TimeRange( TimeTrim.Hour( now, 6, 30 ), TimeTrim.Hour( now, 8, 30 ) ) );
            week[ DayOfWeek.Wednesday ].WorkingTimes.Add( new TimeRange( TimeTrim.Hour( now, 12 ), TimeTrim.Hour( now, 22, 30 ) ) );

            week[ DayOfWeek.Thursday ].WorkingTimes.Add( new TimeRange( TimeTrim.Hour( now, 6, 30 ), TimeTrim.Hour( now, 8, 30 ) ) );
            week[ DayOfWeek.Thursday ].WorkingTimes.Add( new TimeRange( TimeTrim.Hour( now, 15 ), TimeTrim.Hour( now, 22, 30 ) ) );

            week[ DayOfWeek.Friday ].WorkingTimes.Add( new TimeRange( TimeTrim.Hour( now, 6, 30 ), TimeTrim.Hour( now, 8, 30 ) ) );
            week[ DayOfWeek.Friday ].WorkingTimes.Add( new TimeRange( TimeTrim.Hour( now, 15 ), TimeTrim.Hour( now, 22, 30 ) ) );

            week[ DayOfWeek.Saturday ].WorkingTimes.Add( new TimeRange( TimeTrim.Hour( now, 7 ), TimeTrim.Hour( now, 22, 30 ) ) );

            week[ DayOfWeek.Sunday ].WorkingTimes.Add( new TimeRange( TimeTrim.Hour( now, 7 ), TimeTrim.Hour( now, 22, 30 ) ) );

            return week;
        }