public override async Task <ViewFriendRequestsResponse> ViewFriendRequests(ViewFriendRequestsRequest request, ServerCallContext context)
        {
            RedisUserModel user = context.UserState["user"] as RedisUserModel;

            if (user == null)
            {
                return new ViewFriendRequestsResponse()
                       {
                           Status = ResponseFactory.createResponse(ResponseType.UNAUTHORIZED)
                       }
            }
            ;

            ViewFriendRequestsResponse response = new ViewFriendRequestsResponse();
            List <User> users = (await user.GetFriendRequests()).ConvertAll(input => input.asUser());

            response.IncomingFriends.AddRange(users);
            response.Status = ResponseFactory.createResponse(ResponseType.SUCCESS);
            return(response);
        }
        public override async Task <ViewFriendRequestsResponse> ViewFriendRequests(ViewFriendRequestsRequest request, ServerCallContext context)
        {
            DbUserModel dbUserModel = context.UserState["user"] as DbUserModel;

            if (dbUserModel == null)
            {
                return new ViewFriendRequestsResponse()
                       {
                           Status = ResponseFactory.createResponse(ResponseType.UNAUTHORIZED)
                       }
            }
            ;

            ViewFriendRequestsResponse response = new ViewFriendRequestsResponse();
            var friendRequests = await Task.WhenAll(
                (await dbUserModel.GetFriendRequests())
                .Select(async it => (await DbUserModel.GetUserFromGuid(it.FriendId)).AsUser())
                );

            response.IncomingFriends.AddRange(friendRequests);
            response.Status = ResponseFactory.createResponse(ResponseType.SUCCESS);
            return(response);
        }