public void SignMigrator_MajorTemplateName() { Assert.AreEqual("Бдение с литией", SignMigrator.Instance(20).MajorTemplateName); Assert.AreEqual("Без знака", SignMigrator.Instance(11).MajorTemplateName); Assert.AreEqual("Воскресный день", SignMigrator.Instance(10).MajorTemplateName); Assert.AreEqual("Без знака", SignMigrator.Instance(14).MajorTemplateName); Assert.AreEqual("Без знака", SignMigrator.Instance(16).MajorTemplateName); }
public DayWorship Create() { if (_row == null) { throw new ArgumentNullException("ScheduleDBDataSet.MineinikRow"); } DayWorship dayService = new DayWorship() { //WorshipName = new ItemTextStyled() }; //наполняем содержимое текста службы dayService.WorshipName.AddOrUpdate("cs-ru", _row.Name); dayService.IsCelebrating = !_row.IsIsCelebratingNull() ? _row.IsCelebrating : false; dayService.UseFullName = !_row.IsUseFullNameNull() ? _row.UseFullName : false; if (!_row.IsShortNameNull() && !string.IsNullOrEmpty(_row.ShortName)) { //dayService.WorshipShortName = new ItemTextStyled(); dayService.WorshipShortName.AddOrUpdate("cs-ru", _row.ShortName); } string fileName = (!_row.IsDateBNull()) ? new ItemDate(_row.DateB.Month, _row.DateB.Day).Expression + "." + _row.Name : _row.Name; //сначала ищем в папке Menology в надежде, что текст определен (как в последствии и должно быть) _fileReader.FolderPath = Path.Combine(_folderPath, "Menology"); string definition = _fileReader.Read(fileName); if (string.IsNullOrEmpty(definition)) { //Если его мы не находим, то заменяем текстом по умолчанию, исходя из знака службы _fileReader.FolderPath = Path.Combine(_folderPath, "Templates"); fileName = SignMigrator.Instance(_row.ServiceSignsRow.Number).MajorTemplateName; definition = TransformDefinition(_fileReader.Read(fileName), _row.Name, fileName); } dayService.Definition = definition; return(dayService); }
private async Task Migrate() { var roleAdmin = new Role() { Name = "Администратор", SystemName = "admin" }; _dbContext.Set <Role>().Add(roleAdmin); var roleEditor = new Role() { Name = "Уставщик", SystemName = "editor" }; _dbContext.Set <Role>().Add(roleEditor); var roleTypesetter = new Role() { Name = "Редактор", SystemName = "typesetter" }; _dbContext.Set <Role>().Add(roleTypesetter); Commit(); var user = new User() { UserName = "******", Email = "*****@*****.**", }; user.UserRoles = new List <UserRole>() { new UserRole() { Role = roleAdmin, User = user }, new UserRole() { Role = roleEditor, User = user }, new UserRole() { Role = roleTypesetter, User = user } }; await _userCreationService.CreateUser(user, "eCa6?&OpM/"); var typicon = new TypiconEntity() { Owner = user }; _dbContext.Set <TypiconEntity>().Add(typicon); Commit(); var typiconEntity = new TypiconVersion() { Name = new ItemText() { Items = new List <ItemTextUnit>() { new ItemTextUnit("cs-ru", "Типикон") } }, DefaultLanguage = DEFAULT_LANGUAGE, TypiconId = typicon.Id, //Делаем сразу опубликованную версию BDate = DateTime.Now }; typicon.Versions.Add(typiconEntity); Commit(); string folderPath = Path.Combine(FOLDER_PATH, TYPICON_NAME, "Sign"); FileReader fileReader = new FileReader(folderPath); int i = 1; foreach (ScheduleDBDataSet.ServiceSignsRow row in _sh.DataSet.ServiceSigns.Rows) { SignMigrator signMigrator = new SignMigrator(row.Number); Sign sign = new Sign() { //Id = signMigrator.NewId, Priority = signMigrator.Priority, TypiconVersionId = typiconEntity.Id, //Owner = typiconEntity, IsTemplate = row.IsTemplate, RuleDefinition = fileReader.Read(row.Name), ModRuleDefinition = fileReader.Read(row.Name, "mod") }; sign.SignName.AddOrUpdate(DEFAULT_LANGUAGE, row.Name); if (signMigrator.Number != null) { sign.Number = (int)signMigrator.Number; } sign.SignName.AddOrUpdate(DEFAULT_LANGUAGE, row.Name); if (signMigrator.TemplateId != null) { sign.Template = typiconEntity.Signs.First(c => c.Number == signMigrator.TemplateId); sign.IsAddition = true; } typiconEntity.Signs.Add(sign); i++; } Commit(); MigrateMenologyDaysAndRules(typiconEntity); Commit(); MigrateTriodionDaysAndRules(typiconEntity); Commit(); MigrateCommonRules(typiconEntity); Commit(); MigrateExplicitRules(typiconEntity); Commit(); MigratePsalms(); MigrateKathismas(typiconEntity); }
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>"; }