public async Task <IActionResult> Update(ProductUpdateViewModel product
                                                 , ProductFeatureInsertViewModel vm
                                                 , ProductGalleryViewModel Pics)
        {
            // ثبت محصول
            var productId = await _productRepostitory.UpdateProduct(product, Pics.file);

            vm.ProductId = product.Id;

            if (Pics.oldGallery != null)
            {
                // بررسی گالری عکس گذشته
                await _productGalleryRepository.UpdateRemindedGallery(Pics.oldGallery.Select(x => Convert.ToInt32(x)).ToList(), product.Id);
            }

            if (Pics.galleryImage != null)
            {
                // آپلود گالری
                await _productGalleryRepository.UploadGalley(Pics.galleryImage, productId);
            }

            if (vm.Items != null)
            {
                // ویژگی ها
                await _productFeatureRepository.UpdateFeatureRange(vm);
            }
            // نمایش پیغام
            TempData.AddResult(SweetAlertExtenstion.Ok());

            // بازگشت به لیست محصولات
            return(Redirect(IndexUrlWithQueryString));
        }
        public async Task <IActionResult> SubmitFeature(ProductFeatureInsertViewModel vm)
        {
            var model = await _productFeatureRepository.UpdateFeatureRange(vm);

            TempData.AddResult(model);

            return(Redirect(IndexUrlWithQueryString));
        }
        /// <summary>
        /// افزودن گروهی ویژگی ها
        /// </summary>
        /// <param name="vm"></param>
        /// <returns></returns>
        public async Task <SweetAlertExtenstion> UpdateFeatureRange(ProductFeatureInsertViewModel vm)
        {
            DeleteFeatures(vm.ProductId);

            var lst = new List <ProductFeature>();

            foreach (var item in vm.Items)
            {
                lst.Add(new ProductFeature()
                {
                    FeatureId    = item.FeatureId,
                    FeatureValue = item.FeatureValue,
                    ProductId    = vm.ProductId
                });
            }
            await AddRangeAsync(lst);

            return(SweetAlertExtenstion.Ok());
        }
        /// <summary>
        /// افزودن گروهی ویژگی ها
        /// </summary>
        /// <param name="vm"></param>
        /// <returns></returns>
        public async Task <SweetAlertExtenstion> AddFeatureRange(ProductFeatureInsertViewModel vm)
        {
            var lst = new List <ProductFeature>();

            if (vm.Items != null && vm.Items.Count > 0)
            {
                foreach (var item in vm.Items)
                {
                    lst.Add(new ProductFeature()
                    {
                        FeatureId    = item.FeatureId,
                        FeatureValue = item.FeatureValue,
                        ProductId    = vm.ProductId
                    });
                }
                await AddRangeAsync(lst);
            }
            return(SweetAlertExtenstion.Ok());
        }
        public async Task <IActionResult> Create(ProductInsertViewModel product
                                                 , ProductFeatureInsertViewModel vm
                                                 , ProductGalleryViewModel Pics)
        {
            // ثبت محصول
            var productId = await _productRepostitory.SubmitProduct(product, Pics.file);

            vm.ProductId = productId;

            if (Pics.galleryImage != null)
            {
                // آپلود گالری
                await _productGalleryRepository.UploadGalley(Pics.galleryImage, productId);
            }

            // ویژگی ها
            await _productFeatureRepository.AddFeatureRange(vm);

            // نمایش پیغام
            TempData.AddResult(SweetAlertExtenstion.Ok());

            // بازگشت به لیست محصولات
            return(Redirect(IndexUrlWithQueryString));
        }