public ActionResult EditSuggestion(GATE_ComponentRequest suggestion, HttpPostedFileWrapper pictureUpload = null) { if (!suggestion.InStock) { if (suggestion.CurrentSuggestion.Price == null) { ModelState.AddModelError("MaterialSuggestion.Price", "Price is required"); } if (suggestion.CurrentSuggestion.Label == null) { ModelState.AddModelError("MaterialSuggestion.Label", "Label is required"); } } else { suggestion.CurrentSuggestion.Label = "In Stock"; suggestion.CurrentSuggestion.Price = 0; } if (pictureUpload != null && pictureUpload.ContentType.Substring(0, 5) != "image") { ModelState.AddModelError("pictureUpload", "The file you tried to insert is not an image file, you should use .jpg, .png or .gif"); } var componentRequest = DB.GATE_ComponentRequest.Include(x => x.CurrentSuggestion) .Include(x => x.PreviousSuggestion) .Where(x => x.ComponentId == suggestion.ComponentId) .Select(x => x).FirstOrDefault(); if (componentRequest.PreviousMaterialSuggestedId == null) { var matSuggestion = new GATE_MaterialSuggestion { Label = componentRequest.CurrentSuggestion.Label, Price = componentRequest.CurrentSuggestion.Price, DeliveryDate = componentRequest.CurrentSuggestion.DeliveryDate, CurrencyId = componentRequest.CurrentSuggestion.CurrencyId, IsNotStandardProduct = componentRequest.CurrentSuggestion.IsNotStandardProduct, PictureId = componentRequest.CurrentSuggestion.PictureId, InStock = componentRequest.CurrentSuggestion.InStock }; componentRequest.PreviousSuggestion = matSuggestion; DB.GATE_MaterialSuggestion.Add(componentRequest.PreviousSuggestion); DB.SaveChanges(); } else { componentRequest.PreviousSuggestion.Label = componentRequest.CurrentSuggestion.Label; componentRequest.PreviousSuggestion.Price = componentRequest.CurrentSuggestion.Price; componentRequest.PreviousSuggestion.DeliveryDate = componentRequest.CurrentSuggestion.DeliveryDate; componentRequest.PreviousSuggestion.CurrencyId = componentRequest.CurrentSuggestion.CurrencyId; componentRequest.PreviousSuggestion.IsNotStandardProduct = componentRequest.CurrentSuggestion.IsNotStandardProduct; componentRequest.PreviousSuggestion.PictureId = componentRequest.CurrentSuggestion.PictureId; componentRequest.PreviousSuggestion.InStock = componentRequest.CurrentSuggestion.InStock; DB.Entry(componentRequest.PreviousSuggestion).State = EntityState.Modified; DB.SaveChanges(); } componentRequest.CurrentSuggestion.Label = suggestion.CurrentSuggestion.Label; componentRequest.CurrentSuggestion.Price = suggestion.CurrentSuggestion.Price; componentRequest.CurrentSuggestion.DeliveryDate = suggestion.CurrentSuggestion.DeliveryDate; componentRequest.CurrentSuggestion.CurrencyId = suggestion.CurrentSuggestion.CurrencyId; componentRequest.CurrentSuggestion.IsNotStandardProduct = suggestion.CurrentSuggestion.IsNotStandardProduct; componentRequest.CurrentSuggestion.InStock = suggestion.InStock; if (pictureUpload != null && pictureUpload.ContentType.Substring(0, 5) == "image") { var b = new BinaryReader(pictureUpload.InputStream); byte[] binData = b.ReadBytes(pictureUpload.ContentLength); var pictureFile = new GATE_SuggestionPicture { PictureData = binData }; componentRequest.CurrentSuggestion.GATE_SuggestionPicture = pictureFile; } DB.Entry(componentRequest.CurrentSuggestion).State = EntityState.Modified; DB.SaveChanges(); return new RedirectResult(Url.Action("Pending") + "#tr" + componentRequest.MaterialRequestId); }
public ActionResult CreateSuggestion(GATE_ComponentRequest suggestion, HttpPostedFileWrapper pictureUpload) { //TODO reimplement with the new Stock and password tables #stock if (!suggestion.InStock) { if (suggestion.CurrentSuggestion.Price == null) { ModelState.AddModelError("MaterialSuggestion.Price", "Price is required"); } if (suggestion.CurrentSuggestion.Label == null) { ModelState.AddModelError("MaterialSuggestion.Label", "Label is required"); } } else { suggestion.CurrentSuggestion.Label = "In Stock"; suggestion.CurrentSuggestion.Price = 0; } if (pictureUpload != null && pictureUpload.ContentType.Substring(0, 5) != "image") { ModelState.AddModelError("pictureUpload", "The file you tried to insert is not an image file, you should use .jpg, .png or .gif"); } var componentRequest = DB.GATE_ComponentRequest.Find(suggestion.ComponentId); GATE_MaterialSuggestion matSuggestion = suggestion.CurrentSuggestion; componentRequest.CurrentSuggestion = matSuggestion; if (pictureUpload != null && pictureUpload.ContentType.Substring(0, 5) == "image") { var b = new BinaryReader(pictureUpload.InputStream); byte[] binData = b.ReadBytes(pictureUpload.ContentLength); var pictureFile = new GATE_SuggestionPicture { PictureData = binData, }; componentRequest.CurrentSuggestion.GATE_SuggestionPicture = pictureFile; } else { componentRequest.CurrentSuggestion.PictureId = null; } DB.GATE_MaterialSuggestion.Add(matSuggestion); DB.SaveChanges(); return new RedirectResult(Url.Action("Pending") + "#tr" + componentRequest.MaterialRequestId); }