示例#1
0
        public CatalogResult GetCatalog(int pageSize, string search = null, int page = 0, int?category = null)
        {
            CatalogResult catalogPager = new CatalogResult();

            using (var onlineShopContext = new OnlineShopWebEntities())
            {
                var products = onlineShopContext.Product.Where(x => (category == null || x.CategoryId == category) && (search == null || x.Name.Contains(search))).OrderBy(x => x.Id);
                catalogPager.MoreResults = products.Count() - (pageSize * (page + 1));
                var pageProducts = products.Skip(pageSize * page).Take(pageSize);
                catalogPager.Products = AutoMapper.Mapper.Map <IEnumerable <Product>, IEnumerable <ProductView> >(pageProducts);
            }
            return(catalogPager);
        }
        public CatalogResult Catalog([FromUri] CatalogParam param)
        {
            if (param == null)
            {
                throw new System.ArgumentNullException("param");
            }

            if (param.dp != null)
            {
                param.d = null;
            }

            WebPartner partner = UserToolsProvider.GetPartner(param);

            if (!param.StartPoint.HasValue && param.StartPointAlias != null)
            {
                param.sp = new int?(CatalogProvider.GetGeoPointIdByAlias(param.StartPointAlias));
            }
            ExcursionProvider.ExcursionSorting sorting = (!string.IsNullOrEmpty(param.SortOrder)) ? ((ExcursionProvider.ExcursionSorting)System.Enum.Parse(typeof(ExcursionProvider.ExcursionSorting), param.SortOrder)) : ExcursionProvider.ExcursionSorting.name;

            //получить id экскурсий в регионе

            //фильтровать по id

            CatalogResult result = new CatalogResult();

            result.excursions = ExcursionProvider.FindExcursions(param.Language, partner.id, param.FirstDate, param.LastDate, param.SearchLimit, param.StartPoint, param.SearchText, param.Categories, param.Departures, (param.Destinations != null && param.Destinations.Length > 0) ? param.Destinations : (param.DestinationState.HasValue ? new int[]
            {
                param.DestinationState.Value
            } : null), param.ExcursionLanguages, param.MinDuration, param.MaxDuration, new ExcursionProvider.ExcursionSorting?(sorting), param.WithoutPrice);
            System.Collections.Generic.Dictionary <int, ExcursionRank> rankings = SurveyProvider.GetExcursionsRanking((
                                                                                                                          from m in result.excursions
                                                                                                                          select m.excursion.id).ToList <int>(), param.Language);

            foreach (CatalogExcursionMinPrice excursion in result.excursions)
            {
                ExcursionRank rank = null;
                if (rankings.TryGetValue(excursion.excursion.id, out rank))
                {
                    excursion.ranking = CatalogExcursionRanking.Create(rank, param.Language);
                }
            }
            return(result);
        }
        public CommerceAnalyticsServiceTests()
        {
            this.fixture = new Fixture().Customize(new AutoDbCustomization());

            this.storefrontContext = Substitute.For <IStorefrontContext>();
            this.storefrontContext.ShopName.Returns(this.fixture.Create <string>());

            var successfulResult = new CatalogResult
            {
                Success = true
            };

            this.analyticsManager = Substitute.For <IAnalyticsManager>();
            this.analyticsManager.VisitedCategoryPage(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>())
            .Returns(successfulResult);
            this.analyticsManager.VisitedProductDetailsPage(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <string>())
            .Returns(successfulResult);
            this.analyticsManager.SearchInitiated(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <int>())
            .Returns(successfulResult);
        }
示例#4
0
 public string GetCatalog(string name, out long cacheTimeStamp, out long clientCacheTimeStamp, out bool cacheChanged)
 {
     try
     {
         var          channel = GetServiceInterface();
         IAsyncResult result  = channel.BeginGetCatalog(ProcessHandle, name, null, null);
         result.AsyncWaitHandle.WaitOne();
         CatalogResult catalogResult = channel.EndGetCatalog(result);
         cacheTimeStamp       = catalogResult.CacheTimeStamp;
         clientCacheTimeStamp = catalogResult.ClientCacheTimeStamp;
         cacheChanged         = catalogResult.CacheChanged;
         return(catalogResult.Catalog);
     }
     catch (FaultException <DataphorFault> fault)
     {
         throw DataphorFaultUtility.FaultToException(fault.Detail);
     }
     catch (CommunicationException ce)
     {
         ReportCommunicationError();
         throw new ServerException(ServerException.Codes.CommunicationFailure, ErrorSeverity.Environment, ce);
     }
 }
示例#5
0
        public void OnGetCatalogComplete(ResultContainer resultContainer)
        {
            var result = new CatalogResult(resultContainer);

            CallbackManager.OnFacebookResponse(result);
        }