コード例 #1
0
        public async Task <IActionResult> PostOption([FromBody] OptionsCreateModel model)
        {
            if (ModelState.IsValid)
            {
                var item = await _service.Insert(model);

                if (item != null)
                {
                    return(CreatedAtRoute(nameof(GetOption), item, item.Id));
                }
                return(Conflict());
            }
            return(BadRequest());
        }
        public async Task InsertNewOption()
        {
            // Arrange
            var option = new OptionCreateModel
            {
                Text = "VisualStudio 2019"
            };

            // Act
            var result = await _service.Insert(option);

            // Assert
            result.Should().NotBeNull();
            result.Should().BeAssignableTo <OptionBaseModel>();
            result.Id.Should().NotBe(0);
        }
コード例 #3
0
        public async Task Insert()
        {
            //Arrange
            var option = new OptionCreateModel
            {
                Text       = "Some Order",
                Order      = 1,
                QuestionId = 1
            };
            //Act
            var result = await _service.Insert(option);

            //Assert
            result.Should().NotBeNull();
            result.Should().BeAssignableTo <OptionBaseModel>();
            result.Should().NotBe(0);
        }
コード例 #4
0
        public ActionResult detail(Product product)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    if (CheckInput(product))
                    {
                        if (product.SupplierID == 0)
                        {
                            product.SupplierID = null;
                        }
                        if (product.ProductStyleID == 0)
                        {
                            product.ProductStyleID = null;
                        }
                        product.ModifiedDateTime = SDateTime.GetYYYYMMddHmmSSNow();
                        if (!string.IsNullOrEmpty(product.Tags))
                        {
                            string[] tags = product.Tags.Split(',');
                            foreach (var item in tags)
                            {
                                if (!tagService.CheckExistTag(item, (int)Common.TableName.Product))
                                {
                                    Tag tag = new Tag();
                                    tag.TagName     = item;
                                    tag.TableNameID = (int)Common.TableName.Product;

                                    int tagID = tagService.Insert(tag);
                                }
                            }
                        }
                        bool flg = productService.Update(product);
                        if (flg)
                        {
                            LogService.WriteLog2DB(accountService.GetUserId(User.Identity.GetUserName()), (int)Common.ActionID.Update, product.ProductID, SDateTime.GetYYYYMMddHmmSSNow(), General.GetIPAddress(), TableNameID, product.ProductName);
                        }

                        // update variant defaul || update list variant
                        if (!product.AutoGenerate)
                        {
                            // variant default
                            if (product.Variant.VariantID > 0)
                            {
                                Variant variant = variantService.GetByPrimaryKey(product.Variant.VariantID);
                                variant.VariantPrice     = product.Variant.VariantPrice;
                                variant.CompareWithPrice = product.Variant.CompareWithPrice;
                                variant.Textable         = product.Variant.Textable;
                                variant.VariantSKU       = product.Variant.VariantSKU;
                                variant.VariantBarcode   = product.Variant.VariantBarcode;
                                variant.VariantWeight    = product.Variant.VariantWeight;
                                variant.WeightUnit       = product.Variant.WeightUnit;
                                variant.RequireShipping  = product.Variant.RequireShipping;
                                variant.ModifiedDateTime = SDateTime.GetYYYYMMddHmmSSNow();
                                bool updateVariant = variantService.Update(variant);
                            }
                            // has list variant
                            else
                            {
                                if (product.Variants != null && product.Variants.Count > 0)
                                {
                                    for (int i = 0; i < product.Variants.Count; i++)
                                    {
                                        product.Variants[i].VariantTittle    = variantService.GetVariantTittle(product.Variants[i]);
                                        product.Variants[i].ProductID        = product.ProductID;
                                        product.Variants[i].ModifiedDateTime = SDateTime.GetYYYYMMddHmmSSNow();
                                        bool updateVariantFlg = variantService.Update(product.Variants[i]);
                                    }
                                }
                            }
                        }
                        // add variant, add option
                        else
                        {
                            if (product.Variants != null && product.Variants.Count > 0)
                            {
                                variantService.DeleteByProductID(product.ProductID);
                                for (int i = 0; i < product.Variants.Count; i++)
                                {
                                    Variant variant = product.Variants[i];
                                    if (variant.IsCreate)
                                    {
                                        if (SNumber.ToNumber(variant.VariantPrice) <= 0)
                                        {
                                            variant.VariantPrice = SNumber.ToNumber(product.Variant.VariantPrice) >= 0 ? product.Variant.VariantPrice : 0;
                                        }
                                        if (string.IsNullOrEmpty(variant.VariantSKU))
                                        {
                                            variant.VariantSKU = product.Variant.VariantSKU + "_" + (i + 1);
                                        }
                                        if (string.IsNullOrEmpty(variant.VariantBarcode))
                                        {
                                            variant.VariantSKU = product.Variant.VariantBarcode;
                                        }
                                        variant.CompareWithPrice = product.Variant.CompareWithPrice;
                                        variant.Textable         = product.Variant.Textable;
                                        variant.VariantWeight    = product.Variant.VariantWeight;
                                        variant.WeightUnit       = product.Variant.WeightUnit;
                                        variant.RequireShipping  = product.Variant.RequireShipping;
                                        variant.VariantBarcode   = product.Variant.VariantBarcode;
                                        variant.ProductID        = product.ProductID;
                                        variant.VariantTittle    = variantService.GetVariantTittle(variant);
                                        variant.CreatedDateTime  = variant.ModifiedDateTime = SDateTime.GetYYYYMMddHmmSSNow();
                                        int variantID = variantService.Insert(variant);
                                    }
                                }
                            }

                            //option
                            if (product.Options != null && product.Options.Count > 0)
                            {
                                for (int i = 0; i < product.Options.Count; i++)
                                {
                                    if (i == 0)
                                    {
                                        TblOption optionDefault = optionService.GetOptionDefaultOfProduct(product.ProductID);

                                        if (optionDefault != null)
                                        {
                                            optionDefault.OptionName       = product.Options[i].OptionName;
                                            optionDefault.OptionValue      = product.Options[i].OptionValue;
                                            optionDefault.ProductID        = product.ProductID;
                                            optionDefault.Position         = 1;
                                            optionDefault.ModifiedDateTime = SDateTime.GetYYYYMMddHmmSSNow();
                                            bool updateOptionDefault = optionService.Update(optionDefault);
                                        }
                                    }
                                    else
                                    {
                                        TblOption option = product.Options[i];
                                        option.ProductID        = product.ProductID;
                                        option.Position         = i + 1;
                                        option.CreatedDateTime  = SDateTime.GetYYYYMMddHmmSSNow();
                                        option.ModifiedDateTime = SDateTime.GetYYYYMMddHmmSSNow();
                                        int optionID = optionService.Insert(option);
                                    }
                                }
                            }
                        }
                        optionService.UpdateOptionOfProduct(product.ProductID);
                        return(RedirectToAction("detail", "products", new { id = product.ProductID, strMessage = "1" }));
                    }
                }
                catch (Exception ex)
                {
                    LogService.WriteException(ex);
                    return(RedirectToAction("", "products"));
                }
            }
            product.ListTag  = tagService.GetByTableNameID((int)Common.TableName.Product);
            product.Options  = optionService.GetByProductID(product.ProductID);
            product.Variants = variantService.GetByProductID(product.ProductID);
            product.Variant  = null;
            if (product.Variants != null && product.Variants.Count > 0)
            {
                if (!string.IsNullOrEmpty(product.Variants[0].Option1) && product.Variants[0].Option1.Equals("Default Title"))
                {
                    product.Variant  = product.Variants[0];
                    product.Variants = null;
                }
            }
            product.AutoGenerate = false;
            List <TblImage> images = imageService.GetByProductID(product.ProductID);

            product.Images = images;

            List <ProductStyle> productStyle = productStyleService.GetAll();

            productStyle.Insert(0, new ProductStyle {
                ProductStyleID = 0, ProductStyleName = "Chọn loại sản phẩm"
            });
            product.ProductStyles = new SelectList(productStyle, "ProductStyleID", "ProductStyleName", product.ProductStyleID.ToString());

            List <Supplier> supplier = supplierService.GetAll();

            supplier.Insert(0, new Supplier {
                SupplierID = 0, SupplierName = "Chọn nhà sản xuất"
            });
            product.Suppliers = new SelectList(supplier, "SupplierID", "SupplierName", product.SupplierID);
            foreach (ModelState modelState in ViewData.ModelState.Values)
            {
                foreach (ModelError error in modelState.Errors)
                {
                    strErrorMessage += error.ErrorMessage;
                }
            }
            ViewBag.strError = strErrorMessage;
            return(View(product));
        }