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 }
     };
 }
示例#2
0
        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);
            }
        }
示例#4
0
        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);
        }