public async Task <IHttpActionResult> InsertValue(AttrebiuteValue attrebiuteValue)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new { state = false, message = "مقادیر ورودی را بررسی نمائید " }));
            }

            if (db.AttrebiuteValues.Any(e => e.Title == attrebiuteValue.Title && e.AttrebiuteId == attrebiuteValue.AttrebiuteId))
            {
                return(Json(new { state = false, message = "مقدار وارد شده برای این ویژگی تکراری می باشد " }));
            }
            try
            {
                if (!db.Attributes.Any(e => e.AttrebiuteId == attrebiuteValue.AttrebiuteId))
                {
                    return(Json(new { state = false, message = "ویژگی یافت نشد " }));
                }

                attrebiuteValue.Attrebiute = db.Attributes.Find(attrebiuteValue.AttrebiuteId);
                attrebiuteValue.IsActive   = true;
                attrebiuteValue.IsDelete   = false;
                attrebiuteValue.UpdateAt   = DateTime.Now;
                attrebiuteValue.CreateAt   = DateTime.Now;
                db.AttrebiuteValues.Add(attrebiuteValue);
                db.SaveChanges();

                //return CreatedAtRoute("DefaultApi", new { id = attrebiute.AttrebiuteId }, attrebiute);
                return(Json(new { state = true, message = "ثبت ویژگی با موفقیت انجام شد" }));
            }
            catch (Exception ex)
            {
                return(Json(new { state = false, message = "ثبت ویژگی با خطا مواجه شد" + ex.Message }));
            }
        }
Exemplo n.º 2
0
        public async Task <IHttpActionResult> PostProduct(int id, CreateProductViewModel model)
        {
            Product product = new Product();

            if (!ModelState.IsValid)
            {
                StringBuilder sb = new StringBuilder();
                foreach (ModelState modelState in ModelState.Values)
                {
                    foreach (var item in modelState.Errors)
                    {
                        sb.AppendLine(item.ErrorMessage);
                    }
                }

                return(Json(new { status = false, message = sb.ToString() }));
            }

            try
            {
                //محصول
                product.Title         = model.Title;
                product.IsActive      = model.IsActive;
                product.Description   = model.Description;
                product.CreateAt      = DateTime.Now;
                product.UpdateAt      = DateTime.Now;
                product.ProductTypeId = id;
                product.ProductType   = db.ProductTypes.Find(id);
                product.ProductPrices = new List <ProductPrice>();
                product.ProductValues = new List <ProductValue>();


                //مبلغ محصول
                ProductPrice price = new ProductPrice();
                price.CreateAt = DateTime.Now;
                price.IsActive = true;
                price.IsDelete = false;
                price.Price    = model.Price;
                price.Product  = product;
                price.UpdateAt = DateTime.Now;

                //ثبت ویژگی های محصول
                foreach (var item in model.AttrebiuteValues)
                {
                    if (!db.AttrebiuteValues.Any(e => e.AttrebiuteValueId == item))
                    {
                        return(Json(new { status = false, message = "مقدار ویژگی یافت نشد" }));
                    }

                    AttrebiuteValue attrebiuteValue = db.AttrebiuteValues.Find(item);
                    Attrebiute      attrebiute      = db.Attributes.Find(attrebiuteValue.AttrebiuteId);
                    ProductValue    productValue    = new ProductValue
                    {
                        Product           = product,
                        AttrebiuteValue   = attrebiuteValue,
                        Attrebiute        = attrebiute,
                        AttrebiuteValueId = item
                    };
                    product.ProductValues.Add(productValue);
                }

                product.ProductPrices.Add(price);
                db.Products.Add(product);
                db.SaveChanges();
                return(Json(new { status = true, message = " محصول با موفقیت ثبت شد" }));
            }
            catch (Exception ex)
            {
                return(Json(new { status = false, message = "خطا در ثبت محصول" + ex.Message }));
            }
        }