Exemplo n.º 1
0
        /// <summary>
        /// Adds the product.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <param name="productImages">The product images.</param>
        /// <param name="addProductColorModel">The product colors.</param>
        /// <param name="productCategoryDetails">The product category details.</param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public long AddProduct(Product model, List <ProductCategoryDetail> productCategoryDetails, string hostPath, string[] ProductSizeValues)
        {
            using (var transaction = context.Database.BeginTransaction())
            {
                try
                {
                    var productModel = context.Product.Where(x => x.Name == model.Name && x.IsDelete == false).FirstOrDefault();
                    if (productModel == null)
                    {
                        context.Product.Add(model);
                        context.SaveChanges();
                        long ProductId = model.ProductId;
                        if (ProductId > 0)
                        {
                            #region ProductSizeValues
                            if (ProductSizeValues != null && ProductSizeValues.Length > 0)
                            {
                                foreach (var item in ProductSizeValues)
                                {
                                    if (!string.IsNullOrWhiteSpace(item))
                                    {
                                        ProductSizeDetail productSizeDetail = new ProductSizeDetail();
                                        productSizeDetail.ProductFK = ProductId;
                                        productSizeDetail.Name      = item;
                                        context.ProductSizeDetail.Add(productSizeDetail);
                                        context.SaveChanges();
                                        if (productSizeDetail.ProductSizeDetailId <= 0)
                                        {
                                            transaction.Rollback();
                                            return(0);
                                        }
                                    }
                                }
                            }
                            #endregion

                            #region Product Category
                            if (productCategoryDetails != null && productCategoryDetails.Count > 0)
                            {
                                foreach (var item in productCategoryDetails)
                                {
                                    if (item.ProductCategoryTypeFK > 0)
                                    {
                                        item.ProductFK = ProductId;
                                        context.ProductCategoryDetail.Add(item);
                                        context.SaveChanges();
                                        if (item.ProductCategoryDetailId <= 0)
                                        {
                                            transaction.Rollback();
                                            return(0);
                                        }
                                    }
                                }
                            }
                            #endregion

                            transaction.Commit();
                            return(ProductId);
                        }
                        else
                        {
                            transaction.Rollback();
                            return(0);
                        }
                    }
                    else
                    {
                        transaction.Rollback();
                        return(ReturnCode.AlreadyExist.GetHashCode());
                    }
                }
                catch (Exception ex)
                {
                    transaction.Rollback();
                    LogHelper.ExceptionLog(ex.Message + "  :::::  " + ex.StackTrace);
                    throw ex;
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Updates the product.
        /// </summary>
        /// <param name="model">The model.</param>
        /// <param name="productColors">The product colors.</param>
        /// <param name="productCategoryDetails">The product category details.</param>
        /// <returns></returns>
        public long UpdateProduct(Product model, List <ProductCategoryDetail> productCategoryDetails, string hostPath, string[] ProductSizeValues)
        {
            using (var transaction = context.Database.BeginTransaction())
            {
                try
                {
                    var productModelCheck = context.Product.Where(x => x.Name == model.Name && x.IsDelete == false && x.ProductId != model.ProductId).FirstOrDefault();
                    if (productModelCheck == null)
                    {
                        var productModel = context.Product.Where(x => x.ProductId == model.ProductId).FirstOrDefault();
                        if (productModel != null)
                        {
                            productModel.ModifiedOn         = model.ModifiedOn;
                            productModel.UpdatedBy          = model.UpdatedBy;
                            productModel.Name               = model.Name;
                            productModel.ProductDescription = model.ProductDescription;
                            productModel.Price              = model.Price;
                            productModel.SizeFK             = model.SizeFK;
                            context.SaveChanges();
                            long ProductId = model.ProductId;
                            if (ProductId > 0)
                            {
                                #region ProductSizeValues
                                var sizeCount = context.ProductSizeDetail.Where(x => x.ProductFK == ProductId).ToList();
                                if (sizeCount != null)
                                {
                                    foreach (var item in sizeCount)
                                    {
                                        context.ProductSizeDetail.Remove(item);
                                        context.SaveChanges();
                                    }
                                }

                                if (ProductSizeValues != null && ProductSizeValues.Length > 0)
                                {
                                    foreach (var item in ProductSizeValues)
                                    {
                                        if (!string.IsNullOrWhiteSpace(item))
                                        {
                                            ProductSizeDetail productSizeDetail = new ProductSizeDetail();
                                            productSizeDetail.Name      = item;
                                            productSizeDetail.ProductFK = ProductId;
                                            context.ProductSizeDetail.Add(productSizeDetail);
                                            context.SaveChanges();
                                            if (productSizeDetail.ProductSizeDetailId <= 0)
                                            {
                                                transaction.Rollback();
                                                return(0);
                                            }
                                        }
                                    }
                                }
                                #endregion

                                #region Product Category
                                var categoryCount = context.ProductCategoryDetail.Where(x => x.ProductFK == ProductId).ToList();
                                if (categoryCount != null)
                                {
                                    foreach (var item in categoryCount)
                                    {
                                        context.ProductCategoryDetail.Remove(item);
                                        context.SaveChanges();
                                    }
                                }

                                if (productCategoryDetails != null && productCategoryDetails.Count > 0)
                                {
                                    foreach (var item in productCategoryDetails)
                                    {
                                        if (item.ProductCategoryTypeFK > 0)
                                        {
                                            item.ProductFK = ProductId;
                                            context.ProductCategoryDetail.Add(item);
                                            context.SaveChanges();
                                            if (item.ProductCategoryDetailId <= 0)
                                            {
                                                transaction.Rollback();
                                                return(0);
                                            }
                                        }
                                    }
                                }
                                #endregion

                                transaction.Commit();
                                return(ProductId);
                            }
                            else
                            {
                                transaction.Rollback();
                                return(0);
                            }
                        }
                        else
                        {
                            transaction.Rollback();
                            return(0);
                        }
                    }
                    else
                    {
                        transaction.Rollback();
                        return(ReturnCode.AlreadyExist.GetHashCode());
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.ExceptionLog(ex.Message + "  :::::  " + ex.StackTrace);
                    transaction.Rollback();
                    throw ex;
                }
            }
        }