public void TestCellSelectorOnKeyDatesTable() { //Opening Schedule Page TopMenu topMenuInstance = new TopMenu(driver); Actions builder = new Actions(driver); builder.MoveToElement(topMenuInstance.TopMenuSection).Build().Perform(); Acts.Click(topMenuInstance.ScheduleItem); //Select group from LeftContainer scheduleContentInstance = new ScheduleContent(driver); Acts.Click(scheduleContentInstance .LeftContainerInstance .GroupsInLocation .GetGroupByName("DP-094-MQC")); //Go to Key-Dates tab scheduleContentInstance.KeyDatesButton.Click(); // Select some cell in key-dates table ScheduleKeyDatesTab scheduleKeyDatesTabInstance = new ScheduleKeyDatesTab(driver); string text = scheduleKeyDatesTabInstance.KeyDatesTable.GetCellBy2Keys("Demo2", "DP-094-MQC").Text; Console.WriteLine("Value from cell " + text); }
public static List <ScheduleContent> ParseResponse(string myResponse) { var response = JObject.Parse(myResponse); // check if error occured var report = response["report"].ToString(); if (!string.IsNullOrWhiteSpace(report)) { var ex = new ArgumentException(report); _logger.Error(ex); throw ex; } var scheduleContent = (JArray)response["ScheduleContent"]; var weekTimetable = new List <ScheduleContent>(); foreach (var block in scheduleContent) { try { { LessonType lessonType = ConvertLessonType(block["tu"].ToString()[0]); string teacherName = block["u"].ToString(); string roomName = block["r"].ToString(); string subjectCode = block["k"].ToString().Trim(); string subjectNameHelper = block["s"].ToString().Trim(); string subjectName = subjectNameHelper.First().ToString().ToUpper() + subjectNameHelper.Substring(1); var content = new ScheduleContent() { BlockNumber = int.Parse(block["dw"].ToString()) - 1, LessonType = lessonType, TeacherName = teacherName, RoomName = roomName, CourseCode = subjectCode, CourseName = subjectName }; weekTimetable.Add(content); } } catch (Exception ex) { _logger.Error(ex); throw; } } return(weekTimetable); }
internal ScheduleContent <TValue> GetContentFile(int DayInt) { if (!_contentdictionary.ContainsKey(DayInt)) { lock (_object) { if (!_contentdictionary.ContainsKey(DayInt)) { ScheduleContent <TValue> content = new ScheduleContent <TValue>(DayInt, this); _contentdictionary.Add(DayInt, content); } } } return(_contentdictionary[DayInt]); }
public static bool GenerateReport(string exportDirectory, ScheduleContent scheduleContent, string userName, string password) { LogExtension.LogInfo("Report exporting started", MethodBase.GetCurrentMethod(), " ExportDirectory - " + exportDirectory + " UserName - " + userName + " Password - " + password); var exportStatus = false; //try //{ // if (Directory.Exists(exportDirectory + scheduleContent.ScheduleId)) // { // Array.ForEach(Directory.GetFiles(exportDirectory + scheduleContent.ScheduleId), File.Delete); // } // else // { // Directory.CreateDirectory(exportDirectory + scheduleContent.ScheduleId); // } // var thread = new Thread(delegate() // { // try // { // var reportContent = new ReportWriter(); // reportContent.ReportingServer = new UMPServer(); // reportContent.ReportServerCredential = // new System.Net.NetworkCredential(userName, password); // reportContent.ReportServerUrl = GlobalAppSettings.SystemSettings.BaseUrl + "/api/reportserverapi"; // reportContent.ReportPath = scheduleContent.ItemId.ToString(); // switch (scheduleContent.ExportTypeId) // { // case ExportType.Pdf: // reportContent.Save( // exportDirectory + scheduleContent.ScheduleId + "\\" + scheduleContent.ReportName + // ".pdf", WriterFormat.PDF); // break; // case ExportType.Excel: // reportContent.Save( // exportDirectory + scheduleContent.ScheduleId + "\\" + scheduleContent.ReportName + // ".xls", WriterFormat.Excel); // break; // case ExportType.Word: // reportContent.Save( // exportDirectory + scheduleContent.ScheduleId + "\\" + scheduleContent.ReportName + // ".doc", WriterFormat.Word); // break; // default: // reportContent.Save( // exportDirectory + scheduleContent.ScheduleId + "\\" + scheduleContent.ReportName + // ".html", WriterFormat.HTML); // break; // } // } // catch (Exception ex) // { // exportStatus = false; // LogExtension.LogError("Exception while exporting report", ex, MethodBase.GetCurrentMethod(), " ExportDirectory - " + exportDirectory + " UserName - " + userName + " Password - " + password + " ScheduleId - " + scheduleContent.ScheduleId + " ExportTypeId" + scheduleContent.ExportTypeId); // } // exportStatus = true; // }); // thread.SetApartmentState(ApartmentState.STA); // thread.Start(); // thread.Join(); //} //catch (Exception ex) //{ // exportStatus = false; // LogExtension.LogError("Exception while exporting report", ex, MethodBase.GetCurrentMethod(), " ExportDirectory - " + exportDirectory + " UserName - " + userName + " Password - " + password + " ScheduleId - " + scheduleContent.ScheduleId + " ExportTypeId" + scheduleContent.ExportTypeId); //} return(exportStatus); }
public static async Task <Timetable> ConvertAndMergeSameConsecutiveBlocks(ScheduleTimetableResult scheduleTimetable, ICourseService courseService, bool isTimetableForCourse) { var sortedBlocks = scheduleTimetable.Result.ScheduleContents .OrderBy(b => b.Day) .ThenBy(b => b.CourseName) .ThenBy(b => b.TeacherName) .ThenBy(b => b.RoomName) .ThenBy(b => b.LessonType) .ThenBy(b => b.BlockNumber) .ToList(); IEnumerable <Task <Block> > mergedBlocks = Merge(sortedBlocks, (group, b2) => { ScheduleContent b1 = group.First(); return(b1.Day == b2.Day && b1.CourseName == b2.CourseName && b1.RoomName == b2.RoomName && b1.LessonType == b2.LessonType && (b1.BlockNumber == b2.BlockNumber - 1 || b1.BlockNumber == b2.BlockNumber)); // || b1.BlockNumber == b2.BlockNumber to eliminate duplicates (same blocks) }, async(group) => { ScheduleContent firstInGroup = group.First(); var teacherBuilder = new StringBuilder(); foreach (var item in group.Select(x => x.TeacherName).Distinct()) { if (string.IsNullOrEmpty(teacherBuilder.ToString())) { teacherBuilder.Append(item); } else { teacherBuilder.Append($", {item}"); } } var block = new Block() { BlockType = ConvertToBlockType(firstInGroup.LessonType), Day = ConvertToDay(firstInGroup.Day), Teacher = teacherBuilder.ToString(), Room = firstInGroup.RoomName, StartHour = (byte)(firstInGroup.BlockNumber + 6), // block number start 1 but starting hour in school is 7:00 Duration = (byte)(group.Last().BlockNumber - firstInGroup.BlockNumber + 1) }; if (!isTimetableForCourse) { Course course = await courseService.GetOrAddNotExistsCourse(firstInGroup.CourseCode, firstInGroup.CourseName); Block courseBlock = course.Timetable?.GetBlock(block); if (courseBlock != null) { block.BlockId = courseBlock.BlockId; } block.CourseId = course.Id; } return(block); } ); Timetable mergedTimetable = new(scheduleTimetable.Semester); foreach (var mergedBlock in mergedBlocks) { mergedTimetable.AddNewBlock(await mergedBlock); } return(mergedTimetable); }