public ActionResult AddVehicle() { _makeManager = MakeManagerFactory.Create(); _modelManager = ModelManagerFactory.Create(); _interiorColorManager = InteriorColorManagerFactory.Create(); _exteriorColorManager = ExteriorColorManagerFactory.Create(); _bodyStyleManager = BodyStyleManagerFactory.Create(); try { var model = new AddListingVM(); //load all the items var modelResponse = _modelManager.GetAllModels(); var makeResponse = _makeManager.GetAllMakes(); var interiorResponse = _interiorColorManager.GetAll(); var exteriorReponse = _exteriorColorManager.GetAll(); var bodyResponse = _bodyStyleManager.GetAll(); //verify they all loaded if (!modelResponse.Success || !makeResponse.Success || !interiorResponse.Success || !exteriorReponse.Success || !bodyResponse.Success) { return(new HttpStatusCodeResult(500, $"Error in cloud. Message:" + $"{modelResponse.Message} " + $"{makeResponse.Message}" + $"{interiorResponse.Message}" + $"{exteriorReponse.Message}" + $"{bodyResponse.Message}")); } else { //create select list items model.Makes = makeResponse.Payload.Select(m => new SelectListItem { Text = m.MakeName, Value = m.MakeId.ToString() }); model.Models = modelResponse.Payload.Select(m => new SelectListItem { Text = m.ModelName, Value = m.ModelId.ToString() }); model.ExteriorColors = exteriorReponse.Payload.Select(m => new SelectListItem { Text = m.ExteriorColorName, Value = m.ExteriorColorId.ToString() }); model.InteriorColors = interiorResponse.Payload.Select(m => new SelectListItem { Text = m.InteriorColorName, Value = m.InteriorColorId.ToString() }); model.BodyStyles = bodyResponse.Payload.Select(m => new SelectListItem { Text = m.BodyStyleName, Value = m.BodyStyleId.ToString() }); return(View(model)); } } catch (Exception ex) { throw new ApplicationException("Something wrong happened loading the add screen:", ex); } }
public ActionResult AddVehicle(AddListingVM model) { _listingManager = ListingManagerFactory.Create(); if (ModelState.IsValid) { try { model.Listing.DateAdded = DateTime.Now; if (model.ImageUpload != null && model.ImageUpload.ContentLength > 0) { var savepath = Server.MapPath("~/Images/"); string fileName = Path.GetFileNameWithoutExtension(model.ImageUpload.FileName); string extension = Path.GetExtension(model.ImageUpload.FileName); var filePath = Path.Combine(savepath, fileName + extension); int counter = 1; while (System.IO.File.Exists(filePath)) { filePath = Path.Combine(savepath, fileName + counter.ToString() + extension); counter++; } model.ImageUpload.SaveAs(filePath); model.Listing.ImageFileUrl = Path.GetFileName(filePath); } //send to manager and repo var listingResponse = _listingManager.SaveListing(model.Listing); if (listingResponse.Success) { return(RedirectToAction("EditVehicle", new { id = listingResponse.Payload.ListingId })); } else { return(new HttpStatusCodeResult(500, $"Error in cloud. Message:" + $"{listingResponse.Message}")); } } catch (Exception ex) { throw new ApplicationException("Something wrong happened while trying to add a new listing:", ex); } } else { //reset page with items _makeManager = MakeManagerFactory.Create(); _modelManager = ModelManagerFactory.Create(); _interiorColorManager = InteriorColorManagerFactory.Create(); _exteriorColorManager = ExteriorColorManagerFactory.Create(); _bodyStyleManager = BodyStyleManagerFactory.Create(); //load all the items var modelResponse = _modelManager.GetAllModels(); var makeResponse = _makeManager.GetAllMakes(); var interiorResponse = _interiorColorManager.GetAll(); var exteriorReponse = _exteriorColorManager.GetAll(); var bodyResponse = _bodyStyleManager.GetAll(); //verify they all loaded if (!modelResponse.Success || !makeResponse.Success || !interiorResponse.Success || !exteriorReponse.Success || !bodyResponse.Success) { return(new HttpStatusCodeResult(500, $"Error in cloud. Message:" + $"{modelResponse.Message} " + $"{makeResponse.Message}" + $"{interiorResponse.Message}" + $"{exteriorReponse.Message}" + $"{bodyResponse.Message}")); } else { //create select list items model.Makes = makeResponse.Payload.Select(m => new SelectListItem { Text = m.MakeName, Value = m.MakeId.ToString() }); model.Models = modelResponse.Payload.Select(m => new SelectListItem { Text = m.ModelName, Value = m.ModelId.ToString() }); model.ExteriorColors = exteriorReponse.Payload.Select(m => new SelectListItem { Text = m.ExteriorColorName, Value = m.ExteriorColorId.ToString() }); model.InteriorColors = interiorResponse.Payload.Select(m => new SelectListItem { Text = m.InteriorColorName, Value = m.InteriorColorId.ToString() }); model.BodyStyles = bodyResponse.Payload.Select(m => new SelectListItem { Text = m.BodyStyleName, Value = m.BodyStyleId.ToString() }); return(View(model)); } } }