public ActionResult AddWine() { // **************************************************** // *** Establish New Wine Add View Model For Add ****** // *** May Also Utilize This Area of Code 4 Edit ****** // **************************************************** var vm = new WineAddViewModel() { // **************************************************** // * Default Value Of Nullable Boolean Is Always Null * // * Unnecessary To Nullify But Set To Insure Value * // **************************************************** ShowSuccessMsg = null, VarietalsToChooseFrom = Repository.GetAllGrapeVarietals().OrderBy(gv => gv.Name).ToList(), TheWine = new WineModel(), TheWineClass = new TTBWineClass() }; //***************************************************** //*** Returns AddWine View (Form) For Adding A Wine *** //***************************************************** return(View("AddWine", vm)); }
public ActionResult AddWine2(Models.ViewModels.WineAddViewModel wine) { // **************************************************** // ********* Check To Make Sure Model Is Valid ******** // **************************************************** if (ModelState.IsValid) { wine.VarietalsToChooseFrom = Repository.GetAllGrapeVarietals(); using (var context = new WineContext()) { // ************************************************* // * Might Be Useful To Cache For Some Time In The * // * Future To Make Sure That User Does Not Try * // * To Pass A Varietal To DB That Does Not Exist * // ************************************************* var varietalFromDb = context.Varietals.FirstOrDefault(v => v.Id == wine.TheWine.Varietal.VarietalId) ; if (varietalFromDb == null) { throw new Exception("Received an invalid varietal name."); } //****************************************** //*** Map Field Names For The Database ***** //*** In New dbWine Variable *************** //****************************************** var dbWine = new Wine { ABV = wine.TheWine.ABV, AVA = wine.TheWine.AVA, btlVol = wine.TheWine.btlVol, btlVolUOM = wine.TheWine.btlVolUOM, fluidOz = wine.TheWine.fluidOz, Id = wine.TheWine.Id, Name = wine.TheWine.Name, TheVarietal = varietalFromDb, TheWineType = wine.TheWine.WineType, TheTTBWineClass = wine.TheWineClass, Description = wine.TheWine.Description, WineryURL = wine.TheWine.WineryURL }; // ***************************************** // *** Add The New Wine To The Database **** // *** And Save The Changes **************** // ***************************************** context.Wines.Add(dbWine); context.SaveChanges(); } //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ // CODE NOTE USED CODE NOT USED //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ var blankWine = new WineAddViewModel { ShowSuccessMsg = true, //SelectedVarietalId = null, TheWine = new WineModel(), VarietalsToChooseFrom = Repository.GetAllGrapeVarietals(), }; //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ // CODE NOTE USED CODE NOT USED //\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ return(RedirectToAction("Index", "Wine", wine)); } // ************************************************* // *** Repopulate Varietals To Choose From ********* // ************************************************* wine.VarietalsToChooseFrom = Repository.GetAllGrapeVarietals(); //Return Some Error View - to be added... throw new NotImplementedException("Dealing With Errors"); }