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