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)); }
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)); }
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); } }
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)); }
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)); }
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)); }
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)); }