Ejemplo n.º 1
0
        public StoreItemDisplay CreateNewStoreItem(StoreItemDisplay storeItem)
        {
            try
            {
                var dc = new ManagementContext();

                var merchant = dc.Merchants.Where(x => x.InternalReference == storeItem.InternalId && x.MerchantId == storeItem.MerchantId && x.PrivateManagerId == storeItem.PrivateManagerId).FirstOrDefault();
                if (merchant != null)
                {
                    DataModels.Store.StoreItem si = new DataModels.Store.StoreItem();
                    si.ArticleNumber = storeItem.ArticleNumber;
                    si.CanRunOutOfStock = storeItem.CanRunOutOfStock;
                    si.CanPickUpLocally = storeItem.CanPickUpLocally;
                    si.Description = storeItem.Description;
                    si.ExemptFromShipping = false;
                    si.Merchant = merchant;
                    si.Name = storeItem.Name;
                    si.Note = storeItem.Note;
                    si.Price = storeItem.Price;
                    si.QuantityInStock = storeItem.QuantityInStock;
                    si.VisibleOnRdn = false;
                    si.Weight = storeItem.Weight;
                    si.ShippingCosts = storeItem.Shipping;
                    si.IsPublished = false;
                    //si.ItemTypeEnum = storeItem.ItemTypeEnum;
                    si.ItemTypeEnum = (int)storeItem.ItemType;
                    si.Category = dc.StoreItemCategories.Where(x => x.StoreItemCategoryId == si.ItemTypeEnum).FirstOrDefault();
                    if (storeItem.HasExtraLarge)
                        si.SizesEnum += Convert.ToInt32(StoreItemShirtSizesEnum.X_Large);
                    if (storeItem.HasExtraSmall)
                        si.SizesEnum += Convert.ToInt32(StoreItemShirtSizesEnum.X_Small);
                    if (storeItem.HasLarge)
                        si.SizesEnum += Convert.ToInt32(StoreItemShirtSizesEnum.Large);
                    if (storeItem.HasMedium)
                        si.SizesEnum += Convert.ToInt32(StoreItemShirtSizesEnum.Medium);
                    if (storeItem.HasSmall)
                        si.SizesEnum += Convert.ToInt32(StoreItemShirtSizesEnum.Small);
                    if (storeItem.HasXXLarge)
                        si.SizesEnum += Convert.ToInt32(StoreItemShirtSizesEnum.XX_Large);

                    if (!String.IsNullOrEmpty(storeItem.ColorTempSelected))
                    {
                        foreach (string color in storeItem.ColorTempSelected.Split(';'))
                        {
                            if (color.Length > 3)
                            {
                                Color c = ColorTranslator.FromHtml(color);
                                int arb = c.ToArgb();
                                var colorDb = dc.Colors.Where(x => x.ColorIdCSharp == arb).FirstOrDefault();
                                if (colorDb != null)
                                {
                                    DataModels.Store.StoreItemColor cItem = new DataModels.Store.StoreItemColor();
                                    cItem.Color = colorDb;
                                    cItem.StoreItem = si;
                                    si.Colors.Add(cItem);
                                }
                            }
                        }
                    }

                    dc.StoreItems.Add(si);
                    dc.SaveChanges();

                    storeItem.StoreItemId = si.StoreItemId;
                }
            }
            catch (Exception exception)
            {
                ErrorDatabaseManager.AddException(exception, exception.GetType());
            }
            return storeItem;
        }
Ejemplo n.º 2
0
        public StoreItemDisplay UpdateStoreItem(StoreItemDisplay storeItem)
        {
            try
            {
                var dc = new ManagementContext();
                var si = dc.StoreItems.Include("Colors").Include("Colors.Color").Where(x => x.StoreItemId == storeItem.StoreItemId && x.Merchant.InternalReference == storeItem.InternalId && x.Merchant.MerchantId == storeItem.MerchantId && x.Merchant.PrivateManagerId == storeItem.PrivateManagerId).FirstOrDefault();

                if (si != null)
                {
                    si.CanPickUpLocally = storeItem.CanPickUpLocally;
                    si.Merchant = si.Merchant;
                    si.ArticleNumber = storeItem.ArticleNumber;
                    si.CanRunOutOfStock = storeItem.CanRunOutOfStock;
                    si.Description = storeItem.Description;
                    si.ExemptFromShipping = false;
                    si.Name = storeItem.Name;
                    si.Note = storeItem.Note;
                    si.Price = storeItem.Price;
                    si.QuantityInStock = storeItem.QuantityInStock;
                    si.VisibleOnRdn = false;
                    si.Weight = storeItem.Weight;
                    si.ShippingCosts = storeItem.Shipping;
                    si.ShippingCostsAdditional = storeItem.ShippingAdditional;
                    si.Category = dc.StoreItemCategories.Where(x => x.StoreItemCategoryId == storeItem.ItemTypeEnum).FirstOrDefault();
                    //they are just now publishing the item.
                    if (!si.IsPublished && storeItem.IsPublished)
                    {
                        AddRDNationFeeToMerchant(si);
                        si.LastPublished = DateTime.UtcNow;
                    }
                    si.IsPublished = storeItem.IsPublished;
                    si.ItemTypeEnum = storeItem.ItemTypeEnum;
                    si.SizesEnum = 0;
                    if (storeItem.HasExtraLarge)
                        si.SizesEnum += Convert.ToInt32(StoreItemShirtSizesEnum.X_Large);
                    if (storeItem.HasExtraSmall)
                        si.SizesEnum += Convert.ToInt32(StoreItemShirtSizesEnum.X_Small);
                    if (storeItem.HasLarge)
                        si.SizesEnum += Convert.ToInt32(StoreItemShirtSizesEnum.Large);
                    if (storeItem.HasMedium)
                        si.SizesEnum += Convert.ToInt32(StoreItemShirtSizesEnum.Medium);
                    if (storeItem.HasSmall)
                        si.SizesEnum += Convert.ToInt32(StoreItemShirtSizesEnum.Small);
                    if (storeItem.HasXXLarge)
                        si.SizesEnum += Convert.ToInt32(StoreItemShirtSizesEnum.XX_Large);

                    //removes any colors not being used anymore.
                    List<int> colors = new List<int>();
                    if (!String.IsNullOrEmpty(storeItem.ColorTempSelected))
                    {
                        foreach (string color in storeItem.ColorTempSelected.Split(';'))
                        {
                            if (color.Length > 3)
                            {
                                Color c = ColorTranslator.FromHtml(color);
                                int arb = c.ToArgb();
                                colors.Add(arb);
                            }
                        }
                    }
                    var colorsNoLongerIn = si.Colors.Where(x => !colors.Contains(x.Color.ColorIdCSharp)).ToList();
                    foreach (var removeColor in colorsNoLongerIn)
                    {
                        si.Colors.Remove(removeColor);
                    }
                    //adds colors that are not currently added to the storeitem.
                    if (!String.IsNullOrEmpty(storeItem.ColorTempSelected))
                    {
                        foreach (string color in storeItem.ColorTempSelected.Split(';'))
                        {
                            if (color.Length > 3)
                            {
                                Color c = ColorTranslator.FromHtml(color);
                                int arb = c.ToArgb();
                                if (si.Colors.Where(x => x.Color.ColorIdCSharp == arb).FirstOrDefault() == null)
                                {
                                    var colorDb = dc.Colors.Where(x => x.ColorIdCSharp == arb).FirstOrDefault();
                                    if (colorDb != null)
                                    {
                                        DataModels.Store.StoreItemColor cItem = new DataModels.Store.StoreItemColor();
                                        cItem.Color = colorDb;
                                        cItem.StoreItem = si;
                                        si.Colors.Add(cItem);
                                    }
                                }
                            }
                        }
                    }



                    int ch = dc.SaveChanges();

                    storeItem.StoreItemId = si.StoreItemId;
                }
            }
            catch (System.Exception e)
            {
                var ex = e;
                ErrorDatabaseManager.AddException(ex, ex.GetType());
            }
            return storeItem;
        }