示例#1
0
        public static List <object> GetBanners(IEnumerable <IPublishedContent> mediaList)
        {
            List <object> resultList = new List <object>();
            int           i          = 0;

            for (; i < mediaList.Count(); i++)
            {
                string            fileName = mediaList.ElementAt(i).Name;
                HomeTopBannerSize size     = GetSizeByFileName(fileName);
                if (size != HomeTopBannerSize.Small)
                {
                    resultList.Add(new HomeTopBanner(mediaList.ElementAt(i).Url, size));
                }
                else
                {
                    if (i == mediaList.Count() - 1)
                    {
                        throw new Exception("Small banner must be paired with another small banner element");
                    }
                    IPublishedContent nextElement     = mediaList.ElementAt(i + 1);
                    HomeTopBannerSize nextElementSize = GetSizeByFileName(nextElement.Name);
                    if (nextElementSize != HomeTopBannerSize.Small)
                    {
                        throw new Exception("Cannot group top banner element with different sizes");
                    }
                    HomeTopBannerGroup group = new HomeTopBannerGroup();
                    group.List.Add(new HomeTopBanner(mediaList.ElementAt(i).Url, size));
                    group.List.Add(new HomeTopBanner(nextElement.Url, nextElementSize));
                    resultList.Add(group);
                    i++;
                }
            }

            return(resultList);
        }
 public HomeTopBanner(string image, HomeTopBannerSize size)
 {
     Image = image;
     Size  = size;
 }