コード例 #1
0
        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);
        }
コード例 #2
0
        public ActionResult Index(FacetContactViewModel model)
        {
            if(model.ContactSearchParams == null)
                model.ContactSearchParams = new ContactSearchParams();
            var logic = new ContactBUS();
            var usernames = Membership.GetAllUsers().Cast<MembershipUser>().Select(m=>m.UserName).ToList();

            model.UsernameMap = logic.UsernameMap(usernames, model.ContactSearchParams);

            model.UserAccountMap = logic.UserAccountMap(usernames, model.ContactSearchParams);

            model.FriendsMap = logic.FriendsMap(usernames, model.ContactSearchParams);

            model.FriendsCount = new FriendsBUS().FriendsCount();

            var results = from c in logic.Contacts
                          where
                              (model.ContactSearchParams.SelectedUserAccountStatus.Count() == 0 ||
                              (usernames.Contains(c.Username) &&
                               model.ContactSearchParams.SelectedUserAccountStatus.Contains(ContactUserAccountStatus.UserAccount)) ||
                              (!usernames.Contains(c.Username) &&
                               model.ContactSearchParams.SelectedUserAccountStatus.Contains(ContactUserAccountStatus.NoUserAccount)))
                               &&
                               (
                               model.ContactSearchParams.SelectedUsernameLetters.Count() == 0 || model.ContactSearchParams.SelectedUsernameLetters.Contains(c.Username.Substring(0, 1))
                               )
                               &&
                                        (model.ContactSearchParams.SelectedFriendsStatus.Count() == 0 || (c.Friends.Count > 0 && model.ContactSearchParams.SelectedFriendsStatus.Contains(ContactFriendsStatus.HasFriends)) || (c.Friends.Count == 0 && model.ContactSearchParams.SelectedFriendsStatus.Contains(ContactFriendsStatus.NoFriends)))
                          select c;
            model.Contacts = results.ToList();
            return View(model);
        }
コード例 #3
0
 public ActionResult Search(string username, string term)
 {
     var contacts = new ContactBUS().GetContacts(term);
     return new JsonResult()
                {
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                    Data = contacts.Select(c=>new{id=c.Id, label=c.Username})
                };
 }
コード例 #4
0
 //
 // GET: /AlphaContact/
 public ActionResult Index(string alpha)
 {
     var logic = new ContactBUS();
     var model = new ContactListAlphaViewModel();
     var dictionary = logic.GetContacts().GroupBy(g => g.Username.Substring(0, 1).ToUpper()).ToDictionary(g => g.Key, g => g.Count());
     foreach (var key in dictionary.Keys)
         model.LetterDictionary[key] = dictionary[key];
     model.Contacts = logic.GetContacts().Where(c => c.Username.ToUpper().StartsWith(alpha)).ToList();
     model.SelectedLetter = alpha;
     return View(model);
 }
コード例 #5
0
        public ActionResult Index(string username)
        {
            var contact =
                new ContactBUS().GetContacts().Where(
                    c => c.Username.ToLower() == username.ToLower()).SingleOrDefault();
            var friends = new List<Contact>();
            if (contact != null)
                friends = new FriendsBUS().GetFriends(contact);

            var model = new FriendsListViewModel {You = contact, YourFriends = friends};
            return View(model);
        }
コード例 #6
0
 public ActionResult AddFriend(string username, int contactId)
 {
     var contact =
         new ContactBUS().GetContacts().Where(
             c => c.Username.ToLower() == username.ToLower()).SingleOrDefault();
     var friends = new List<Contact>();
     if (contact != null)
     {
         friends = new FriendsBUS().GetFriends(contact);
         friends.Add(new ContactBUS().GetContact(contactId));
         new FriendsBUS().SetFriends(contact, friends);
     }
     return RedirectToAction("Index", new { username = username });
 }
コード例 #7
0
        public ActionResult Edit(int id)
        {
            var contactLogic = new ContactBUS();
            var model = new FriendEditViewModel
                            {
                                Contact = contactLogic.GetContact(id)
                            };
            var friendIds = model.Contact.Friends.Select(f => f.Id).ToList();
            friendIds.Add(id);//can't add friend to himself.
            model.ContactsSelectListItems =
                contactLogic.Contacts.Where(c => !friendIds.Contains(c.Id)).Select(
                    c => new SelectListItem {Text = c.FullName, Value = c.Id.ToString()}).ToList().OrderBy(item => item.Text).ToList();


            return View(model);
        }
コード例 #8
0
 public ActionResult AddMultiple(AddMultipleViewModel model)
 {
     if (this.ModelState.IsValid)
     {
         var logic = new ContactBUS();
         foreach (var contact in model.Contacts)
         {
             logic.CreateContact(contact);
         }
         TempData["model"] = model;
         return RedirectToAction("Confirmation");
     }
     else
     {
         return View(model);
     }
 }
コード例 #9
0
 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 });
 }
コード例 #10
0
        public ActionResult Knockout(AddMultipleViewModel model)
        {
            var errors = new Dictionary<string, ModelErrorCollection>();
            foreach(var key in this.ModelState.Keys)
                errors.Add(key, this.ModelState[key].Errors);

            this.ViewData["Errors"] = errors;

            if(this.ModelState.IsValid)
            {
                var logic = new ContactBUS();
                foreach(var contact in model.Contacts)
                    logic.CreateContact(contact);
                TempData["model"] = model;
                return RedirectToAction("Confirmation");
            }
            return View(model);
        }
コード例 #11
0
 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 });
 }
コード例 #12
0
        public ActionResult Grid(GridSortOptions gridSortOptions, int? page)
        {
            var logic = new ContactBUS();
            var contacts = logic.GetContacts().AsQueryable();
            if (string.IsNullOrEmpty(gridSortOptions.Column))
                gridSortOptions.Column = "FirstName";

            var contactPagedList = contacts
                .OrderBy(gridSortOptions.Column, gridSortOptions.Direction)
                .AsPagination(page ?? 1, 10);

            var model = new ContactGridModel
                            {
                                ContactPagedList = contactPagedList,
                                GridSortOptions = gridSortOptions
                            };

            return View(model);
        }
コード例 #13
0
 public ActionResult Delete(Contact contact)
 {
     var logic = new ContactBUS();
     logic.DeleteContact(contact);
     return RedirectToAction("List");
 }
コード例 #14
0
 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);
 }
コード例 #15
0
 public ActionResult Edit(int id)
 {
     var contactLogic = new ContactBUS();
     var contact = contactLogic.GetContact(id);
     return View(contact);
 }
コード例 #16
0
        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);
        }
コード例 #17
0
        public ActionResult List(int page = 1)
        {
            var logic = new ContactBUS();
            var pageSize = 50;

            var contacts = logic.GetContacts().Skip((page - 1)*pageSize).Take(pageSize).ToList();
            var model = new ContactListViewModel();
            model.AllRoles = Roles.GetRoles();
            model.IsAdmin = Roles.UserHasRole("Admin");
            foreach(var contact in contacts)
            {
                if(Membership.UserExists(contact.Username))
                    model.UserNameRoles.Add(contact.Username.ToLower(), Roles.GetRolesForUser(contact.Username).ToList());

            }

            model.Contacts = contacts;
            model.CurrentPage = page;
            model.MaxPages = (int) Math.Ceiling(logic.GetContactsCount()/(double) pageSize);

            return View(model);
        }