예제 #1
0
        public IBasket CreateBasket(IUser currentUser)
        {
            BasketDto dto = new BasketDto();

            StormBasket stormBasket = new StormBasket();

            stormBasket.Items = new List <StormBasketItem>();

            string url = "ShoppingService.svc/rest/CreateBasket?ipAddress=127.0.0.1&createdBy=1";

            if (!string.IsNullOrEmpty(currentUser.ExternalId))
            {
                stormBasket.CustomerId = Convert.ToInt32(currentUser.ExternalId);
            }
            if (currentUser.Company != null && !string.IsNullOrEmpty(currentUser.Company.ExternalId))
            {
                stormBasket.CompanyId = Convert.ToInt32(currentUser.Company.ExternalId);
            }
            stormBasket.CurrencyId = Convert.ToInt32(currentUser.CurrencyCode);

            stormBasket = _stormConnectionManager.PostResult <StormBasket>(url, stormBasket);

            dto.ExternalId = stormBasket.Id.ToString();
            dto.Items      = new List <IBasketItem>();

            return(dto);
        }
        public BasketDto BuildBasketDto(StormBasket basket)
        {
            BasketDto dto = new BasketDto();

            dto.ExternalId      = basket.Id.ToString();
            dto.Items           = new List <IBasketItem>();
            dto.Shipping        = basket.Summary.Freigt.Amount;
            dto.ShippingInclVat = basket.Summary.Freigt.Amount + basket.Summary.Freigt.Vat;
            dto.Total           = basket.Summary.Total.Amount;
            dto.TotalInclVat    = basket.Summary.Total.Vat + dto.Total;
            dto.TotalVat        = basket.Summary.Total.Vat;
            dto.NumberOfItems   = 0;

            foreach (var stormItem in basket.Items)
            {
                if (stormItem.Type.HasValue && _configuration["Storm:ExcludeTypeFromBasket"].Contains(stormItem.Type.Value.ToString()))
                {
                    continue;
                }

                decimal?priceStandard = null;
                if (stormItem.PriceStandard.HasValue && stormItem.PriceStandard.Value > 0)
                {
                    priceStandard = stormItem.PriceStandard.Value;
                }

                BasketItemDto itemdto = new BasketItemDto();
                itemdto.ExternalId    = stormItem.Id.ToString();
                itemdto.ImageUrl      = _configuration["Storm:ImagePrefix"] + stormItem.ImageKey;
                itemdto.Name          = stormItem.Name;
                itemdto.PartNo        = stormItem.PartNo;
                itemdto.Quantity      = Convert.ToInt32(stormItem.Quantity);
                itemdto.Price         = stormItem.PriceDisplay.Value;
                itemdto.PricePrevious = priceStandard;
                itemdto.VatRate       = stormItem.VatRate.Value;
                itemdto.Url           = stormItem.UniqueName;
                dto.NumberOfItems    += Convert.ToInt32(itemdto.Quantity);

                dto.Items.Add(itemdto);
            }

            return(dto);
        }
예제 #3
0
        private IBasket BasketToDto(StormBasket stormBasket)
        {
            BasketBuilder basketBuilder = new BasketBuilder(_configuration);

            return(basketBuilder.BuildBasketDto(stormBasket));
        }