public StoreItem() { Photos = new List<PhotoItem>(); Store = new Store(); Category = new StoreCategory(); Colors = new List<ColorDisplay>(); Reviews = new List<ItemReview>(); }
public Classes.Store GetStore(Guid? merchantId, bool isRdn = false) { var store = new Classes.Store(); try { if (!merchantId.HasValue && !isRdn) throw new Exception("Invalid merchant id. (CreateNewShoppingCart in StoreGateway"); var mc = new ManagementContext(); Merchant merchant = null; if (merchantId.HasValue) // ToDo: When Store is updated, updated the references here to include more tables merchant = mc.Merchants.Include("Items").FirstOrDefault(x => x.MerchantId.Equals(merchantId.Value)); else merchant = mc.Merchants.Include("Items").FirstOrDefault(x => x.IsRDNation.Equals(true)); if (merchant == null) return null; store.Name = merchant.ShopName; store.MerchantId = merchant.MerchantId; store.InternalId = merchant.InternalReference; foreach (var storeItem in merchant.Items) { var item = new Classes.StoreItemDisplay(); item.ArticleNumber = storeItem.ArticleNumber; item.CanRunOutOfStock = storeItem.CanRunOutOfStock; if (storeItem.Merchant.CurrencyRate == null) { item.Currency = "USD"; item.CurrencyCost = 1; } else { item.Currency = storeItem.Merchant.CurrencyRate.CurrencyAbbrName; item.CurrencyCost = storeItem.Merchant.CurrencyRate.CurrencyExchangePerUSD; } item.Description = storeItem.Description; item.Name = storeItem.Name; item.Price = storeItem.Price; item.QuantityInStock = storeItem.QuantityInStock; item.StoreItemId = storeItem.StoreItemId; item.Weight = storeItem.Weight; item.Note = storeItem.Note; item.IsPublished = storeItem.IsPublished; item.ItemType = (StoreItemTypeEnum)Enum.Parse(typeof(StoreItemTypeEnum), storeItem.ItemTypeEnum.ToString()); if (item.ItemType == StoreItemTypeEnum.Shirt) { item.ItemSize = (StoreItemShirtSizesEnum)Enum.Parse(typeof(StoreItemShirtSizesEnum), storeItem.SizesEnum.ToString()); item.ItemSizeEnum = storeItem.SizesEnum; } store.StoreItems.Add(item); } } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return store; }
public StoreShoppingCart GetShoppingCart(Guid cartId) { var output = new StoreShoppingCart(); try { var mc = new ManagementContext(); DateTime now = DateTime.Now; var cart = mc.ShoppingCarts.Include("Items").Include("Items.StoreItem").Include("Items.StoreItem.Colors").Include("Items.StoreItem.Colors.Color").Include("Items.StoreItem.Merchant").FirstOrDefault(x => x.ShoppingCartId.Equals(cartId)); if (cart == null) return output; output.ShoppingCartId = cart.ShoppingCartId; output.Ip = cart.Ip; foreach (var shoppingCartItem in cart.Items) { output.ItemsCount += 1; var item = new StoreItemDisplay(); item.Merchant.MerchantId = shoppingCartItem.StoreItem.Merchant.MerchantId; item.Merchant.Name = shoppingCartItem.StoreItem.Merchant.ShopName; item.Merchant.TaxRate = shoppingCartItem.StoreItem.Merchant.TaxRate; if (shoppingCartItem.StoreItem.Merchant.CurrencyRate == null) { item.Merchant.Currency = "USD"; item.Merchant.CurrencyCost = 1; } else { item.Merchant.Currency = shoppingCartItem.StoreItem.Merchant.CurrencyRate.CurrencyAbbrName; item.Merchant.CurrencyCost = shoppingCartItem.StoreItem.Merchant.CurrencyRate.CurrencyExchangePerUSD; } item.Name = shoppingCartItem.StoreItem.Name; item.BasePrice = shoppingCartItem.StoreItem.Price; item.Price = (shoppingCartItem.StoreItem.Price * shoppingCartItem.Quantity); var color = DisplayStoreItemColor(shoppingCartItem.StoreItem.Colors.Where(x => x.Color.ColorIdCSharp == shoppingCartItem.Color).FirstOrDefault()); if (color != null) { item.Colors.Add(color); item.ColorAGB = color.CSharpColor; item.ColorHex = color.HexColor; } item.QuantityOrdered = shoppingCartItem.Quantity; item.Weight = (shoppingCartItem.StoreItem.Weight * shoppingCartItem.Quantity); item.ShoppingCartItemId = shoppingCartItem.ShoppingCartItemId; item.ArticleNumber = shoppingCartItem.StoreItem.ArticleNumber; if (shoppingCartItem.StoreItem.Merchant.CurrencyRate == null) { item.Currency = "USD"; item.CurrencyCost = 1; } else { item.Currency = shoppingCartItem.StoreItem.Merchant.CurrencyRate.CurrencyAbbrName; item.CurrencyCost = shoppingCartItem.StoreItem.Merchant.CurrencyRate.CurrencyExchangePerUSD; } item.Description = shoppingCartItem.StoreItem.Description; item.WillPickUpLocally = shoppingCartItem.WillPickUpLocally; if (!shoppingCartItem.WillPickUpLocally) { item.Shipping = shoppingCartItem.StoreItem.ShippingCosts; //if there are more than one of the same items being shipped, then we add on the additional fees. if (shoppingCartItem.Quantity > 1) item.Shipping += shoppingCartItem.StoreItem.ShippingCostsAdditional * (shoppingCartItem.Quantity - 1); } else item.Shipping = 0; item.CanRunOutOfStock = shoppingCartItem.StoreItem.CanRunOutOfStock; item.StoreItemId = shoppingCartItem.StoreItem.StoreItemId; item.Note = shoppingCartItem.StoreItem.Note; item.BaseTaxOnItem = Math.Round((item.BasePrice * Convert.ToDecimal(shoppingCartItem.StoreItem.Merchant.TaxRate)), 2); item.TotalTaxOnItem = (item.BaseTaxOnItem * shoppingCartItem.Quantity); item.PriceInclTax = Math.Round((item.Price + item.TotalTaxOnItem), 2); item.ItemType = (StoreItemTypeEnum)Enum.Parse(typeof(StoreItemTypeEnum), shoppingCartItem.StoreItem.ItemTypeEnum.ToString()); if (item.ItemType == StoreItemTypeEnum.Shirt) { item.ItemSize = (StoreItemShirtSizesEnum)Enum.Parse(typeof(StoreItemShirtSizesEnum), shoppingCartItem.Size.ToString()); item.ItemSizeEnum = shoppingCartItem.Size; } foreach (var photo in shoppingCartItem.StoreItem.Photos) { PhotoItem p = new PhotoItem(photo.ItemPhotoId, photo.ImageUrl, photo.ImageUrlThumb, photo.IsPrimaryPhoto, photo.AlternativeText); item.Photos.Add(p); } var store = output.Stores.Where(x => x.MerchantId == item.Merchant.MerchantId).FirstOrDefault(); if (store != null) { store.TotalPrice += item.Price; store.TotalShipping += item.Shipping; store.TotalAfterShipping += item.Price + item.Shipping; store.StoreItems.Add(item); } else { Store.Classes.Store s = new Classes.Store(); s.MerchantId = item.Merchant.MerchantId; s.Currency = item.Merchant.Currency; s.StripePublishableKey = item.Merchant.StripePublishableKey; s.Name = item.Merchant.Name; s.TotalPrice = item.Price; s.TotalShipping = item.Shipping; s.TotalAfterShipping = item.Price + item.Shipping; s.StoreItems.Add(item); output.Stores.Add(s); } } cart.Expires = DateTime.Now.AddDays(1); mc.SaveChanges(); } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return output; }
public static Classes.Store GetStoreIdsFromInternalId(Guid ownerId) { var store = new Classes.Store(); try { var mc = new ManagementContext(); var merchant = mc.Merchants.FirstOrDefault(x => x.InternalReference == ownerId); if (merchant != null) { store.MerchantId = merchant.MerchantId; store.PrivateManagerId = merchant.PrivateManagerId; store.InternalId = merchant.InternalReference; } } catch (Exception exception) { ErrorDatabaseManager.AddException(exception, exception.GetType()); } return store; }
public StoreItemDisplay() { Merchant = new Store(); Colors = new List<ColorDisplay>(); }