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 }); }
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() + " </td><td>"; _resultString += service.Name; //additionalName if (!string.IsNullOrEmpty(service.AdditionalName)) { _resultString += "<strong>" + service.AdditionalName + "</strong>"; } _resultString += "</td></tr>"; } _resultString += "</table>"; } _resultString += "</div>"; }
/// <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); }
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(); }
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); } } }
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; } } }
/// <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() + " </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(); } }
/// <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"); }
private bool getDayOfWeekChecked(ScheduleWeek schedule, DayOfWeek day) => schedule.SchedDays.Contains(day);
//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; }
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; } }
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(); }
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); }
// ---------------------------------------------------------------------- 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; }