コード例 #1
0
 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);
 }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: Migration.cs プロジェクト: AlexLunyov/TypiconOnline
        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);
        }
コード例 #4
0
        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() + "&nbsp;</td><td>";
                    _resultString += service.Name;

                    //additionalName
                    if (!string.IsNullOrEmpty(service.AdditionalName))
                    {
                        _resultString += "<strong>" + service.AdditionalName + "</strong>";
                    }
                    _resultString += "</td></tr>";
                }

                _resultString += "</table>";
            }

            _resultString += "</div>";
        }