private FloorModel MapFloor(FloorEntity floorEntity) { List <FloorItemBanner> bannerList = FloorHelper.GetFloorItem <FloorItemBanner>(floorEntity).OrderBy(x => x.Priority).ToList(); List <FloorItemProduct> productList = FloorHelper.GetFloorItem <FloorItemProduct>(floorEntity).OrderBy(x => x.Priority).ToList(); FloorModel model = new FloorModel(); //楼层基本信息 model.Name = floorEntity.FloorName; //banner var banner = bannerList.FirstOrDefault(); if (banner != null) { model.Banner.BannerResourceUrl = banner.ImageSrc; model.Banner.BannerTitle = banner.BannerText; model.Banner.BannerLink = banner.LinkUrl; //从BannerLink中提取相关信息(比如ProductSysNo等) BannerHelper.FillPromoInfo(model.Banner); } //推荐商品列表 ImageSize imageSize = ImageUrlHelper.GetImageSize(ImageType.Small); for (int i = 0; i < 3 && i < productList.Count; i++) { var item = productList[i]; var floorItemModel = MapFloorItem(item, imageSize); model.ItemList.Add(floorItemModel); } return(model); }
private List <RecommendBrandItemModel> MapBrandItemList(List <BannerInfo> bannerList) { List <RecommendBrandItemModel> brandList = new List <RecommendBrandItemModel>(); if (bannerList == null) { return(brandList); } RecommendBrandItemModel itemModel = null; foreach (var banner in bannerList) { itemModel = new RecommendBrandItemModel(); itemModel.ImageUrl = (banner.BannerResourceUrl ?? "").Trim(); itemModel.BrandName = (banner.BannerTitle ?? "").Trim(); itemModel.BrandID = BannerHelper.ExtractBrandSysNo(banner.BannerLink); brandList.Add(itemModel); } return(brandList); }
public void MainTest() { Assert.False(BannerHelper.FindBanner("http://mail.ru")); Assert.True(BannerHelper.FindBanner("http://fakesite.zidium.net/")); }
public ModelWrapper WithBanners() { this.Banners = BannerHelper.GetBanners(); return(this); }
protected SendUnitTestResultRequestData CheckForBanner( Guid accountId, AccountDbContext accountDbContext, UnitTest unitTest, ILogger logger) { logger.Debug("Поиск баннера Zidium для проверки " + unitTest.DisplayName); SendUnitTestResultRequestData result = null; // Из всех правил получим главные уникальные страницы сайтов var urls = unitTest.HttpRequestUnitTest.Rules.Select(t => { var uri = new Uri(t.Url); return(uri.Scheme + @"://" + uri.Authority); }).Distinct().ToArray(); // Проверим, что на каждой главной странице есть баннер var hasBanner = true; string noBannerUrl = null; foreach (var url in urls) { logger.Debug("Поиск баннера Zidium на странице " + url); try { var hasPageBanner = BannerHelper.FindBanner(url); logger.Debug("Результат: " + hasPageBanner + ", страница: " + url); // Если баннер не найден и нет интернета, то отложим проверку if (hasPageBanner == false && IsInternetWork() == false) { logger.Debug("Интернет не работает, поиск баннера отложен"); return(null); } if (hasPageBanner == false) { noBannerUrl = url; hasBanner = false; break; } } catch (Exception exception) { logger.Warn("Ошибка проверки баннера " + url + ": " + exception.Message); noBannerUrl = url; hasBanner = false; break; } } // Отправляем результат диспетчеру // Признак баннера будет обновлён, если лимит превышен, вернётся false var dispatcher = GetDispatcherClient(); var response = dispatcher.SendHttpUnitTestBanner(accountId, unitTest.Id, hasBanner); if (!response.Success) { logger.Error("Не удалось проверить лимит http-проверок без баннера: " + response.ErrorMessage); return(null); } // Если лимит превышен, то проверка уже отключена диспетчером, осталось поменять результат if (response.Data.CanProcessUnitTest == false) { result = new SendUnitTestResultRequestData() { Result = UnitTestResult.Alarm, Message = "Проверка отключена, не найден баннер Zidium на странице " + noBannerUrl }; logger.Warn(result.Message); } else { if (!hasBanner) { logger.Debug("Баннер Zidium не найден, но проверка включена, так как не превышен лимит бесплатных проверок"); } else { logger.Info("Баннер Zidium подтверждён для проверки " + unitTest.DisplayName); } } accountDbContext.SaveChanges(); return(result); }
public void cmdBanner(string args) { _IO.WriteLine(""); BannerHelper.GetRandomBanner(_IO); _IO.WriteLine(""); }
public ActionResult GetBannerList(SearchModel searchModel, PageParam pageParam) { BannerHelper helper = new BannerHelper(); return(Success(helper.GetPageList(searchModel, o => o.OrderIndex, pageParam, true))); }