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; }