Example #1
0
        public void CanExtractTag()
        {
            const string data = "{MİKTAR} {ÜRÜN} [Fiyat:{FİYAT}]";

            var tagData = new TagData(data, "{MİKTAR}");
            Assert.IsTrue(tagData.Tag == "{MİKTAR}");
            Assert.IsTrue(tagData.Length == "{MİKTAR}".Length);
            Assert.IsTrue(tagData.StartPos == 0);

            tagData = new TagData(data, "{ÜRÜN}");
            Assert.IsTrue(tagData.Tag == "{ÜRÜN}");
            Assert.IsTrue(tagData.Length == "{ÜRÜN}".Length);
            Assert.IsTrue(tagData.StartPos == data.IndexOf("{ÜRÜN"));
            Assert.IsTrue(tagData.DataString == "{ÜRÜN}");

            tagData = new TagData(data, "{FİYAT}");
            Assert.IsTrue(tagData.Tag == "{FİYAT}");
            Assert.IsTrue(tagData.Length == "[Fiyat:{FİYAT}]".Length);
            Assert.IsTrue(tagData.StartPos == data.IndexOf("[Fiyat:{FİYAT}]"));
            Assert.IsTrue(tagData.DataString == "[Fiyat:{FİYAT}]");
            Assert.IsTrue(tagData.Title == "Fiyat:<value>");
        }
Example #2
0
 private static string RemoveTag(string data, string tag)
 {
     var i = 0;
     while (data.Contains(tag) && i < 99)
     {
         var tagData = new TagData(data, tag);
         var spos = data.IndexOf(tagData.DataString);
         data = data.Remove(spos, tagData.Length);
         i++;
     }
     return data;
 }
Example #3
0
 private static string UpdateSettings(string result)
 {
     while (Regex.IsMatch(result, "{SETTING:[^}]+}", RegexOptions.Singleline))
     {
         var match = Regex.Match(result, "{SETTING:([^}]+)}");
         var tagName = match.Groups[0].Value;
         var settingName = match.Groups[1].Value;
         var tagData = new TagData(result, tagName);
         var value = !string.IsNullOrEmpty(settingName) ? AppServices.SettingService.ReadSetting(settingName).StringValue : "";
         var replace = !string.IsNullOrEmpty(value) ? tagData.Title.Replace("<value>", value) : "";
         result = result.Replace(tagData.DataString, replace);
     }
     return result;
 }
Example #4
0
        private static string FormatData(string data, string tag, Func<string> valueFunc)
        {
            if (!data.Contains(tag)) return data;

            var i = 0;
            while (data.Contains(tag) && i < 99)
            {
                var value = valueFunc.Invoke();
                var tagData = new TagData(data, tag);
                if (!string.IsNullOrEmpty(value)) value =
                    !string.IsNullOrEmpty(tagData.Title) && tagData.Title.Contains("<value>")
                    ? tagData.Title.Replace("<value>", value)
                    : tagData.Title + value;
                var spos = data.IndexOf(tagData.DataString);
                data = data.Remove(spos, tagData.Length).Insert(spos, value ?? "");
                i++;
            }
            return data;
        }