public ActionResult CreateCompany(CreateCompanyVM vm) { if (ModelState.IsValid) { var addressModel = new Address { Street = vm.Street, City = vm.City, State = vm.State, Zipcode = vm.Zipcode }; int addressID = context.CreateAddress(addressModel); //DRJ - want to attach addressID to company on company creation var companyModel = new Company { CompanyName = vm.CompanyName, AddressID = addressID }; context.SaveCompany(companyModel); return RedirectToAction("CreateEmployee",new { company = vm.CompanyName } ); } //DRJ - need to repopulate to avoid error vm.StateList = context.States .OrderBy(s => s.Abbreviation) .Select(s => new SelectListItem { Text = s.Name, Value = s.Abbreviation }); return View(vm); }
// use this for create because will only create addresses when company is created public int CreateAddress(Address address) { if (address.ID == 0) { context.Addresses.Add(address); context.SaveChanges(); } int addressID = context.Addresses .Where(a => a.Street == address.Street && a.City == address.City) .Select(a => a.ID) .FirstOrDefault(); return addressID; }
//use this for edit public void SaveAddress(Address address) { Address dbEntry = context.Addresses.Find(address.ID); if (dbEntry != null) { dbEntry.Street = address.Street; dbEntry.City = address.City; dbEntry.State = address.State; dbEntry.Zipcode = address.Zipcode; context.SaveChanges(); } }