예제 #1
0
        public OdiViewModelFactory(IRuleHandler handler, IRuleSerializerRoot serializer, Action <OutputSectionModelCollection> appendModelAction)
        {
            this.handler           = handler ?? throw new ArgumentNullException("IRuleHandler in OdiViewModelHandler");
            this.appendModelAction = appendModelAction ?? throw new ArgumentNullException("Action<ElementViewModel> in OdiViewModelHandler");
            this.serializer        = serializer ?? throw new ArgumentNullException("IRuleSerializerRoot in OdiViewModelHandler");

            choruses = serializer.GetCommonRuleChildren <TextHolder>(handler.Settings.TypiconVersionId, CommonRuleConstants.KanonasChorusRule);
        }
예제 #2
0
        /// <summary>
        /// Возвращает ItemText из Правила, представляющего из себя коллекцию TextHolder, согласно индекса
        /// </summary>
        /// <param name="serializer"></param>
        /// <param name="typiconId"></param>
        /// <param name="name"></param>
        /// <param name="language"></param>
        /// <param name="index">Номер TextHolder-ы в коллекции Правил</param>
        /// <returns></returns>
        public static ItemText GetCommonRuleIndexedItemText(this IRuleSerializerRoot serializer, int typiconId, string name, int index)
        {
            ItemText result = null;

            if (serializer.GetCommonRuleChildren(typiconId, name).ElementAtOrDefault(index) is TextHolder t && t.Paragraphs?.Count > 0)
            {
                result = new ItemText(t.Paragraphs[0]);
            }
            return(result);
        }
예제 #3
0
        /// <summary>
        /// Возвращает строку из Правила, представляющего из себя коллекцию TextHolder, согласно индекса
        /// </summary>
        /// <param name="serializer"></param>
        /// <param name="typiconId"></param>
        /// <param name="name"></param>
        /// <param name="language"></param>
        /// <param name="index">Номер TextHolder-ы в коллекции Правила</param>
        /// <returns></returns>
        public static string GetCommonRuleIndexedString(this IRuleSerializerRoot serializer, int typiconId, string name, string language, int index)
        {
            var result = "";

            if (serializer.GetCommonRuleChildren(typiconId, name).ElementAtOrDefault(index) is TextHolder t && t.Paragraphs?.Count > 0)
            {
                result = t.Paragraphs[0]?.FirstOrDefault(language).Text;
            }
            return(result);
        }
예제 #4
0
        public static T GetCommonRuleFirstChild <T>(this IRuleSerializerRoot serializer, int typiconId, string key) where T : class, IRuleElement
        {
            var collection = serializer.GetCommonRuleChildren(typiconId, key);

            return((collection?.Count() > 0) ? collection.FirstOrDefault() as T : default(T));
        }
예제 #5
0
 public static IReadOnlyList <T> GetCommonRuleChildren <T>(this IRuleSerializerRoot serializer, int typiconId,
                                                           string key) where T : class, IRuleElement
 {
     return(serializer.GetCommonRuleChildren(typiconId, key).Cast <T>().ToList());
 }