Ejemplo n.º 1
0
        public async Task <HSMeKitProduct> ApplyBuyerPricing(HSMeKitProduct kitProduct, VerifiedUserContext user)
        {
            var defaultMarkupMultiplierRequest = GetDefaultMarkupMultiplier(user);

            var defaultMarkupMultiplier = await defaultMarkupMultiplierRequest;

            foreach (var kit in kitProduct.ProductAssignments.ProductsInKit)
            {
                var markedupProduct = ApplyBuyerProductPricing(kit.Product, defaultMarkupMultiplier);
                var productCurrency = kit.Product.xp.Currency;
                var markedupSpecs   = ApplySpecMarkups(kit.Specs.ToList(), defaultMarkupMultiplier, productCurrency);
                kit.Product = markedupProduct;
                kit.Specs   = markedupSpecs;
            }

            return(kitProduct);
        }
Ejemplo n.º 2
0
        public async Task <HSMeKitProduct> ApplyBuyerPricing(HSMeKitProduct kitProduct, VerifiedUserContext user)
        {
            var defaultMarkupMultiplierRequest = GetDefaultMarkupMultiplier(user);
            var exchangeRatesRequest           = GetExchangeRatesForUser(user.AccessToken);
            await Task.WhenAll(defaultMarkupMultiplierRequest, exchangeRatesRequest);

            var defaultMarkupMultiplier = await defaultMarkupMultiplierRequest;
            var exchangeRates           = await exchangeRatesRequest;

            foreach (var kit in kitProduct.ProductAssignments.ProductsInKit)
            {
                var markedupProduct = ApplyBuyerProductPricing(kit.Product, defaultMarkupMultiplier, exchangeRates);
                var productCurrency = kit.Product.xp.Currency;
                var markedupSpecs   = ApplySpecMarkups(kit.Specs.ToList(), productCurrency, exchangeRates);
                kit.Product = markedupProduct;
                kit.Specs   = markedupSpecs;
            }

            return(kitProduct);
        }
Ejemplo n.º 3
0
        public async Task <HSMeKitProduct> GetMeKit(string id, VerifiedUserContext user)
        {
            var _product = await _oc.Me.GetProductAsync <HSMeProduct>(id, user.AccessToken);

            var _images             = GetProductImages(id, user.AccessToken);
            var _attachments        = GetProductAttachments(id, user.AccessToken);
            var _productAssignments = await _cms.Documents.Get <HSMeKitProductAssignment>("HSKitProductAssignment", _product.ID, user.AccessToken);

            var meKitProduct = new HSMeKitProduct
            {
                ID                 = _product.ID,
                Name               = _product.Name,
                Product            = _product,
                Images             = await _images,
                Attachments        = await _attachments,
                ProductAssignments = await _getMeKitDetails(_productAssignments.Doc, user.AccessToken)
            };

            return(await _meProductCommand.ApplyBuyerPricing(meKitProduct, user));
        }