//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); }
private void InitializeIoC() { var container = new RegisterByContainer().Container; var unitOfWork = container.GetInstance <IUnitOfWork>(); var typiconEntityService = container.With(unitOfWork).GetInstance <ITypiconEntityService>(); GetTypiconEntityResponse response = typiconEntityService.GetTypiconEntity(1);// _unitOfWork.Repository<TypiconEntity>().Get(c => c.Name == "Типикон"); typiconEntity = response.TypiconEntity; var bookStorage = new BookStorage( container.With(unitOfWork).GetInstance <IEvangelionContext>(), container.With(unitOfWork).GetInstance <IApostolContext>(), container.With(unitOfWork).GetInstance <IOldTestamentContext>(), container.With(unitOfWork).GetInstance <IPsalterContext>(), container.With(unitOfWork).GetInstance <IOktoikhContext>(), container.With(unitOfWork).GetInstance <ITheotokionAppContext>(), container.With(unitOfWork).GetInstance <IEasterContext>(), container.With(unitOfWork).GetInstance <IKatavasiaContext>()); IRuleSerializerRoot serializerRoot = container.With(bookStorage).GetInstance <IRuleSerializerRoot>(); settingsFactory = new CustomRuleSettingsFactory(); scheduleService = container.With(settingsFactory).With(serializerRoot).GetInstance <IScheduleService>(); }
private void InitializeIoC() { var container = new RegisterByContainer().Container; _unitOfWork = container.GetInstance <IUnitOfWork>(); _typiconEntityService = container.With(_unitOfWork).GetInstance <ITypiconEntityService>(); GetTypiconEntityResponse response = _typiconEntityService.GetTypiconEntity(1);// _unitOfWork.Repository<TypiconEntity>().Get(c => c.Name == "Типикон"); _typiconEntity = response.TypiconEntity; _bookStorage = new BookStorage( container.With(_unitOfWork).GetInstance <IEvangelionContext>(), container.With(_unitOfWork).GetInstance <IApostolContext>(), container.With(_unitOfWork).GetInstance <IOldTestamentContext>(), container.With(_unitOfWork).GetInstance <IPsalterContext>(), container.With(_unitOfWork).GetInstance <IOktoikhContext>(), container.With(_unitOfWork).GetInstance <ITheotokionAppContext>(), container.With(_unitOfWork).GetInstance <IEasterContext>(), container.With(_unitOfWork).GetInstance <IKatavasiaContext>()); //EasterStorage.Instance.EasterDays = _unitOfWork.Repository<EasterItem>().GetAll().ToList(); IRuleSerializerRoot serializerRoot = container.With(_bookStorage).GetInstance <IRuleSerializerRoot>(); var settingsFactory = container.GetInstance <IRuleHandlerSettingsFactory>(); _scheduleService = container.With(settingsFactory).With(serializerRoot).GetInstance <IScheduleService>(); _docxTemplateService = container.With(_bookStorage.Oktoikh).GetInstance <IDocxTemplateService>(); }
public void TypiconEntityService_GetTypiconEntity() { EFUnitOfWork _unitOfWork = new EFUnitOfWork(); //BookStorage.Instance = BookStorageFactory.Create(); TypiconEntityService service = new TypiconEntityService(_unitOfWork); GetTypiconEntityResponse response = service.GetTypiconEntity(1); Assert.NotNull(response.TypiconEntity); }
public void TypiconEntityService_ClearModifiedYears() { EFUnitOfWork _unitOfWork = new EFUnitOfWork(); //BookStorage.Instance = BookStorageFactory.Create(); TypiconEntityService service = new TypiconEntityService(_unitOfWork); GetTypiconEntityResponse response = service.GetTypiconEntity(1); service.ClearModifiedYears(1); Assert.AreEqual(response.TypiconEntity.ModifiedYears.Count, 0); }
public void ReloadRules(int id, string folderPath) { GetTypiconEntityResponse response = GetTypiconEntity(id); if (response.TypiconEntity != null) { string setting = Path.Combine(folderPath, response.TypiconEntity.Name, "Menology"); FileReader fileReader = new FileReader(setting); foreach (MenologyRule rule in response.TypiconEntity.MenologyRules) { if (rule.Date.IsEmpty && rule.DateB.IsEmpty) { rule.RuleDefinition = fileReader.Read(rule.Name); } else { rule.RuleDefinition = fileReader.Read(rule.DateB.Expression); } } setting = Path.Combine(folderPath, response.TypiconEntity.Name, "Triodion"); fileReader.FolderPath = setting; foreach (TriodionRule rule in response.TypiconEntity.TriodionRules) { rule.RuleDefinition = fileReader.Read(rule.DaysFromEaster.ToString()); } setting = Path.Combine(folderPath, response.TypiconEntity.Name, "Sign"); fileReader.FolderPath = setting; foreach (Sign sign in response.TypiconEntity.Signs) { sign.RuleDefinition = fileReader.Read(sign.Name); } //commonRules ReloadCommonRules(response.TypiconEntity, folderPath); _unitOfWork.SaveChanges(); } }
/// <summary> /// Удаляет все переходящие праздники у Устава с заданным Id /// </summary> /// <param name="id">Id Устава</param> public void ClearModifiedYears(int id) { GetTypiconEntityResponse response = GetTypiconEntity(id); if (response.TypiconEntity != null) { while (response.TypiconEntity.ModifiedYears.Count > 0) { response.TypiconEntity.ModifiedYears.Remove(response.TypiconEntity.ModifiedYears[0]); } //response.TypiconEntity.ModifiedYears // .ForEach(c => // { // //c.ModifiedRules.ForEach(d => // // { // // //d.RuleEntity = null; // // d.Parent = null; // // }); // //c.ModifiedRules.Clear(); // c.TypiconEntity = null; // }); //response.TypiconEntity.ModifiedYears.Clear(); //while (response.TypiconEntity.ModifiedYears.Count > 0) //{ // ModifiedYear year = response.TypiconEntity.ModifiedYears[0]; // while (year.ModifiedRules.Count > 0) // { // _unitOfWork.Repository<ModifiedRule>().Delete(year.ModifiedRules[0]); // } // _unitOfWork.Repository<ModifiedYear>().Delete(year); //} _unitOfWork.SaveChanges(); } }
public GetTypiconEntityResponse GetTypiconEntity(int id) { var response = new GetTypiconEntityResponse(); try { var typicon = _unitOfWork.Repository <TypiconEntity>().Get(x => x.Id == id); if (typicon == null) { response.Exception = GetStandardTypiconNotFoundException(); } else { response.TypiconEntity = typicon; } } catch (Exception ex) { response.Exception = ex; } return(response); }