public void ExapostilarionRuleTest_FromRealDB() { var dbContext = TypiconDbContextFactory.Create(); var typiconEntity = dbContext.Set <TypiconVersion>().First(c => c.Id == 1); ServiceSequenceHandler handler = new ServiceSequenceHandler(); string xml = TestDataXmlReader.GetXmlString("ExapostilarionRuleTest.xml"); DateTime date = new DateTime(2017, 11, 09); MenologyRule rule = typiconEntity.GetMenologyRule(date); rule.RuleDefinition = xml; handler.Settings.Menologies = rule.DayWorships.ToList(); handler.Settings.Date = date; OktoikhDay oktoikhDay = DataQueryProcessorFactory.Instance.Process(new OktoikhDayQuery(date)); handler.Settings.OktoikhDay = oktoikhDay; var ruleContainer = TestRuleSerializer.Deserialize <ExapostilarionRule>(xml); ruleContainer.Interpret(handler); Assert.AreEqual(3, ruleContainer.Structure.Ymnis.Count); Assert.IsNotNull(ruleContainer.Structure.Theotokion); }
public async Task <Result> ExecuteAsync(CreateOktoikhDayCommand command) { var obj = new OktoikhDay() { Ihos = command.Ihos, DayOfWeek = command.DayOfWeek, Definition = command.Definition }; DbContext.Set <OktoikhDay>().Add(obj); await DbContext.SaveChangesAsync(); return(Result.Ok()); }
public void KanonasRule_FromDB() { EFUnitOfWork _unitOfWork = new EFUnitOfWork(); //BookStorage.Instance = BookStorageFactory.Create(); GetTypiconEntityResponse resp = new TypiconEntityService(_unitOfWork).GetTypiconEntity(1); TypiconEntity typiconEntity = resp.TypiconEntity; ServiceSequenceHandler handler = new ServiceSequenceHandler() { Settings = new RuleHandlerSettings() { Language = LanguageSettingsFactory.Create("cs-ru") } }; string folderPath = Path.Combine(TestContext.CurrentContext.TestDirectory, @"TestData"); FileReader reader = new FileReader(folderPath); string xml = reader.Read("KanonasRuleTest.xml"); DateTime date = new DateTime(2017, 11, 11); MenologyRule rule = typiconEntity.GetMenologyRule(date); rule.RuleDefinition = xml; handler.Settings.Rule = rule; handler.Settings.DayWorships = rule.DayWorships; handler.Settings.Date = date; var bookStorage = BookStorageFactory.Create(); OktoikhDay oktoikhDay = bookStorage.Oktoikh.Get(date); handler.Settings.OktoikhDay = oktoikhDay; //rule.GetRule(TestRuleSerializer.Root).Interpret(handler); handler.ClearResult(); KanonasRule kanonasRule = rule.GetRule <KanonasRule>(TestRuleSerializer.Root); kanonasRule.Interpret(handler); Assert.AreEqual(4, kanonasRule.Kanones.Count()); //Assert.IsNotNull(kanonasRule.Sedalen); }
public void YmnosStructureRule_FromRealDB() { EFUnitOfWork _unitOfWork = new EFUnitOfWork(); //BookStorage.Instance = BookStorageFactory.Create(); GetTypiconEntityResponse resp = new TypiconEntityService(_unitOfWork).GetTypiconEntity(1); TypiconEntity typiconEntity = resp.TypiconEntity; ServiceSequenceHandler handler = new ServiceSequenceHandler() { Settings = new RuleHandlerSettings() { Language = LanguageSettingsFactory.Create("cs-ru") } }; string folderPath = Path.Combine(TestContext.CurrentContext.TestDirectory, @"TestData"); FileReader reader = new FileReader(folderPath); string xml = reader.Read("YmnosStructureRuleTest.xml"); //Дата --11-09 exists - true DateTime date = new DateTime(2017, 11, 09); MenologyRule rule = typiconEntity.GetMenologyRule(date); rule.RuleDefinition = xml; handler.Settings.Rule = rule; handler.Settings.DayWorships = rule.DayWorships; handler.Settings.Date = date; var bookStorage = BookStorageFactory.Create(); OktoikhDay oktoikhDay = bookStorage.Oktoikh.Get(date); handler.Settings.OktoikhDay = oktoikhDay; rule.GetRule(TestRuleSerializer.Root).Interpret(handler); var model = handler.GetResult(); //SedalenRuleViewModel model = rule.GetRule<SedalenRule>(TestRuleSerializer.Root).CreateViewModel(handler) as SedalenRuleViewModel; Assert.AreEqual(3, rule.GetRule <SedalenRule>(TestRuleSerializer.Root).Structure.YmnosStructureCount); Assert.Pass(rule.GetRule <SedalenRule>(TestRuleSerializer.Root).Structure.YmnosStructureCount.ToString()); }
private RuleHandlerSettings InnerCreate(TypiconRule rule, IEnumerable <DayWorship> dayWorships, OktoikhDay oktoikhDay, GetRuleSettingsRequest req, RuleHandlerSettings additionalSettings, int?signNumber = null) { return(new RuleHandlerSettings() { Addition = additionalSettings, Date = req.Date, Rule = rule, DayWorships = dayWorships.ToList(), OktoikhDay = oktoikhDay, Language = LanguageSettingsFactory.Create(req.Language), SignNumber = signNumber, //ThrowExceptionIfInvalid = req.ThrowExceptionIfInvalid, ApplyParameters = req.ApplyParameters, CheckParameters = req.CheckParameters }); }
private RuleHandlerSettings GetRecursiveSettings(TypiconRule rule, IEnumerable <DayWorship> dayWorships, OktoikhDay oktoikhDay, GetRuleSettingsRequest req, RuleHandlerSettings additionalSettings, int?signNumber = null) { RuleHandlerSettings outputSettings = InnerCreate(rule, dayWorships, oktoikhDay, req, additionalSettings, signNumber); /* * Если Правило имеет: * Правило помечено как Дополнение * и определен Шаблон */ if (/*string.IsNullOrEmpty(rule.RuleDefinition) && */ rule.IsAddition && rule.Template != null) { //если правило определено и определено как добавление, входим в рекурсию outputSettings = GetRecursiveSettings(rule.Template, dayWorships, oktoikhDay, req, outputSettings); } return(outputSettings); }