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 }); }
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); }
public void DeleteContact(Contact contact) { var friendsService = new FriendsBUS(); friendsService.SetFriends(contact, new List<Contact>()); _dal.DeleteContact(contact); }
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; }