public static List <FriendView> GetFriendViewByType(ApplicationDbContext db, Guid appUserId, LevelEnum type) { List <FriendView> list = new List <FriendView>(); List <Friend> friendList = null; //Depending on type passed through will depend on what level of friends we are collecting switch (type) { case LevelEnum.User: friendList = FriendHelpers.GetFriendsCreatedByUser(db, appUserId); break; case LevelEnum.Branch: friendList = FriendHelpers.GetFriendsCreatedByUserBranches(db, appUserId); break; case LevelEnum.Company: friendList = FriendHelpers.GetFriendsCreatedByUserCompany(db, appUserId); break; } foreach (Friend friend in friendList) { //get the user/branch/company names depending on the block type string nameBy = ""; string nameOn = ""; switch (friend.Type) { case LevelEnum.User: nameBy = AppUserHelpers.GetAppUserName(db, friend.RequestedById); nameOn = AppUserHelpers.GetAppUserName(db, friend.RequestedOfId); break; case LevelEnum.Branch: nameBy = BranchHelpers.GetBranchNameTownPostCode(db, friend.RequestedById); nameOn = BranchHelpers.GetBranchNameTownPostCode(db, friend.RequestedOfId); break; case LevelEnum.Company: nameBy = CompanyHelpers.GetCompanyNameTownPostCode(db, friend.RequestedById); nameOn = CompanyHelpers.GetCompanyNameTownPostCode(db, friend.RequestedOfId); break; } string friendedByUserName = AppUserHelpers.GetAppUserName(db, friend.RequestedByUserId); bool friendedByLoggedInUser = false; if (friend.RequestedByUserId == appUserId) { friendedByLoggedInUser = true; } FriendView view = new FriendView() { FriendId = friend.FriendId, Type = friend.Type, RequestedByName = nameBy, RequestedByUserName = friendedByUserName, RequestedOfName = nameOn, Status = friend.Status, RequestedOn = friend.RequestedOn, AccceptedOn = friend.AccceptedOn, RejectedOn = friend.RequestedOn, ClosedOn = friend.ClosedOn, ClosedBy = friend.ClosedBy, FriendedByLoggedInUser = friendedByLoggedInUser }; list.Add(view); } return(list); }