Exemplo n.º 1
0
        public static ZoneCollection GetZones(string[] html, out LayoutHtmlCollection result)
        {
            Regex zoneRegex = new Regex("name=\"(ZoneName|LayoutId|ID)\".+value=\"(.+)\">");

            result = new LayoutHtmlCollection();
            ZoneCollection zones = new ZoneCollection();

            for (int i = 0; i < html.Count(); i++)
            {
                var item = html[i];
                if (item == ZoneEntity.ZoneTag)
                {
                    i++;
                    item = html[i];
                    ZoneEntity zone = new ZoneEntity();
                    item.Split(new[] { "<input" }, StringSplitOptions.RemoveEmptyEntries).Each(part =>
                    {
                        zoneRegex.Replace(part, evaluator =>
                        {
                            if (evaluator.Groups[1].Value.Equals("ZoneName"))
                            {
                                zone.ZoneName = evaluator.Groups[2].Value;
                            }
                            else if (evaluator.Groups[1].Value.Equals("LayoutId"))
                            {
                                zone.LayoutId = evaluator.Groups[2].Value;
                            }
                            else if (evaluator.Groups[1].Value.Equals("ID"))
                            {
                                zone.ID = evaluator.Groups[2].Value;
                            }
                            return("");
                        });
                    });
                    zone.ID = zone.ID ?? Guid.NewGuid().ToString("N");
                    zones.Add(zone);
                    result.Add(new LayoutHtml {
                        Html = ZoneEntity.ZoneTag
                    });
                    result.Add(new LayoutHtml {
                        Html = zone.ID
                    });
                    result.Add(new LayoutHtml {
                        Html = ZoneEntity.ZoneEndTag
                    });
                    i++;
                }
                else
                {
                    result.Add(new LayoutHtml {
                        Html = item
                    });
                }
            }
            return(zones);
        }
Exemplo n.º 2
0
Arquivo: Helper.cs Projeto: skehya/cms
        public static LayoutHtmlCollection GenerateHtml(string[] html, ZoneCollection zones)
        {
            int index = 0;

            foreach (var item in zones)
            {
                if (item.HeadingCode.IsNullOrWhiteSpace())
                {
                    string zoneCode = $"ZONE-{index}";
                    while (zones.Any(m => m.HeadingCode == zoneCode))
                    {
                        index++;
                        zoneCode = $"ZONE-{index}";
                    }
                    item.HeadingCode = zoneCode;
                }
            }
            int zoneIndex = 0;
            var result    = new LayoutHtmlCollection();

            for (int i = 0; i < html.Length; i++)
            {
                var item = html[i];
                if (item == ZoneEntity.ZoneTag)
                {
                    var zone = zones[zoneIndex];
                    result.Add(new LayoutHtml {
                        Html = ZoneEntity.ZoneTag
                    });
                    result.Add(new LayoutHtml {
                        Html = zone.HeadingCode
                    });
                    result.Add(new LayoutHtml {
                        Html = ZoneEntity.ZoneEndTag
                    });
                    i += 1;
                    zoneIndex++;
                }
                else
                {
                    result.Add(new LayoutHtml {
                        Html = item
                    });
                }
            }
            return(result);
        }
Exemplo n.º 3
0
        public static LayoutHtmlCollection GenerateHtml(string[] html, ZoneCollection zones)
        {
            int zoneIndex = 0;
            var result    = new LayoutHtmlCollection();

            for (int i = 0; i < html.Length; i++)
            {
                var item = html[i];
                if (item == ZoneEntity.ZoneTag)
                {
                    var zone = zones[zoneIndex];
                    if (zone.ID.IsNullOrWhiteSpace())
                    {
                        zone.ID = Guid.NewGuid().ToString("N");
                    }
                    result.Add(new LayoutHtml {
                        Html = ZoneEntity.ZoneTag
                    });
                    result.Add(new LayoutHtml {
                        Html = zone.ID
                    });
                    result.Add(new LayoutHtml {
                        Html = ZoneEntity.ZoneEndTag
                    });
                    i += 1;
                    zoneIndex++;
                }
                else
                {
                    result.Add(new LayoutHtml {
                        Html = item
                    });
                }
            }
            return(result);
        }
Exemplo n.º 4
0
        public static ZoneCollection GetZones(string[] html, out LayoutHtmlCollection result)
        {
            ZoneEntity zone          = null;
            bool       initZoneStart = false;

            result = new LayoutHtmlCollection();
            ZoneCollection zones = new ZoneCollection();

            foreach (string item in html)
            {
                if (item == ZoneEntity.ZoneTag)
                {
                    zone          = new ZoneEntity();
                    initZoneStart = true;
                    continue;
                }
                else if (item == ZoneEntity.ZoneEndTag)
                {
                    initZoneStart = false;
                    if (zone.ID.IsNullOrEmpty())
                    {
                        zone.ID = Guid.NewGuid().ToString("N");
                    }
                    zones.Add(zone);
                    result.Add(new LayoutHtml {
                        Html = ZoneEntity.ZoneTag
                    });
                    result.Add(new LayoutHtml {
                        Html = zone.ID
                    });
                    result.Add(new LayoutHtml {
                        Html = ZoneEntity.ZoneEndTag
                    });
                    continue;
                }

                if (!initZoneStart)
                {
                    result.Add(new LayoutHtml {
                        Html = item
                    });
                }
                else
                {
                    if (item.Contains("name=\"ZoneName\"") || item.Contains("name=\"ZoneId\""))
                    {
                        string[] zoneInfo = item.Split(new string[] { "<input" }, StringSplitOptions.RemoveEmptyEntries);
                        foreach (string zonePart in zoneInfo)
                        {
                            if (zonePart.Contains("name=\"ZoneName\""))
                            {
                                zone.ZoneName = zonePart.GetInnerContent("value=\"", "\"", 0);
                            }
                            else if (zonePart.Contains("name=\"ID\""))
                            {
                                zone.ID = zonePart.GetInnerContent("value=\"", "\"", 0);
                            }
                            else if (zonePart.Contains("name=\"LayoutId\""))
                            {
                                zone.LayoutId = zonePart.GetInnerContent("value=\"", "\"", 0);
                            }
                        }
                    }
                }
            }
            return(zones);
        }
Exemplo n.º 5
0
        public static ZoneCollection GetZones(string[] html, out LayoutHtmlCollection result)
        {
            ZoneEntity zone = null;
            bool initZoneStart = false;
            result = new LayoutHtmlCollection();
            ZoneCollection zones = new ZoneCollection();
            foreach (string item in html)
            {
                if (item == ZoneEntity.ZoneTag)
                {
                    zone = new ZoneEntity();
                    initZoneStart = true;
                    continue;
                }
                else if (item == ZoneEntity.ZoneEndTag)
                {
                    initZoneStart = false;
                    if (zone.ID.IsNullOrEmpty())
                    {
                        zone.ID = Guid.NewGuid().ToString("N");
                    }
                    zones.Add(zone);
                    result.Add(new LayoutHtml { Html = ZoneEntity.ZoneTag });
                    result.Add(new LayoutHtml { Html = zone.ID });
                    result.Add(new LayoutHtml { Html = ZoneEntity.ZoneEndTag });
                    continue;
                }

                if (!initZoneStart)
                {
                    result.Add(new LayoutHtml { Html = item });
                }
                else
                {
                    if (item.Contains("name=\"ZoneName\"") || item.Contains("name=\"ZoneId\""))
                    {
                        string[] zoneInfo = item.Split(new string[] { "<input" }, StringSplitOptions.RemoveEmptyEntries);
                        foreach (string zonePart in zoneInfo)
                        {
                            if (zonePart.Contains("name=\"ZoneName\""))
                            {
                                zone.ZoneName = zonePart.GetInnerContent("value=\"", "\"", 0);
                            }
                            else if (zonePart.Contains("name=\"ID\""))
                            {
                                zone.ID = zonePart.GetInnerContent("value=\"", "\"", 0);
                            }
                            else if (zonePart.Contains("name=\"LayoutId\""))
                            {
                                zone.LayoutId = zonePart.GetInnerContent("value=\"", "\"", 0);
                            }

                        }

                    }

                }

            }
            return zones;
        }