//public GetSequenceResponse GetSequence(GetSequenceRequest request) //{ // //TODO: добавить нормальную тестовую строку // string html = @"<!DOCTYPE html> // <html> // <head> // <meta charset=""utf-8"" /> // </head> // <body> // <div id=""schberlukiru""> // <div class=""schedule""><h4 class=""subtitle"">СЕДМИЦА 20-АЯ ПО ПЯТИДЕСЯТНИЦЕ</h4><div style=""margin - top:10px; "">[sign cat=""2""]<strong>16 октября 2017 г.<br/>ПОНЕДЕЛЬНИК<br/>Сщмч. Диони́сия Ареопаги́та, еп. Афи́нского.</strong></div><table border=0><tr><td>06.00 </td><td>Полунощница. Утреня. Часы.</td></tr><tr><td>08.00 </td><td>Божественная литургия.</td></tr><tr><td>17.30 </td><td>9-й час. Вечерня. Малое повечерие.</td></tr></table><div style=""margin - top:10px; "">[sign cat=""3""]<strong>17 октября 2017 г.<br/>ВТОРНИК<br/>Обре́тение мощей свтт. Гу́рия, архиеп. Казанского, и Варсоно́фия, еп. Тверского.</strong></div><table border=0><tr><td>06.00 </td><td>Полунощница. Утреня. Часы.</td></tr><tr><td>08.00 </td><td>Божественная литургия.</td></tr><tr><td>17.30 </td><td>9-й час. Вечерня. Малое повечерие.</td></tr></table><div style=""margin - top:10px; "">[sign cat=""3""]<strong>18 октября 2017 г.<br/>СРЕДА<br/>Свтт. Петра, Алекси́я, Ионы, Макария, Филиппа, Иова, Ермогена, Тихона, Петра, Филарета, Иннокентия и Макария, Московских и всея России чудотворцев.</strong></div><table border=0><tr><td>06.00 </td><td>Полунощница. Утреня. Часы.</td></tr><tr><td>08.00 </td><td>Божественная литургия.</td></tr><tr><td>17.30 </td><td>9-й час. Вечерня. Малое повечерие.</td></tr></table><div style=""margin - top:10px; "">[sign cat=""3""]<strong>19 октября 2017 г.<br/>ЧЕТВЕРГ<br/>Апостола Фомы́.</strong></div><table border=0><tr><td>06.00 </td><td>Полунощница. Утреня. Часы.</td></tr><tr><td>08.00 </td><td>Божественная литургия.</td></tr><tr><td>17.30 </td><td>9-й час. Вечерня. Малое повечерие.</td></tr></table><div style=""margin - top:10px; "">[sign cat=""2""]<strong>20 октября 2017 г.<br/>ПЯТНИЦА<br/>Мчч. Се́ргия и Ва́кха.</strong></div><table border=0><tr><td>06.00 </td><td>Полунощница. Утреня. Часы.</td></tr><tr><td>08.00 </td><td>Божественная литургия.</td></tr><tr><td>17.30 </td><td>9-й час. Вечерня. Малое повечерие.</td></tr></table><div style=""margin - top:10px; "">[sign cat=""1""]<strong>21 октября 2017 г.<br/>СУББОТА<br/>Прп. Пелагии.</strong></div><table border=0><tr><td>06.00 </td><td>Полунощница. Утреня. Часы.</td></tr><tr><td>08.00 </td><td>Божественная литургия.</td></tr><tr><td>16.00 </td><td>Всенощное бдение.</td></tr></table><div style=""margin - top:10px; "">[sign cat=""9""]<strong><span style=""color: #ff0000;"">22 октября 2017 г.<br/>ВОСКРЕСЕНЬЕ<br/>Неделя 20-ая по Пятидесятнице. Глас 3-й. Ап. Иа́кова Алфе́ева.</strong></span></div><table border=0><tr><td>08.40 </td><td>Часы 3-й и 6-й.</td></tr><tr><td>09.00 </td><td>Божественная литургия.</td></tr><tr><td>17.30 </td><td>9-й час. Вечерня. Малое повечерие.</td></tr></table></div><div class=""schedule""><h4 class=""subtitle"">СЕДМИЦА 21-АЯ ПО ПЯТИДЕСЯТНИЦЕ</h4><div style=""margin - top:10px; "">[sign cat=""3""]<strong>23 октября 2017 г.<br/>ПОНЕДЕЛЬНИК<br/>Прп. Амвро́сия О́птинского.</strong></div><table border=0><tr><td>06.00 </td><td>Полунощница. Утреня. Часы.</td></tr><tr><td>08.00 </td><td>Божественная литургия.</td></tr><tr><td>17.30 </td><td>9-й час. Вечерня. Малое повечерие.</td></tr></table><div style=""margin - top:10px; "">[sign cat=""3""]<strong>24 октября 2017 г.<br/>ВТОРНИК<br/>Собор преподобных О́птинских старцев.</strong></div><table border=0><tr><td>06.00 </td><td>Полунощница. Утреня. Часы.</td></tr><tr><td>08.00 </td><td>Божественная литургия.</td></tr><tr><td>17.30 </td><td>9-й час. Вечерня. Малое повечерие.</td></tr></table><div style=""margin - top:10px; "">[sign cat=""1""]<strong>25 октября 2017 г.<br/>СРЕДА<br/>Мчч. Про́ва, Тара́ха и Андрони́ка. Прп. Космы́, еп. Маиу́мского, творца канонов. </strong></div><table border=0><tr><td>06.00 </td><td>Полунощница. Утреня. Часы.</td></tr><tr><td>08.00 </td><td>Божественная литургия.</td></tr><tr><td>17.30 </td><td>9-й час. Вечерня. Малое повечерие.</td></tr></table><div style=""margin - top:10px; "">[sign cat=""3""]<strong>26 октября 2017 г.<br/>ЧЕТВЕРГ<br/>Иверской иконы Божией Матери.</strong></div><table border=0><tr><td>06.00 </td><td>Полунощница. Утреня. Часы.</td></tr><tr><td>08.00 </td><td>Божественная литургия.</td></tr><tr><td>17.30 </td><td>9-й час. Вечерня. Малое повечерие.</td></tr></table><div style=""margin - top:10px; "">[sign cat=""3""]<strong>27 октября 2017 г.<br/>ПЯТНИЦА<br/>Прп. Нико́лы Свято́ши, кн. Черни́говского.</strong></div><table border=0><tr><td>06.00 </td><td>Полунощница. Утреня. Часы.</td></tr><tr><td>08.00 </td><td>Божественная литургия.</td></tr><tr><td>17.30 </td><td>9-й час. Вечерня. Малое повечерие.</td></tr></table><div style=""margin - top:10px; "">[sign cat=""3""]<strong>28 октября 2017 г.<br/>СУББОТА<br/>Свт. Афана́сия исп., еп. Ковро́вского.</strong></div><table border=0><tr><td>06.00 </td><td>Полунощница. Утреня. Часы.</td></tr><tr><td>08.00 </td><td>Божественная литургия.</td></tr><tr><td>16.00 </td><td>Всенощное бдение.</td></tr></table><div style=""margin - top:10px; "">[sign cat=""9""]<strong><span style=""color: #ff0000;"">29 октября 2017 г.<br/>ВОСКРЕСЕНЬЕ<br/>Неделя 21-ая по Пятидесятнице. Глас 4-й. Мч. Ло́нгина со́тника, иже при Кресте́ Госпо́дни.</strong></span></div><table border=0><tr><td>08.40 </td><td>Часы 3-й и 6-й.</td></tr><tr><td>09.00 </td><td>Божественная литургия.</td></tr><tr><td>17.30 </td><td>9-й час. Вечерня. Малое повечерие.</td></tr></table></div> // </div> // </body> // </html>"; // GetSequenceResponse response = new GetSequenceResponse() { Sequence = html }; // return response; //} public GetSequenceResponse GetSequence(GetSequenceRequest request) { TypiconEntityService typService = new TypiconEntityService(_unitOfWork); GetTypiconEntityResponse resp = typService.GetTypiconEntity(request.TypiconId); TypiconEntity typicon = resp.TypiconEntity ?? throw new NullReferenceException("TypiconEntity"); GetScheduleWeekResponse weekResponse = CreateScheduleService().GetScheduleWeek(new GetScheduleWeekRequest() { Date = request.Date, Typicon = typicon, Handler = new ScheduleHandler(), Language = "cs-ru", CheckParameters = new CustomParamsCollection <IRuleCheckParameter>().SetModeParam(HandlingMode.AstronomicDay) }); _unitOfWork.SaveChanges(); HtmlInnerScheduleWeekViewer viewer = new HtmlInnerScheduleWeekViewer(); viewer.Execute(weekResponse.Week); GetSequenceResponse response = new GetSequenceResponse() { Sequence = viewer.ResultString }; return(response); }
public void BerlukiRu_ComparingRequests() { EFUnitOfWork _unitOfWork = new EFUnitOfWork(); //BookStorage.Instance = BookStorageFactory.Create(); TypiconEntity typiconEntity = _unitOfWork.Repository <TypiconEntity>().Get(c => c.Name == "Типикон"); DateTime date = new DateTime(2017, 9, 24); //сначала как в запросе в контроллере BerlukiRuController GetScheduleDayRequest dayRequest1 = new GetScheduleDayRequest() { Date = date, Handler = new ScheduleHandler(), Typicon = typiconEntity, CheckParameters = new CustomParamsCollection <IRuleCheckParameter>().SetModeParam(HandlingMode.AstronomicDay) }; ScheduleService scheduleService = ScheduleServiceFactory.Create(); GetScheduleDayResponse dayResponse1 = scheduleService.GetScheduleDay(dayRequest1); //теперь как TypiconController GetScheduleDayRequest dayRequest2 = new GetScheduleDayRequest() { Date = date, Typicon = typiconEntity, Handler = new ScheduleHandler(), CheckParameters = new CustomParamsCollection <IRuleCheckParameter>().SetModeParam(HandlingMode.AstronomicDay) }; GetScheduleDayResponse dayResponse2 = scheduleService.GetScheduleDay(dayRequest2); GetScheduleWeekRequest weekRequest = new GetScheduleWeekRequest() { Date = date, Typicon = typiconEntity, Handler = new ScheduleHandler(), CheckParameters = new CustomParamsCollection <IRuleCheckParameter>().SetModeParam(HandlingMode.AstronomicDay) }; GetScheduleWeekResponse weekResponse = scheduleService.GetScheduleWeek(weekRequest); Assert.AreEqual(dayResponse1.Day.Name, dayResponse2.Day.Name); Assert.AreEqual(dayResponse1.Day.Name, weekResponse.Week.Days.Last().Name); }
public void BerlukiRu_Test() { EFUnitOfWork _unitOfWork = new EFUnitOfWork(); //BookStorage.Instance = BookStorageFactory.Create(); TypiconEntity typiconEntity = _unitOfWork.Repository <TypiconEntity>().Get(c => c.Name == "Типикон"); DateTime date = new DateTime(2017, 09, 03);//DateTime.Now; if ((date.DayOfWeek == DayOfWeek.Sunday) && (date.Hour > 17)) { date = date.AddDays(1); } GetScheduleWeekRequest weekRequest = new GetScheduleWeekRequest() { Date = date, Typicon = typiconEntity, Handler = new ScheduleHandler(), CheckParameters = new CustomParamsCollection <IRuleCheckParameter>().SetModeParam(HandlingMode.AstronomicDay) }; ScheduleService scheduleService = ScheduleServiceFactory.Create(); GetScheduleWeekResponse weekResponse = scheduleService.GetScheduleWeek(weekRequest); HtmlScheduleWeekViewer htmlViewer = new HtmlScheduleWeekViewer(); htmlViewer.Execute(weekResponse.Week); string resultString = htmlViewer.ResultString; weekRequest.Date = date.AddDays(7); weekResponse = scheduleService.GetScheduleWeek(weekRequest); htmlViewer.Execute(weekResponse.Week); resultString += htmlViewer.ResultString; Assert.Pass(resultString); }
private void Execute() { if (textBoxFilePath.Text == "") { MessageBox.Show("Задайте путь к папке для сохранения файлов.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //try //{ GetScheduleWeekRequest weekRequest = new GetScheduleWeekRequest() { Date = SelectedDate, Typicon = _typiconEntity, Handler = new ScheduleHandler(), Language = "cs-ru", ThrowExceptionIfInvalid = checkBoxException.Checked, ApplyParameters = CustomParameters, CheckParameters = new CustomParamsCollection <IRuleCheckParameter>().SetModeParam(HandlingMode.AstronomicDay) }; GetScheduleWeekResponse weekResponse = _scheduleService.GetScheduleWeek(weekRequest); _unitOfWork.SaveChanges(); //string messageString = ""; if (checkBoxDocx.Checked) { HandleTemplateRequest request = new HandleTemplateRequest() { FileTemplateName = Properties.Settings.Default.TemplateFilePath, OutputFolderPath = Properties.Settings.Default.OutputDirectoryPath, ScheduleFileStart = Properties.Settings.Default.ScheduleFileStart, ScheduleWeek = weekResponse.Week, OpenFileAfterHandling = checkBoxIsDocxOpen.Checked, }; var response = _docxTemplateService.Operate(request); if (response.Exception != null) { MessageBox.Show(response.Exception.ToString(), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //if (textBoxTemplatePath.Text == "") //{ // MessageBox.Show("Определите файл docx шаблона.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); // return; //} //string fileTemplateName = textBoxTemplatePath.Text; //string fileOutputName = GetFileName(_selectedDate) + ".docx"; //if (File.Exists(fileOutputName)) // File.Delete(fileOutputName); //string dirPath = Path.GetDirectoryName(fileOutputName); //if (!Directory.Exists(dirPath)) // Directory.CreateDirectory(dirPath); //File.Copy(fileTemplateName, fileOutputName); //DocxScheduleWeekViewer docxViewer = new DocxScheduleWeekViewer(fileOutputName); //docxViewer.Execute(weekResponse.Week); //messageString += "\nПечатная версия была успешно сохранена. "; FillDateCaptions(); //if (checkBoxIsDocxOpen.Checked) //{ // System.Diagnostics.Process proc = new System.Diagnostics.Process(); // proc.StartInfo.FileName = fileOutputName; // proc.StartInfo.UseShellExecute = true; // proc.Start(); //} } if (checkBoxBigDocx.Checked) { HandleTemplateRequest request = new HandleTemplateRequest() { FileTemplateName = Properties.Settings.Default.BigTemplateFilePath, OutputFolderPath = Properties.Settings.Default.OutputDirectoryPath, ScheduleFileStart = Properties.Settings.Default.BigScheduleFileStart, DaysPerTable = 4, ScheduleWeek = weekResponse.Week, OpenFileAfterHandling = checkBoxIsBigDocxOpen.Checked, }; var response = _docxTemplateService.Operate(request); if (response.Exception != null) { MessageBox.Show(response.Exception.ToString(), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //if (textBoxTemplatePath.Text == "") //{ // MessageBox.Show("Определите файл docx шаблона.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); // return; //} //string fileTemplateName = textBoxTemplatePath.Text; //string fileOutputName = GetFileName(_selectedDate) + ".docx"; //if (File.Exists(fileOutputName)) // File.Delete(fileOutputName); //string dirPath = Path.GetDirectoryName(fileOutputName); //if (!Directory.Exists(dirPath)) // Directory.CreateDirectory(dirPath); //File.Copy(fileTemplateName, fileOutputName); //DocxScheduleWeekViewer docxViewer = new DocxScheduleWeekViewer(fileOutputName); //docxViewer.Execute(weekResponse.Week); //messageString += "\nПечатная версия была успешно сохранена. "; FillDateCaptions(); //if (checkBoxIsDocxOpen.Checked) //{ // System.Diagnostics.Process proc = new System.Diagnostics.Process(); // proc.StartInfo.FileName = fileOutputName; // proc.StartInfo.UseShellExecute = true; // proc.Start(); //} } if (checkBoxTxt.Checked) { HtmlScheduleWeekViewer htmlViewer = new HtmlScheduleWeekViewer(); htmlViewer.Execute(weekResponse.Week); //textBoxResult.Clear(); //textBoxResult.AppendText(htmlViewer.ResultString); if (checkBoxWordpress.Checked) { using (FormPassword testDialog = new FormPassword()) { // Show testDialog as a modal dialog and determine if DialogResult = OK. if (testDialog.ShowDialog(this) == DialogResult.OK) { if (testDialog.textBoxPassword.Text == Properties.Settings.Default.PasswordToPostWordpress) { DateTime datePub = _selectedDate.AddDays(-8).AddHours(17).AddMinutes(30); PostToWordPress(weekResponse.Week.Name, htmlViewer.ResultString, datePub); MessageBox.Show($"Запись размещена на сайте. Дата публикации - {datePub.ToString("hh:mm dd MMMM yyyy года.")}", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { // Read the contents of testDialog's TextBox. MessageBox.Show("Неверный пароль. Расписание не было опубликовано на сайте.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } } } } //MessageBox.Show(messageString, "Результат", MessageBoxButtons.OK, MessageBoxIcon.Information); #region to TextBox textBoxResult.Clear(); textBoxResult.AppendText(weekResponse.Week.Name + Environment.NewLine); foreach (ScheduleDay day in weekResponse.Week.Days) { textBoxResult.AppendText("--------------------------" + Environment.NewLine); textBoxResult.AppendText(day.Date.ToShortDateString() + Environment.NewLine); textBoxResult.AppendText(day.Name + Environment.NewLine); textBoxResult.AppendText("Знак службы: " + day.SignName + Environment.NewLine); foreach (WorshipRuleViewModel el in day.Schedule) { string str = !string.IsNullOrEmpty(el.Time) ? $"{el.Time} " : ""; str += $"{el.Name} {el.AdditionalName + Environment.NewLine}"; textBoxResult.AppendText(str); } } #endregion //} //catch (Exception ex) //{ // MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); //} }