public static RouteValueDictionary GenerateContactDetailRoute(this AccountFilterModel model, ContactModel contact) { return new RouteValueDictionary() { { "id", contact.AccountId.ToString() }, { "contactId", contact.Id.ToString() }, { "Page", model.Page.ToString() }, { "Size", model.Size.ToString() }, { "Name", model.AccountName }, { "AccountTypeId", model.AccountTypeId } }; }
public AccountModel AddContact(AccountModel account, ContactModel contact) { var accountGraph = AccountRepository.GetAccount(account.Id); accountGraph.AddContact(new Data.Graph.Contact() { ContactDetail = contact.ContactDetail, ContactType = AccountRepository.GetContactTypes().Where(t => t.Id == contact.ContactTypeId).First(), FirstName = contact.FirstName, LastName = contact.LastName }); AccountRepository.SaveAccount(accountGraph); return Mapper.Map<Data.Graph.Account, AccountModel>(accountGraph); }
public ActionResult NewContact(int id, AccountFilterModel filter, FormCollection collection) { var account = AccountServices.GetAccount(id); var contact = new ContactModel() { AccountId = id }; try { // Need to specify properties because the id (account) overwrites Contact.Id UpdateModel(contact, new string[] { "ContactTypeId", "ContactDetail", "FirstName", "LastName" }); AccountServices.AddContact(account, contact); return RedirectToAction("EditAccount", filter.GenerateAccountDetailRoute(id)); } catch (Exception ex) { // Invalid - redisplay with errors Logger.Error(ex.ToString()); ModelState.AddModelError(String.Empty, Constants.ServerError); var model = new ContactDetailModel() { Action = "NewContact", Contact = contact, Filter = filter, }; ViewBag.ContactTypes = AccountServices.GetContactTypes(contact.ContactTypeId); return View("ContactDetail", model); } }
public AccountModel UpdateContact(AccountModel account, ContactModel contact) { var accountGraph = AccountRepository.GetAccount(account.Id); var contactGraph = accountGraph.ContactList.Where(c => c.Id == contact.Id).First(); contactGraph.ContactDetail = contact.ContactDetail; contactGraph.ContactType = AccountRepository.GetContactTypes().Where(t => t.Id == contact.ContactTypeId).First(); contactGraph.FirstName = contact.FirstName; contactGraph.LastName = contact.LastName; AccountRepository.SaveAccount(accountGraph); return Mapper.Map<Data.Graph.Account, AccountModel>(accountGraph); }