Ejemplo n.º 1
0
        public void TagEscapes()
        {
            Assert.That(TagExpander.ItemRegex, Is.Not.Null);
            Assert.That(TagExpander.KeyRegex, Is.Not.Null);
            Assert.That(TagExpander.PropertyRegex, Is.Not.Null);
            Assert.That(TagExpander.ItemKeyOrPropertyRegex, Is.Not.Null);
            Assert.That(TagExpander.KeyOrPropertyRegex, Is.Not.Null);

            Assert.That(TagExpander.Escape("ba%nana"), Is.EqualTo("ba%nana"));
            Assert.That(TagExpander.Escape("ba%20nana"), Is.EqualTo("ba%2520nana"));
            Assert.That(TagExpander.Escape("ba%AQnana%"), Is.EqualTo("ba%25AQnana%"));
            Assert.That(TagExpander.Escape("ba%(nana%a"), Is.EqualTo("ba%25(nana%25a"));

            Assert.That(TagExpander.Unescape(TagExpander.Escape("ba%nana")), Is.EqualTo("ba%nana"));
            Assert.That(TagExpander.Unescape(TagExpander.Escape("ba%20nana")), Is.EqualTo("ba%20nana"));
            Assert.That(TagExpander.Unescape(TagExpander.Escape("ba%AQnana%")), Is.EqualTo("ba%AQnana%"));
            Assert.That(TagExpander.Unescape(TagExpander.Escape("ba%(nana%a")), Is.EqualTo("ba%(nana%a"));

            Assert.That(TagExpander.Escape("ba%(na)na"), Is.EqualTo("ba%25(na)na"));
            Assert.That(TagExpander.Escape("ba%(na)na", true, false), Is.EqualTo("ba%(na)na"));


            Assert.That(TagExpander.Unescape("ba@(na->'%qq%nn%27a')na", false), Is.EqualTo("ba@(na->'%qq%nn'a')na"));
            Assert.That(TagExpander.Unescape("ba@(na->'%qq%nn%27a')na", true), Is.EqualTo("ba@(na->'%qq%nn%27a')na"));
            Assert.That(TagExpander.Unescape("ba@( na -> '%qq%nn%27%25a' , '%25' )na", true), Is.EqualTo("ba@( na -> '%qq%nn%27%25a' , '%25' )na"));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates the value.
        /// </summary>
        /// <param name="value">The value.</param>
        /// <returns></returns>
        protected override object CreateValue(string value)
        {
            IList <string> items = TagExpander.SplitItemList(value);
            Array          a     = Array.CreateInstance(ItemType, items.Count);

            for (int i = 0; i < items.Count; i++)
            {
                a.SetValue(base.CreateValue(items[i]), i);
            }

            return(a);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// タグのListを返す
        /// </summary>
        /// <returns></returns>
        private static List <TagTransferItemViewModel> GetTagListItems()
        {
            var retList = new List <TagTransferItemViewModel>();

            var models = TagExpander.Expand(ModelsComposite.TagManager);

            foreach (var model in models)
            {
                retList.Add(new TagTransferItemViewModel(model as SaveTagModel));
            }

            return(retList);
        }
Ejemplo n.º 4
0
        protected internal override void Prepare(TagBatchDefinition batchDefinition, int offset)
        {
            InitPreparation(batchDefinition, offset);

            List <ValuePart> parts = new List <ValuePart>();

            foreach (string item in TagExpander.SplitItemList(Definition))
            {
                ValueItem[] vi = PrepareString(batchDefinition, item, PrepareMode.List);

                if (vi.Length == 1)
                {
                    ValueItem v = vi[0];

                    ItemValueItem   ivi;
                    StringValueItem svi;
                    if (null != (ivi = v as ItemValueItem))
                    {
                        if (string.IsNullOrEmpty(ivi.Separator) || ivi.Separator.Trim() == ";")
                        {
                            parts.Add(new ItemValuePart(ivi));
                            continue;
                        }
                    }
                    else if (null != (svi = v as StringValueItem))
                    {
                        // TODO: Shortcut single string value
                        parts.Add(new ConstantValuePart(svi.Value));
                        continue;
                    }
                }

                parts.Add(new DynamicValuePart(vi));
            }

            _parts = parts.ToArray();
        }
 /// <summary>
 /// タグの転送
 /// </summary>
 /// <param name="tags">タグ</param>
 private static void TransferTags(List <SaveTagModel> tags)
 {
     TagExpander.Expand(tags, ModelsComposite.TagManager);
 }
        private bool ExpandTagModel()
        {
            TagExpander.Expand(LoadComposition.TagModelCollection, ModelsComposite.TagManager);

            return(true);
        }