public int AddFriend(string userA, string userB) { int userAId = 0; int userBId = 0; int status = 0; using (var factory = new FriendSuggestorContextFactory()) { // Get a context using (var context = factory.CreateContext()) { userAId = context.Users.Where(a => a.UserName == userA).Select(a => a.UserId).FirstOrDefault(); userBId = context.Users.Where(a => a.UserName == userB).Select(a => a.UserId).FirstOrDefault(); if (userAId != 0 && userBId != 0) { FriendRequest fr1 = context.FriendRequests.Where(a => a.UserId == userAId).FirstOrDefault(); FriendRequest fr2 = context.FriendRequests.Where(a => a.UserId == userBId).FirstOrDefault(); FriendsList fl1 = context.FriendsLists.Where(a => a.UserF == userAId && a.UserSF == userBId).FirstOrDefault(); FriendsList fl2 = context.FriendsLists.Where(a => a.UserF == userBId && a.UserSF == userAId).FirstOrDefault(); if (fl1 == null) { if (fl2 != null) { fl2.IsFriend = true; fr2.PendingRequests = fr2.PendingRequests - 1; fr2.TotalFriends = fr2.TotalFriends + 1; fr1.TotalFriends = fr1.TotalFriends + 1; } else { fl2 = new FriendsList(); fl2.UserF = userAId; fl2.UserSF = userBId; fl2.IsFriend = false; context.FriendsLists.Add(fl2); fr2.PendingRequests = fr2.PendingRequests; } context.SaveChanges(); status = 1; } else { status = 2; } } } } return(status); }