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);
        }
 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 });
 }
예제 #3
0
        public Dictionary<ContactFriendsStatus, int> FriendsMap(List<string> usernames, ContactSearchParams contactSearchParams)
        {
            var friendsMap = new FriendsBUS().FriendsCount();
            var mapQuery = from c in Contacts
                                        where (contactSearchParams.SelectedUsernameLetters.Count() == 0 || contactSearchParams.SelectedUsernameLetters.Contains(c.Username.Substring(0, 1)))
                                        &&
                                        (contactSearchParams.SelectedUserAccountStatus.Count() == 0 || (usernames.Contains(c.Username) && contactSearchParams.SelectedUserAccountStatus.Contains(ContactUserAccountStatus.UserAccount)) || (!usernames.Contains(c.Username) && contactSearchParams.SelectedUserAccountStatus.Contains(ContactUserAccountStatus.NoUserAccount)))
                                        group c by friendsMap.ContainsKey(c.Id)
                                            into g
                                            select new { HasFriends = g.Key, Count = g.Count() };

            var list = mapQuery.ToList();

            var map = mapQuery.ToDictionary(g => g.HasFriends ? ContactFriendsStatus.HasFriends : ContactFriendsStatus.NoFriends, g => g.Count);
            return map;
        }
        public void Populate()
        {
            var logic = new ContactBUS();
            //var oldContacts = logic.GetContacts();

            var friends = new FriendsBUS();

            friends.Clear();
            logic.Clear();

            //foreach (var contact in oldContacts)
            //{
            //    friends.SetFriends(contact, new List<Contact>());
            //    logic.DeleteContact(contact);
            //}
            var _contacts = new List<Contact>();
            var firstNames = new List<string> {"orticia","tewey","eter", "oe", "arry", "urly", "ert", "rnie", "ard", "ack", "christie","orbus","ill" };
            var lastNames = new List<string> {"riffin", "tevens", "leaver", "rummond", "unster", "etri", "artridge","ith","ein", "ian" };
            var domains = new List<string> { "gmail.com", "yahoo.com", "msn.com", "hotmail.com", "aol.com", "mac.com", "israel.net", "tishabov.us" };

            foreach (var lastName in lastNames)
                foreach (var firstName in firstNames)
                    foreach (var domain in domains)
                    {
                        var first_ltr = RandomLetter();
                        var last_ltr = RandomLetter();
                        var vowel = Vowel();
                        _contacts.Add(new Contact
                                          {
                                              Email = string.Format("{3}{0}_{4}{1}{5}@{2}", firstName, lastName, domain, first_ltr, last_ltr, vowel),
                                              FirstName = String.Format("{0}{1}", first_ltr, firstName),
                                              LastName = String.Format("{0}{1}{2}", last_ltr, lastName, vowel)
                                          });
                    }

            foreach (var contact in _contacts)
            {
                var username = String.Format("{0}{1}", contact.FirstName.Substring(0, 1), contact.LastName);
                var seed = 0;
                while (_contacts.Where(c => String.Equals(c.Username, username, StringComparison.CurrentCultureIgnoreCase)).Any())
                    username = String.Format("{0}{1}", username, new Random((int)DateTime.Now.Ticks*++seed).Next(9));
                contact.Username = username;
            }
            logic.CreateContact(_contacts);
            PopulateFriends();
        }
 void PopulateFriends()
 {
     var friendsBUS = new FriendsBUS();
     var contacts = new ContactBUS().GetContacts();
     foreach(var contact in contacts)
     {
         var numberOfFriends = new Random(Seed++).Next(0, 6);
         var friends = new List<Contact>();
         for(var i = 0 ; i < numberOfFriends; i++)
         {
             var index = new Random(Seed++).Next(0, contacts.Count);
             if(!friends.Contains(contacts[index]) && contacts[index].Id != contact.Id)
                 friends.Add(contacts[index]);
         }
         contact.Friends = friends;
     }
     friendsBUS.SetFriends(contacts);
 }
예제 #6
0
 public void DeleteContact(Contact contact)
 {
     var friendsService = new FriendsBUS();
     friendsService.SetFriends(contact, new List<Contact>());
     _dal.DeleteContact(contact);
 }
예제 #7
0
        public Dictionary<string, int> UsernameMap(List<string> usernames, ContactSearchParams contactSearchParams)
        {
            var friendsMap = new FriendsBUS().FriendsCount();
            var usernameMapResults = from c in Contacts
                                     where (contactSearchParams.SelectedUserAccountStatus.Count() == 0 || (usernames.Contains(c.Username) && contactSearchParams.SelectedUserAccountStatus.Contains(ContactUserAccountStatus.UserAccount)) || (!usernames.Contains(c.Username) && contactSearchParams.SelectedUserAccountStatus.Contains(ContactUserAccountStatus.NoUserAccount)))
                                     &&
                                        (contactSearchParams.SelectedFriendsStatus.Count() == 0 || (friendsMap.Keys.Contains(c.Id) && contactSearchParams.SelectedFriendsStatus.Contains(ContactFriendsStatus.HasFriends)) || (!friendsMap.Keys.Contains(c.Id) && contactSearchParams.SelectedFriendsStatus.Contains(ContactFriendsStatus.NoFriends)))
                                     group c by c.Username.Substring(0, 1).ToUpper()
                                         into g
                                         select new { Letter = g.Key, Count = g.Count() };

            var usernameMap = usernameMapResults.ToDictionary(g => g.Letter, g => g.Count);
            return usernameMap;
        }