示例#1
0
        public void Merge(OutputDayInfo dayInfo, ITypiconSerializer typiconSerializer)
        {
            //NextDayFirstWorship
            if (ScheduleResults.NextDayFirstWorship.Count > 0 &&
                dayInfo.ScheduleResults.DayBefore.FirstOrDefault() is OutputWorshipModel dayBefore)
            {
                ScheduleResults.NextDayFirstWorship.Reverse();
                //вставляем службы в первую службу следующего дня (daybefore), начиная с последних
                foreach (var worship in ScheduleResults.NextDayFirstWorship)
                {
                    dayBefore.ChildElements.InsertRange(0, worship.ChildElements);
                }
            }

            //DayBefore
            //ScheduleResults.ThisDay.AddRange(dayInfo.ScheduleResults.DayBefore);

            Day.AddWorships(dayInfo.ScheduleResults.DayBefore, typiconSerializer);

            _dayWorships.AddRange(dayInfo.DayWorships);

            //удаляем возможные дубликаты ссылок на тексты служб
            _dayWorships = _dayWorships.Distinct().ToList();

            //TODO: BrokenConstaints??
        }
示例#2
0
 public TypiconXmlImportManager(IProjector <TypiconVersionProjection, TypiconEntity> projector
                                , TypiconDBContext dbContext
                                , ITypiconSerializer serializer)
 {
     _projector  = projector ?? throw new ArgumentNullException(nameof(projector));
     _dbContext  = dbContext ?? throw new ArgumentNullException(nameof(dbContext));
     _serializer = serializer ?? throw new ArgumentNullException(nameof(serializer));
 }
 public NonexistedOutputDayFactory(TypiconDBContext dbContext
                                   , IScheduleDataCalculator dataCalculator
                                   , IScheduleDayNameComposer nameComposer
                                   , ITypiconSerializer typiconSerializer
                                   , ScheduleHandler handler) : base(dataCalculator, nameComposer, typiconSerializer, handler)
 {
     _dbContext = dbContext ?? throw new ArgumentNullException(nameof(dbContext));
 }
示例#4
0
 protected override void Validate(ITypiconSerializer serializer)
 {
     //глас должен иметь значения с 1 до 8
     if ((Ihos < 1) || (Ihos > 8))
     {
         AddBrokenConstraint(OktoikhDayBusinessConstraint.InvalidIhos);
     }
 }
示例#5
0
        public override BookReading GetElement(ITypiconSerializer serializer)
        {
            if (reading == null)
            {
                reading = base.GetElement(serializer) ?? new BookReading();
            }

            return(reading);
        }
示例#6
0
        protected override void Validate(ITypiconSerializer serializer)
        {
            base.Validate(serializer);

            if (Ihos < 1 || Ihos > 8)
            {
                AddBrokenConstraint(TheotokionAppBusinessConstraint.InvalidIhos);
            }
        }
示例#7
0
        private readonly ScheduleHandler _handler;// = new ServiceSequenceHandler();

        public OutputDayFactory(IScheduleDataCalculator dataCalculator
                                , IScheduleDayNameComposer nameComposer
                                , ITypiconSerializer typiconSerializer
                                , ScheduleHandler handler)
        {
            _dataCalculator    = dataCalculator ?? throw new ArgumentNullException(nameof(dataCalculator));
            _nameComposer      = nameComposer ?? throw new ArgumentNullException(nameof(nameComposer));
            _typiconSerializer = typiconSerializer ?? throw new ArgumentNullException(nameof(typiconSerializer));
            _handler           = handler ?? throw new ArgumentNullException(nameof(handler));
        }
示例#8
0
 public OutputForms(TypiconDBContext dbContext
                    , IScheduleDayNameComposer nameComposer
                    , ITypiconSerializer serializer
                    , IJobRepository jobs)
 {
     _dbContext    = dbContext ?? throw new ArgumentNullException(nameof(dbContext));
     _nameComposer = nameComposer ?? throw new ArgumentNullException(nameof(nameComposer));
     _serializer   = serializer ?? throw new ArgumentNullException(nameof(serializer));
     _jobs         = jobs ?? throw new ArgumentNullException(nameof(jobs));
 }
        private void ValidateKathismas(ITypiconSerializer serializer)
        {
            if (Kathismas.Count != 20)
            {
                AddError("Должно быть определено 20 кафизм", ErrorConstants.Kathismas);
            }

            foreach (var entity in Kathismas)
            {
                var err = entity.GetBrokenConstraints(serializer);
                if (err.Count > 0)
                {
                    AddError(err.GetSummary(), ErrorConstants.Kathisma, entity.Id);
                }
            }
        }
示例#10
0
 protected override void Validate(ITypiconSerializer typiconSerializer)
 {
     if (string.IsNullOrEmpty(Definition))
     {
         AddBrokenConstraint(new BusinessConstraint("Отсутствует определение песнопения."));
     }
     else
     {
         var element = GetElement(typiconSerializer);
         if (element == null)
         {
             AddBrokenConstraint(new BusinessConstraint("Правило заполнено с неопределяемыми системой ошибками.", "Definition"));
         }
         else if (!element.IsValid)
         {
             AppendAllBrokenConstraints(element.GetBrokenConstraints(), "Definition");
         }
     }
 }
示例#11
0
 public PsalmsMigrationManager(IPsalterService service, ITypiconSerializer serializer)
 {
     Service    = service ?? throw new ArgumentNullException(nameof(service));
     Serializer = serializer ?? throw new ArgumentNullException(nameof(serializer));
 }
 protected KanonasItemRuleBase(string name, ITypiconSerializer serializer) : base(name)
 {
     Serializer = serializer ?? throw new ArgumentNullException(nameof(serializer));
 }
示例#13
0
 public ExapostilarionItemRule(string name, ITypiconSerializer serializer, IQueryProcessor queryProcessor)
     : base(name, serializer, queryProcessor)
 {
 }
 public KKanonasItemRule(string name, ITypiconSerializer serializer) : base(name, serializer)
 {
 }
示例#15
0
 public KontakionRule(string name, ITypiconSerializer serializer, IQueryProcessor queryProcessor,
                      IElementViewModelFactory <KontakionRule> viewModelFactory) : base(name, serializer, queryProcessor)
 {
     ViewModelFactory = viewModelFactory ?? throw new ArgumentNullException("IElementViewModelFactory in KontakionRule");
 }
 public KatavasiaQueryHandler(TypiconDBContext dbContext, [NotNull] ITypiconSerializer typiconSerializer) : base(dbContext)
 {
     this.typiconSerializer = typiconSerializer;
 }
 public RuleSerializerRoot([NotNull] IQueryProcessor queryProcessor, ITypiconSerializer typiconSerializer)
 {
     QueryProcessor    = queryProcessor ?? throw new ArgumentNullException(nameof(queryProcessor));
     TypiconSerializer = typiconSerializer ?? throw new ArgumentNullException(nameof(typiconSerializer));
 }
示例#18
0
 public TheotokionAppQueryHandler(TypiconDBContext dbContext, ITypiconSerializer serializer) : base(dbContext)
 {
     this.serializer = serializer ?? throw new ArgumentNullException(nameof(serializer));
 }
 public OutputWorshipQueryHandler(TypiconDBContext dbContext
                                  , ITypiconSerializer typiconSerializer)
     : base(dbContext)
 {
     _typiconSerializer = typiconSerializer ?? throw new ArgumentNullException(nameof(typiconSerializer));
 }
 public static void AddWorships(this OutputDay day, List <OutputWorshipModel> worshipModels, ITypiconSerializer typiconSerializer)
 {
     foreach (var wm in worshipModels)
     {
         day.AddWorship(wm, typiconSerializer);
     }
 }
        public static ItemTextStyled GetItemTextStyled(this XmlNode elem, ITypiconSerializer serializer, string key)
        {
            var node = elem.SelectSingleNode(key);

            return((node != null) ? serializer.Deserialize <ItemTextStyled>(node.OuterXml, key) : default(ItemTextStyled));
        }
示例#22
0
 public virtual T GetElement(ITypiconSerializer serializer)
 {
     return(serializer.Deserialize <T>(Definition));
 }
 public TriodionDayEditModelValidator(ITypiconSerializer serializer) : base(serializer)
 {
 }
示例#24
0
 public VariablesCollectorSerializerRoot([NotNull] IQueryProcessor queryProcessor, ITypiconSerializer typiconSerializer) : base(queryProcessor, typiconSerializer)
 {
 }
示例#25
0
 public DayBookModelValidatorBase(ITypiconSerializer serializer) : base(serializer)
 {
 }
        public static void AddWorship(this OutputDay day, OutputWorshipModel worshipModel, ITypiconSerializer typiconSerializer)
        {
            var w = new OutputWorship()
            {
                OutputDay      = day,
                Order          = day.GetMaxOrder() + 1,
                Time           = worshipModel.Time,
                Name           = new ItemTextStyled(worshipModel.Name),
                AdditionalName = (worshipModel.AdditionalName != null)
                    ? new ItemTextStyled(worshipModel.AdditionalName)
                    : new ItemTextStyled(),
                Definition = (worshipModel.ChildElements.Any())
                    ? typiconSerializer.Serialize(worshipModel.ChildElements)
                    : string.Empty
            };

            day.Worships.Add(w);
        }
示例#27
0
 public SourceHavingRuleBase(string name, [NotNull] ITypiconSerializer serializer, [NotNull] IQueryProcessor queryProcessor) : base(name)
 {
     this.serializer     = serializer;
     this.queryProcessor = queryProcessor;
 }
 public HtmlScheduleWeekViewer(ITypiconSerializer xmlSerializer, IConfigurationRepository configRepo)
 {
     this.xmlSerializer = xmlSerializer ?? throw new ArgumentNullException("xmlSerializer in HtmlScheduleDayViewer");
     this.configRepo    = configRepo ?? throw new ArgumentNullException("configRepo in HtmlScheduleDayViewer");
 }
示例#29
0
 public MenologyDayEditModelValidator(ITypiconSerializer serializer) : base(serializer)
 {
 }
 public OktoikhDayEditModelValidator(ITypiconSerializer serializer) : base(serializer)
 {
 }