public HttpResponseMessage Get([FromUri] int id = 0) { try { if (id == 0) { //Get all products //var dbListingOfProductsToReturn = _unitOfWork.ProductRepository.Get().Where(p => p.DeletedDate != null); var dbListingOfProductsToReturn = _unitOfWork.ProductRepository.Get(); var tempListToReturn = from p in dbListingOfProductsToReturn select new FoodInventory.Data.Models.DTOs.ProductDTO() { ID = p.ID, Name = p.Name, Description = p.Description, PurchasePrice = p.PurchasePrice, SalesPrice = p.SalesPrice, SpoilDate = p.SpoilDate, UnitsAvailable = p.UnitsAvailable, ProductImage = p.ProductImage }; return(Request.CreateResponse(HttpStatusCode.OK, tempListToReturn.ToList())); } else { //Get specified product var dbProductToReturn = _unitOfWork.ProductRepository.Get().Where(p => p.ID == id).FirstOrDefault(); var finalProductToReturn = new FoodInventory.Data.Models.DTOs.ProductDTO { ID = dbProductToReturn.ID, Name = dbProductToReturn.Name, Description = dbProductToReturn.Description, PurchasePrice = dbProductToReturn.PurchasePrice, SalesPrice = dbProductToReturn.SalesPrice, SpoilDate = dbProductToReturn.SpoilDate, UnitsAvailable = dbProductToReturn.UnitsAvailable, ProductImage = dbProductToReturn.ProductImage }; return(Request.CreateResponse(HttpStatusCode.OK, finalProductToReturn)); } } catch (Exception exc) { return(Request.CreateResponse(HttpStatusCode.BadRequest, exc.ToString())); } }
public HttpResponseMessage Post([FromBody] FoodInventory.Data.Models.DTOs.ProductDTO productToAddOrEdit) { try { var messageToReturn = ""; if (productToAddOrEdit.ID == 0) { //Add this product. First check to see if product name might have been added already. var productToAdd = _unitOfWork.ProductRepository.Get().Where(p => p.Name.Trim().ToUpper() == productToAddOrEdit.Name.Trim().ToUpper()).FirstOrDefault(); //Doesn't exist, add. if (productToAdd == null) { productToAdd = new Product { Name = productToAddOrEdit.Name, Description = productToAddOrEdit.Description, PurchasePrice = productToAddOrEdit.PurchasePrice, SalesPrice = productToAddOrEdit.SalesPrice, DeletedDate = productToAddOrEdit.DeletedDate, SpoilDate = productToAddOrEdit.SpoilDate, UnitsAvailable = productToAddOrEdit.UnitsAvailable }; _unitOfWork.ProductRepository.Insert(productToAdd); _unitOfWork.Save(); messageToReturn = "Added product (" + productToAdd.Name + ") with ID (" + productToAdd.ID + ")."; } else { //Product exists, must be undeleted productToAdd.Name = productToAddOrEdit.Name; productToAdd.Description = productToAddOrEdit.Description; productToAdd.PurchasePrice = productToAddOrEdit.PurchasePrice; productToAdd.SalesPrice = productToAddOrEdit.SalesPrice; productToAdd.DeletedDate = productToAddOrEdit.DeletedDate; productToAdd.SpoilDate = productToAddOrEdit.SpoilDate; productToAdd.UnitsAvailable = productToAddOrEdit.UnitsAvailable; productToAdd.DeletedDate = null; _unitOfWork.ProductRepository.Update(productToAdd); _unitOfWork.Save(); messageToReturn = "Added product (" + productToAdd.Name + ") with ID (" + productToAdd.ID + ") which was previously deleted."; } } else { var productToEdit = _unitOfWork.ProductRepository.Get().Where(p => p.ID == productToAddOrEdit.ID).FirstOrDefault(); if (productToEdit == null) { return(Request.CreateResponse(HttpStatusCode.BadRequest, "The product (" + productToAddOrEdit.Name + ") with ID (" + productToAddOrEdit.ID + ") does not exist.")); } else { //Edit this product. productToEdit.Name = productToAddOrEdit.Name; productToEdit.Description = productToAddOrEdit.Description; productToEdit.PurchasePrice = productToAddOrEdit.PurchasePrice; productToEdit.SalesPrice = productToAddOrEdit.SalesPrice; productToEdit.DeletedDate = productToAddOrEdit.DeletedDate; productToEdit.SpoilDate = productToAddOrEdit.SpoilDate; productToEdit.UnitsAvailable = productToAddOrEdit.UnitsAvailable; productToEdit.DeletedDate = null; _unitOfWork.ProductRepository.Update(productToEdit); _unitOfWork.Save(); messageToReturn = "Edited product (" + productToEdit.Name + ") with ID (" + productToEdit.ID + ")."; } } return(Request.CreateResponse(HttpStatusCode.OK, messageToReturn)); } catch (Exception exc) { return(Request.CreateResponse(HttpStatusCode.BadRequest, exc.ToString())); } }