public IResponseBase Execute(IRequestParameter parameters) { var result = new Response <SearchResponse>(); _request = (SearchRequest)parameters; try { if (_request.Href != null) { var cacheKey = string.Format(Config.CacheKeys.Search, _request.Href, _request.Page, _request.PageSize); IsViewAllProductSearch = _request.Href.Contains("view-all"); IsEmailCamPaign = _request.Href.ToLower().Contains("utm_medium=email"); result = CacheMemory.Get <Response <SearchResponse> >(cacheKey); if (result.resultset != null && string.IsNullOrWhiteSpace(result.resultset.Href)) { _hrefLookup = HrefLookup.Load(_core); var config = BuildAPIConfig(parameters); if (config != null) { result = GetResponse(config); } if (result.resultset.Filters != null && result.resultset.Filters.FilterSections != null) { result.resultset.Filters.FilterSections = SelectSpecifiedSize(result.resultset.Filters.FilterSections); } var href = ParsingHelper.GetHrefWithoutQueryString(_request.Href); result.resultset.CategoryID = _hrefLookup.Forward.Get(href); var resultVideos = CacheMemory.Get <Dictionary <string, PaylessMadCms.PromoSlot> >(Config.CacheKeys.CmsVideos); if (resultVideos != null && resultVideos.Keys.Contains(href)) { result.resultset.Promo = resultVideos[href]; } if (!_errors.Any() && result.resultset.Products.Any()) { CacheMemory.SetAndExpiresMinutesAsync(cacheKey, result, 15); } } } } catch (Exception ex) { _errors.Add(ex.Handle(string.Format("Search.Execute({0}):{1}-{2}", ex.LineNumber(), ex.Message, ex.StackTrace), ErrorSeverity.FollowUp, ErrorType.RequestError)); } return(result); }
private void Update_MenuBy_CmsAndFtpFile(Response <MenuResponse> result) { try { var madDash = new PaylessMadCms(_core); var categoryImagesLookup = madDash.CategoryImages(); var hrefLookup = HrefLookup.Load(_core); if (_errors.Any() || !result.resultset.Menu.Any()) { return; } Update_MenuHrefLookup(result.resultset.Menu, categoryImagesLookup, hrefLookup); Add_MenuItem_GiftCard(result); Add_MenuItem_Help(result); } catch (Exception ex) { _errors.Add(ex.Handle("Menu.Update_MenuBy_CmsAndFtpFile", ErrorSeverity.FollowUp, ErrorType.RequestError)); } }
public IResponseBase Execute(IRequestParameter parameters) { var result = new Response <CategoryResponse>(); try { _request = (CategoryRequest)parameters; var hrefLookup = HrefLookup.Load(_core); var catid = hrefLookup.Forward.Get(ParsingHelper.GetHrefWithoutQueryString(_request.Href)); var cacheKey = string.Format(Config.CacheKeys.Category, catid); result = CacheMemory.Get <Response <CategoryResponse> >(cacheKey); if (result == null || string.IsNullOrWhiteSpace(result.resultset.CategoryID)) { var forwardDate = GetDateFromRequest(); var maddash = new PaylessMadCms(_core); result.resultset = maddash.GetCategoryData(catid, forwardDate); var config = BuildAPIConfig(parameters, catid); var apiResponse = DWClient.GetAPIResponse <ProductSearchResult>(config); if (apiResponse.ResponseStatus.Code == HttpStatusCode.OK) { result.resultset.Filters = new ExtendedFilter(apiResponse.Model.Refinements, null, hrefLookup); } result.resultset.CategoryID = catid; if (result.errors.Count == 0) { CacheMemory.SetAndExpiresHoursAsync(cacheKey, result, 1); } } } catch (Exception ex) { _errors.Add(ex.Handle("Category.Execute", ErrorSeverity.FollowUp, ErrorType.RequestError)); } return(result); }