public ActionResult Create(ContactUser m)
        {
            m.AllRoles = Roles.GetRoles();
            if (m.UserRoles == null)
                m.UserRoles = new List<string>();
            var logic = new ContactBUS();
            if (ModelState.IsValid)
            {

                logic.CreateContact(m.Contact);
                if (m.IsUser)
                {
                    var userHelper = UserHelper.Create();
                    var contact =
                        logic.GetContacts().Where(c => c.Username == m.Contact.Username).SingleOrDefault();
                    userHelper.CreateUser(contact.Id);
                    if (m.UserRoles.Count() > 0)
                    {
                        foreach (var role in m.UserRoles)
                            userHelper.AddUserToRole(contact.Id, role);
                    }

                }
                return RedirectToAction("List");
            }
            else
                return View(m);
        }
 public ActionResult Create()
 {
     var model = new ContactUser
                     {
                         AllRoles = Roles.GetRoles(),
                         Contact = new Contact() {},
                         IsUser = false,
                         UserRoles = new List<string>()
                     };
     return View(model);
 }
 public ActionResult AddUserToRole(int id, string role)
 {
     var logic = new ContactBUS();
     UserHelper.Create().AddUserToRole(id, role);
     var contact = logic.GetContact(id);
     TempData["message"] = String.Format("User Account for {0} has been added to {1} Role", contact.Username, role);
     var model = new ContactUser
     {
         AllRoles = Roles.GetRoles(),
         Contact = contact,
         IsAdmin = true,
         IsUser = true,
         UserRoles = Roles.GetRolesForUser(contact.Username).ToList()
     };
     return View("ListMembershipControls", model);
     //return RedirectToAction("List", new { page = page });
 }
        public ActionResult Edit(ContactUser m)
        {
            m.AllRoles = Roles.GetRoles().ToList();
            if(m.UserRoles == null)
                m.UserRoles = new List<string>();
            var logic = new ContactBUS();
            var exists = Membership.UserExists(m.Contact.Username);
            if (ModelState.IsValid)
            {

                logic.EditContact(m.Contact);
                var userHelper = UserHelper.Create();
                if (m.IsUser && !exists)
                    userHelper.CreateUser(m.Contact.Id);
                else if(!m.IsUser && exists)
                    userHelper.DeleteUser(m.Contact.Id);

                if(m.IsUser)
                {
                    foreach(var role in m.AllRoles)
                    {
                        if(m.UserRoles.Contains(role))
                        {
                            if(!Roles.UserHasRole(m.Contact.Username, role))
                                userHelper.AddUserToRole(m.Contact.Id, role);
                        }
                        if (!m.UserRoles.Contains(role))
                        {
                            if(Roles.UserHasRole(m.Contact.Username, role))
                                userHelper.RemoveUserFromRole(m.Contact.Id, role);
                        }

                    }
                }
                return RedirectToAction("List");
            }
            else
                return View(m);
        }
 public ActionResult Edit(int id)
 {
     var logic = new ContactBUS();
     var contact = logic.GetContact(id);
     var exists = Membership.UserExists(contact.Username);
     var model = new ContactUser
     {
         AllRoles = Roles.GetRoles().ToList(),
         Contact = contact,
         IsUser = exists,
         UserRoles = !exists ? new List<string>() :Roles.GetRolesForUser(contact.Username) .ToList()
     };
     return View(model);
 }
 public ActionResult CreateAccount(int id)
 {
     var logic = new ContactBUS();
     UserHelper.Create().CreateUser(id);
     var contact = logic.GetContact(id);
     TempData["message"] = String.Format("User Account for {0} has been created.", contact.Username);
     var model = new ContactUser
                     {
                         AllRoles = Roles.GetRoles(),
                         Contact = contact,
                         IsAdmin = true,
                         IsUser = true,
                         UserRoles = new List<string>()
                     };
     return View("ListMembershipControls", model);
     //return RedirectToAction("List", new { page = page });
 }