コード例 #1
0
        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);
        }