Exemple #1
0
        public async Task<IActionResult> UpdateProductSpecification(string key, [FromBody] ProductSpecificationAttributeDto productSpecification)
        {
            if (productSpecification == null)
                return NotFound();

            if (!await _permissionService.Authorize(PermissionSystemName.Products))
                return Forbid();

            var product = await _productApiService.GetById(key);
            if (product == null)
            {
                return NotFound();
            }

            var psa = product.SpecificationAttribute.Where(x => x.Id == productSpecification.Id).FirstOrDefault();
            if (psa == null)
                ModelState.AddModelError("", "No product specification mapping found with the specified id");

            if (ModelState.IsValid)
            {
                await _productApiService.UpdateProductSpecification(product, productSpecification);
                return Ok(true);
            }
            return BadRequest(ModelState);
        }
        public IActionResult CreateProductSpecification(string key, [FromBody] ProductSpecificationAttributeDto productSpecification)
        {
            if (productSpecification == null)
            {
                return(NotFound());
            }

            if (!_permissionService.Authorize(PermissionSystemName.Products))
            {
                return(Forbid());
            }

            var product = _productApiService.GetById(key);

            if (product == null)
            {
                return(NotFound());
            }

            var psa = product.SpecificationAttribute.Where(x => x.Id == productSpecification.Id).FirstOrDefault();

            if (psa != null)
            {
                ModelState.AddModelError("", "Product specification mapping found with the specified id");
            }

            if (ModelState.IsValid)
            {
                _productApiService.InsertProductSpecification(product, productSpecification);
                return(Ok(true));
            }
            return(BadRequest(ModelState));
        }
        public virtual void UpdateProductSpecification(ProductDto product, ProductSpecificationAttributeDto model)
        {
            var productdb = _productService.GetProductById(product.Id);
            var psa       = productdb.ProductSpecificationAttributes.FirstOrDefault(x => x.Id == model.Id);

            if (psa != null)
            {
                if (model.AttributeType == SpecificationAttributeType.Option)
                {
                    psa.AllowFiltering = model.AllowFiltering;
                    psa.SpecificationAttributeOptionId = model.SpecificationAttributeOptionId;
                }
                else
                {
                    psa.CustomValue = model.CustomValue;
                }
                psa.SpecificationAttributeId       = model.SpecificationAttributeId;
                psa.SpecificationAttributeOptionId = model.SpecificationAttributeOptionId;
                psa.AttributeTypeId   = (int)model.AttributeType;
                psa.ShowOnProductPage = model.ShowOnProductPage;
                psa.DisplayOrder      = model.DisplayOrder;
                psa.ProductId         = product.Id;
                _specificationAttributeService.UpdateProductSpecificationAttribute(psa);
            }
        }
        public void PrepareProductSpecificationAttributes(IEnumerable <ProductSpecificationAttribute> productSpecificationAttributes, ProductDto productDto)
        {
            if (productDto.ProductSpecificationAttributes == null)
            {
                productDto.ProductSpecificationAttributes = new List <ProductSpecificationAttributeDto>();
            }

            foreach (var productSpecificationAttribute in productSpecificationAttributes)
            {
                ProductSpecificationAttributeDto productSpecificationAttributeDto = PrepareProductSpecificationAttributeDto(productSpecificationAttribute);

                if (productSpecificationAttributeDto != null)
                {
                    productDto.ProductSpecificationAttributes.Add(productSpecificationAttributeDto);
                }
            }
        }
Exemple #5
0
        public virtual async Task InsertProductSpecification(ProductDto product, ProductSpecificationAttributeDto model)
        {
            //we allow filtering only for "Option" attribute type
            if (model.AttributeType != SpecificationAttributeType.Option)
            {
                model.AllowFiltering = false;
                model.SpecificationAttributeOptionId = null;
            }

            var psa = new ProductSpecificationAttribute
            {
                AttributeTypeId = (int)model.AttributeType,
                SpecificationAttributeOptionId = model.SpecificationAttributeOptionId,
                SpecificationAttributeId       = model.SpecificationAttributeId,
                ProductId         = product.Id,
                CustomValue       = model.CustomValue,
                AllowFiltering    = model.AllowFiltering,
                ShowOnProductPage = model.ShowOnProductPage,
                DisplayOrder      = model.DisplayOrder,
            };
            await _specificationAttributeService.InsertProductSpecificationAttribute(psa);
        }
        public async Task <IActionResult> UpdateProductSpecification(string key, [FromBody] ProductSpecificationAttributeDto productSpecification)
        {
            if (productSpecification == null)
            {
                return(BadRequest());
            }

            if (!await _permissionService.Authorize(PermissionSystemName.Products))
            {
                return(Forbid());
            }

            var product = await _mediator.Send(new GetQuery <ProductDto>() { Id = key });

            if (!product.Any())
            {
                return(NotFound());
            }

            var psa = product.FirstOrDefault().ProductSpecificationAttributes.Where(x => x.Id == productSpecification.Id).FirstOrDefault();

            if (psa == null)
            {
                ModelState.AddModelError("", "No product specification mapping found with the specified id");
            }

            if (ModelState.IsValid)
            {
                var result = await _mediator.Send(new UpdateProductSpecificationCommand()
                {
                    Product = product.FirstOrDefault(), Model = productSpecification
                });

                return(Ok(result));
            }
            return(BadRequest(ModelState));
        }
Exemple #7
0
 public static async Task UpdateProductSpecification(ProductDto product, ProductSpecificationAttributeDto specification)
 {
     await product.UpdateProductSpecification(specification.Id, specification.DisplayOrder, specification.CustomValue, specification.AttributeType, specification.AllowFiltering,
                                              specification.SpecificationAttributeId, specification.ShowOnProductPage, specification.SpecificationAttributeOptionId).GetValueAsync();
 }
Exemple #8
0
        static void Main(string[] args)
        {
            TOKEN     = WebApiServices.GenerateToken().Result;
            container = new Container(new Uri(StoreUrl + "odata"));
            container.BuildingRequest += OnBuildingRequest;

            var product = WebApiServices.GetProduct().Result;

            WebApiServices.UpdatePrice(product.Id, 876);
            WebApiServices.UpdateStock(product, "", 1200).Wait();

            //pictures
            byte[] binary     = File.ReadAllBytes("./bill.jpg");
            var    newPicture = WebApiServices.InsertPicture(binary).Result;

            ProductPictureDto newProductPicture = new ProductPictureDto();

            newProductPicture.PictureId      = newPicture.Id;
            newProductPicture.MimeType       = newPicture.MimeType;
            newProductPicture.SeoFilename    = newPicture.SeoFilename;
            newProductPicture.AltAttribute   = newPicture.AltAttribute;
            newProductPicture.TitleAttribute = newPicture.TitleAttribute;

            // WebApiServices.AddPictureToProduct(product, newProductPicture);

            //5d1613b4be3bff0a8444a7d7

            var updatedPicture = product.Pictures.FirstOrDefault();

            updatedPicture.DisplayOrder = 4;
            WebApiServices.UpdatePicture(product, updatedPicture).Wait();

            //WebApiServices.RemoveProductPicture(product, "5d1613b4be3bff0a8444a7d7").Wait();

            //product spec
            ProductSpecificationAttributeDto spec = new ProductSpecificationAttributeDto();

            spec.AllowFiltering                 = true;
            spec.DisplayOrder                   = 1;
            spec.ShowOnProductPage              = true;
            spec.AttributeType                  = SpecificationAttributeType.Option;
            spec.SpecificationAttributeId       = "5d107e372e8d1143384d957";
            spec.SpecificationAttributeOptionId = "5d107e372e8d1143384d9580";
            //WebApiServices.AddProductSpecification(product, spec).Wait();

            ProductSpecificationAttributeDto updateSpec = product.SpecificationAttribute.FirstOrDefault();

            updateSpec.AllowFiltering                 = false;
            updateSpec.DisplayOrder                   = 2;
            updateSpec.ShowOnProductPage              = false;
            updateSpec.SpecificationAttributeId       = "5d107e372e8d1143384d9581";
            updateSpec.SpecificationAttributeOptionId = "5d107e372e8d1143384d9583";

            //WebApiServices.UpdateProductSpecification(product, updateSpec).Wait();

            //WebApiServices.RemoveProductSpecification(product, "").Wait();

            //tier price
            ProductTierPriceDto tierPrice = new ProductTierPriceDto();

            tierPrice.Quantity         = 50;
            tierPrice.Price            = 500;
            tierPrice.StartDateTimeUtc = DateTime.UtcNow;
            tierPrice.EndDateTimeUtc   = DateTime.UtcNow.AddDays(5);

            // WebApiServices.AddTierPricesToProduct(product, tierPrice).Wait();

            ProductTierPriceDto updatedTierPrice = product.TierPrices.FirstOrDefault();

            updatedTierPrice.Quantity         = 80;
            updatedTierPrice.Price            = 600;
            updatedTierPrice.StartDateTimeUtc = DateTime.UtcNow.AddDays(2);
            updatedTierPrice.EndDateTimeUtc   = DateTime.UtcNow.AddDays(7);

            WebApiServices.UpdateTierPrices(product, updatedTierPrice).Wait();
            //WebApiServices.DeleteTierPrices(product,"5d161422be3bff0a8444a83a").Wait();

            //manufacturer

            ProductManufacturerDto manufacturer = new ProductManufacturerDto();

            manufacturer.IsFeaturedProduct = true;
            manufacturer.ManufacturerId    = "5d107e2e2e8d1143384d9567";
            WebApiServices.AddManufacturer(product, manufacturer).Wait();

            ProductManufacturerDto updatedManufacturer = new ProductManufacturerDto();

            updatedManufacturer.IsFeaturedProduct = false;
            updatedManufacturer.ManufacturerId    = "5d107e2e2e8d1143384d9567";
            WebApiServices.UpdateManufacturer(product, updatedManufacturer).Wait();

            //WebApiServices.DeleteManufacturer(product, "5d107e2e2e8d1143384d9567").Wait();

            // categories
            var categories = WebApiServices.GetCategories().Result.ToList();
            var category   = categories.FirstOrDefault();

            //CategoryDto newCategory = new CategoryDto();
            //newCategory.Name = "New category";
            //newCategory.SeName = "new-category";
            //newCategory.Published = true;
            //newCategory.PageSize = 10;
            //newCategory.Id = "";
            //WebApiServices.InsertCategory(container, newCategory);

            WebApiServices.UpdateCategory("5d107df92e8d1143384d9536", "new title22");

            //var categoryToDelete = categories.LastOrDefault();
            //WebApiServices.DeleteCategory(container, categoryToDelete);

            //product category
            ProductCategoryDto updatedProductCategory = product.Categories.FirstOrDefault();

            updatedProductCategory.IsFeaturedProduct = true;

            WebApiServices.UpdateProductCategoryMethod(product.Id, updatedProductCategory).Wait();

            //users
            var customer = WebApiServices.GetCustomerByEmail(UserName);
            var role     = WebApiServices.GetFirstCustomerRole(container);

            var address = new AddressDto();

            address.FirstName     = "John";
            address.LastName      = "Smith";
            address.Address1      = "Address 1";
            address.Email         = "*****@*****.**";
            address.City          = "New York";
            address.PhoneNumber   = "111111111";
            address.ZipPostalCode = "33333";
            address.CreatedOnUtc  = DateTime.Now;
            address.CountryId     = "1";


            //WebApiServices.AssignAddressToCustomer(container, address, customer).Wait();
            var addressToDelete = customer.Addresses.LastOrDefault();

            WebApiServices.DeleteCustomerAddress(addressToDelete, customer).Wait();
        }