private void ProcessModel(PhoneNumberEntryViewModel model) { var usedNumberTypes = model.PhoneNumberEntries.Select(i => i.PhoneNumberType).ToList(); var allNumbers = Enum.GetNames(typeof(PhoneNumberTypes)).ToList(); foreach (var item in model.PhoneNumberEntries) { item.AvailableTypes = allNumbers.Where(t => t == item.PhoneNumberType || !usedNumberTypes.Contains(t)).ToList(); } }
public ActionResult Add(PhoneNumberEntryViewModel model) { var types = model.PhoneNumberEntries.Select(e => e.PhoneNumberType); var type = model.Types.Where(t => !types.Contains(t)).First(); model.PhoneNumberEntries.Add(new PhoneNumberEntry() { PhoneNumberType = type }); ProcessModel(model); return View("Form", model); }
public ActionResult Index(PhoneNumberEntryViewModel model) { //simulate database //var items = Session["PhoneNumbers"] != null ? (List<PhoneNumberEntry>)Session["PhoneNumbers"] : new List<PhoneNumberEntry> // { // new PhoneNumberEntry{PhoneNumber = "917-301-1539", PhoneNumberType = PhoneNumberTypes.Mobile.ToString()}, // new PhoneNumberEntry{PhoneNumber ="212-555-1212", PhoneNumberType = PhoneNumberTypes.Business.ToString()} // }; //var model = new PhoneNumberEntryViewModel() //{ // PhoneNumberEntries = items //}; if(model == null) model = new PhoneNumberEntryViewModel(); ProcessModel(model); return View("Form", model); }
public ActionResult Delete(PhoneNumberEntryViewModel model, int index) { model.PhoneNumberEntries.RemoveAt(index); ProcessModel(model); return View("Form", model); }
public ActionResult Change(PhoneNumberEntryViewModel model) { ProcessModel(model); return View("Form", model); }