コード例 #1
0
        public async Task <IActionResult> PostProduct([FromBody] Common.Models.Product product)
        {
            if (!ModelState.IsValid)
            {
                return(this.BadRequest(ModelState));
            }

            var user = await this.userHelper.GetUserByEmailAsync(product.User.Email);

            if (user == null)
            {
                return(this.BadRequest("Invalid user"));
            }

            //TODO: Upload images
            var entityProduct = new Product
            {
                IsAvailabe   = product.IsAvailabe,
                LastPurchase = product.LastPurchase,
                LastSale     = product.LastSale,
                Name         = product.Name,
                Price        = product.Price,
                Stock        = product.Stock,
                User         = user
            };

            var newProduct = await this.productRepository.CreateAsync(entityProduct);

            return(Ok(newProduct));
        }
コード例 #2
0
        public async Task <IActionResult> PutProduct([FromRoute] int id, [FromBody] Common.Models.Product product)
        {
            if (!ModelState.IsValid)
            {
                return(this.BadRequest(ModelState));
            }

            if (id != product.Id)
            {
                return(BadRequest());
            }

            var oldProduct = await this.productRepository.GetByIdAsync(id);

            if (oldProduct == null)
            {
                return(this.BadRequest("Product Id don't exists."));
            }

            //TODO: Upload images
            oldProduct.IsAvailabe   = product.IsAvailabe;
            oldProduct.LastPurchase = product.LastPurchase;
            oldProduct.LastSale     = product.LastSale;
            oldProduct.Name         = product.Name;
            oldProduct.Price        = product.Price;
            oldProduct.Stock        = product.Stock;

            var updatedProduct = await this.productRepository.UpdateAsync(oldProduct);

            return(Ok(updatedProduct));
        }
コード例 #3
0
ファイル: CustomerBL.cs プロジェクト: sp21/Infosys.QuickKart
        public List <Common.Models.Product> GetProducts()
        {
            try
            {
                var dal         = new QuickKartRepository();
                var productList = dal.DisplayProductDetails();
                var products    = new List <Common.Models.Product>();
                if (productList.Any())
                {
                    foreach (var prod in productList)
                    {
                        var product = new Common.Models.Product();
                        product.ProductId         = prod.ProductId;
                        product.ProductName       = prod.ProductName;
                        product.CategoryId        = prod.CategoryId;
                        product.Price             = prod.Price;
                        product.QuantityAvailable = prod.QuantityAvailable;

                        products.Add(product);
                    }
                }
                return(products);
            }
            catch (Exception)
            {
                return(null);
            }
        }
コード例 #4
0
        public async Task <IActionResult> PostProduct([FromBody] Common.Models.Product product)
        {
            if (!ModelState.IsValid)
            {
                return(this.BadRequest(ModelState));
            }

            if (product.User == null || string.IsNullOrEmpty(product.User.Email))
            {
                return(this.BadRequest("You must specify an user email."));
            }

            var user = await this.userHelper.GetUserByEmailAsync(product.User.Email);

            if (user == null)
            {
                return(this.BadRequest("Invalid user"));
            }

            var imageUrl = string.Empty;

            if (product.ImageArray != null && product.ImageArray.Length > 0)
            {
                var stream   = new MemoryStream(product.ImageArray);
                var guid     = Guid.NewGuid().ToString();
                var file     = $"{guid}.jpg";
                var folder   = "wwwroot\\images\\Products";
                var fullPath = $"~/images/Products/{file}";
                var response = FilesHelper.UploadPhoto(stream, folder, file);

                if (response)
                {
                    imageUrl = fullPath;
                }
            }


            var entityProduct = new Product
            {
                IsAvailabe   = product.IsAvailabe,
                LastPurchase = product.LastPurchase,
                LastSale     = product.LastSale,
                Name         = product.Name,
                Price        = product.Price,
                Stock        = product.Stock,
                User         = user,
                ImageUrl     = imageUrl
            };

            var newProduct = await this.productRepository.CreateAsync(entityProduct);

            return(Ok(newProduct));
        }
コード例 #5
0
        public async Task <IActionResult> PostProduct(
            [FromBody] Common.Models.Product product)
        {
            if (!ModelState.IsValid)
            {
                return(this.BadRequest(ModelState));
            }

            var user = await this.iUserHelper.GetUserByEmailAsync(product.User.Email);

            if (user == null)
            {
                return(this.BadRequest("Invalid user"));
            }

            var imageUrl = string.Empty;

            if (product.ImageArray != null && product.ImageArray.Length > 0)
            {
                var stream = new MemoryStream(product.ImageArray);
                var guid   = Guid.NewGuid().ToString();
                var file   = $"{guid}.jpg";
                //  var folder = "wwwroot\\images\\Products";
                var fullPath = $"{MethodsHelper.GetUrlImagesProducts}{file}";

                var response = Common.Helpers.FilesHelper.UplodaImage(
                    stream,
                    MethodsHelper.GetPathImagesProducts,
                    file);

                if (response.IsSuccess)
                {
                    imageUrl = fullPath;
                }
            }

            var entityProduct = new Product
            {
                IsAvailabe   = product.IsAvailabe,
                LastPurchase = product.LastPurchase,
                LastSale     = product.LastSale,
                Name         = product.Name,
                Price        = product.Price,
                Stock        = product.Stock,
                User         = user,
                ImageUrl     = imageUrl,
            };

            var newProduct = await this.iProductRepository.CreateAsync(entityProduct);

            return(Ok(newProduct));
        }
コード例 #6
0
        public async Task <IActionResult> PutProduct([FromRoute] int id, [FromBody] Common.Models.Product product)
        {
            if (!ModelState.IsValid)
            {
                return(this.BadRequest(ModelState));
            }

            if (id != product.Id)
            {
                return(BadRequest());
            }

            var oldProduct = await this.productRepository.GetByIdAsync(id);

            if (oldProduct == null)
            {
                return(this.BadRequest("Product Id don't exists."));
            }

            var imageUrl = string.Empty;

            if (product.ImageArray != null && product.ImageArray.Length > 0)
            {
                var stream   = new MemoryStream(product.ImageArray);
                var guid     = Guid.NewGuid().ToString();
                var file     = $"{guid}.jpg";
                var folder   = "wwwroot\\images\\Products";
                var fullPath = $"~/images/Products/{file}";
                var response = FilesHelper.UploadPhoto(stream, folder, file);

                if (response)
                {
                    imageUrl = fullPath;
                }
            }

            oldProduct.IsAvailabe   = product.IsAvailabe;
            oldProduct.LastPurchase = product.LastPurchase;
            oldProduct.LastSale     = product.LastSale;
            oldProduct.Name         = product.Name;
            oldProduct.Price        = product.Price;
            oldProduct.ImageUrl     = imageUrl;

            var updatedProduct = await this.productRepository.UpdateAsync(oldProduct);

            return(Ok(updatedProduct));
        }
コード例 #7
0
        public async Task <IActionResult> PostProduct([FromBody] Common.Models.Product productOut)
        {
            if (!ModelState.IsValid)
            {
                return(this.BadRequest(ModelState));
            }

            var user = await this.userManager.FindByEmailAsync(productOut.InventoryManagerName);

            if (user == null)
            {
                return(this.BadRequest("Invalid user"));
            }

            var imageUrl = string.Empty;

            if (productOut.ImageArray != null && productOut.ImageArray.Length > 0)
            {
                var stream   = new MemoryStream(productOut.ImageArray);
                var guid     = Guid.NewGuid().ToString();
                var file     = $"{guid}.jpg";
                var folder   = "wwwroot\\images\\Products";
                var fullPath = $"~/images/Products/{file}";
                var response = FilesHelper.UploadPhoto(stream, folder, file);

                if (response)
                {
                    imageUrl = fullPath;
                }
            }


            //Get the new index

            var newIndex = 1;

            var allProducts = await this.productRepository.GetAll().ToListAsync();

            var contains = allProducts.Exists(p => p.ReferenceCode.Substring(0, 16) == productOut.ReferenceCode);

            if (contains)
            {
                var lastProd = (await this.productRepository.GetAll().ToListAsync()).FindLast(p => p.ReferenceCode.Substring(0, 16) == productOut.ReferenceCode);

                var lastIndex = Int32.Parse(lastProd.ReferenceCode.Substring(16));

                newIndex = lastIndex + 1;
            }


            var entityProduct = new Product
            {
                ReferenceCode  = productOut.ReferenceCode + newIndex,
                Value          = productOut.Value,
                ImageUrl       = imageUrl,
                EntryDate      = DateTime.Now,
                InventoryId    = (await this.context.Inventory.FirstOrDefaultAsync(i => i.Name == productOut.InventoryName)).Id,
                LocationId     = (await this.context.Locations.FirstOrDefaultAsync(l => l.Name == productOut.Location)).Id,
                StatusId       = (await this.context.Status.FirstOrDefaultAsync(st => st.Name == productOut.Status)).Id,
                CategoryId     = (await this.context.Categories.FirstOrDefaultAsync(ct => ct.Name == productOut.Category)).Id,
                ProductModelId = (await this.context.ProductModel.FirstOrDefaultAsync(m => m.Name == productOut.ProductModel)).Id,
                SupplierId     = (await this.context.Suppliers.FirstOrDefaultAsync(sp => sp.Name == productOut.Supplier)).Id,
                ColorId        = (await this.context.Colors.FirstOrDefaultAsync(cl => cl.Name == productOut.Color)).Id,
                SizeId         = (await this.context.Sizes.FirstOrDefaultAsync(sz => sz.Name == productOut.Size)).Id,
                LastChangeDate = DateTime.Now
            };

            await this.productRepository.CreateAsync(entityProduct);

            var newProduct = await this.context.Products.FirstOrDefaultAsync(p => p.ReferenceCode == entityProduct.ReferenceCode);

            var newProdOut = new ProductOut()
            {
                ReferenceCode        = newProduct.ReferenceCode,
                Value                = newProduct.Value,
                ImageFullPath        = newProduct.ImageFullPath,
                InventoryName        = newProduct.Inventory.Name,
                InventoryManagerName = newProduct.Inventory.UserName,
                Location             = newProduct.Location.Name,
                Status               = newProduct.Status.Name,
                Category             = newProduct.Category.Name,
                ProductModel         = newProduct.ProductModel.Name,
                Supplier             = newProduct.Supplier.Name,
                Color                = newProduct.Color.Name,
                Size           = newProduct.Size.Name,
                EntryDate      = newProduct.EntryDate,
                LastChangeDate = newProduct.LastChangeDate
            };

            return(Ok(newProdOut));
        }