Esempio n. 1
0
        public async Task <ServerResponse <List <FriendViewModel> > > GetFriendsByRequestFlag(
            long accountId, EFriendRequestFlag eFriendRequestFlag, FriendFilterRequest friendFilterRequest)
        {
            return(await BaseInvokeAsync(async() =>
            {
                var friends = DbContext.Friends
                              .Include(x => x.RequestedBy)
                              .Include(x => x.RequestedTo)
                              .Where(x =>
                                     (x.RequestedById == accountId || x.RequestedToId == accountId) &&
                                     x.FriendRequestFlag == eFriendRequestFlag);

                friends = FilterFriends(friends, accountId, friendFilterRequest);

                friends = friends.OrderByDescending(x => x.RequestTime);

                friends = FetchItems(friends, friendFilterRequest);

                return await Task.FromResult(ServerResponseBuilder.Build(friends.MapFriendsToViewModels(accountId)));
            }));
        }
Esempio n. 2
0
        public async Task <ServerResponse <bool> > UpdateFriendRequestAsync(long accountId, long personId, EFriendRequestFlag eFriendRequestFlag)
        {
            return(await BaseInvokeAsync(async() =>
            {
                var friend = DbContext.Friends.FirstOrDefault(x =>
                                                              (x.RequestedById == accountId && x.RequestedToId == personId) ||
                                                              (x.RequestedById == personId && x.RequestedToId == accountId));

                if (friend == null)
                {
                    throw new NotFoundException(Constants.Errors.FriendNotExists);
                }

                if (Constants.FriendRequestFlagsWithErrors.ContainsKey(friend.FriendRequestFlag))
                {
                    throw new ConflictException(Constants.FriendRequestFlagsWithErrors[friend.FriendRequestFlag]);
                }

                friend.FriendRequestFlag = eFriendRequestFlag;
                friend.BecameFriendsTime = eFriendRequestFlag == EFriendRequestFlag.Approved ? (DateTime?)DateTime.Now : null;

                await DbContext.SaveChangesAsync();

                return ServerResponseBuilder.Build(true);
            }));
        }
 public async Task <ServerResponse> UpdateFriendRequestAsync(int personId, [FromBody] EFriendRequestFlag eFriendRequestFlag)
 {
     return(AOResultToServerResponse(await _friendService.UpdateFriendRequestAsync(AccountId, personId, eFriendRequestFlag)));
 }
Esempio n. 4
0
 public async Task <ServerResponse <bool> > UpdateFriendRequestAsync(long personId, [FromBody] EFriendRequestFlag eFriendRequestFlag)
 {
     return(await _friendService.UpdateFriendRequestAsync(AccountId, personId, eFriendRequestFlag));
 }
Esempio n. 5
0
        public async Task <AOResult <List <FriendViewModel> > > GetFriendsByRequestFlag(int accountId, EFriendRequestFlag eFriendRequestFlag, FriendFilterRequest friendFilterRequest)
        {
            return(await BaseInvokeAsync(async() =>
            {
                var friends = _myHelperDbContext.Friends
                              .Include(x => x.RequestedBy)
                              .Include(x => x.RequestedTo)
                              .Where(x =>
                                     (x.RequestedById == accountId || x.RequestedToId == accountId) &&
                                     x.FriendRequestFlag == eFriendRequestFlag);

                friends = FilterFriends(friends, accountId, friendFilterRequest);

                friends = FetchItems(friends, friendFilterRequest);

                return AOBuilder.SetSuccess(friends.MapFriendsToViewModels(accountId));
            }));
        }
Esempio n. 6
0
        public async Task <AOResult> UpdateFriendRequestAsync(int accountId, int personId, EFriendRequestFlag eFriendRequestFlag)
        {
            return(await BaseInvokeAsync(async() =>
            {
                var friend = _myHelperDbContext.Friends.FirstOrDefault(x =>
                                                                       (x.RequestedById == accountId && x.RequestedToId == personId) ||
                                                                       (x.RequestedById == personId && x.RequestedToId == accountId));

                if (friend != null)
                {
                    if (friend.FriendRequestFlag == EFriendRequestFlag.Approved)
                    {
                        return AOBuilder.SetError(Constants.Errors.FriendAlreadyApproved);
                    }
                    if (friend.FriendRequestFlag == EFriendRequestFlag.Rejected)
                    {
                        return AOBuilder.SetError(Constants.Errors.FriendAlreadyRejected);
                    }
                    if (friend.FriendRequestFlag == EFriendRequestFlag.Blocked)
                    {
                        return AOBuilder.SetError(Constants.Errors.FriendAlreadyBlocked);
                    }
                    if (friend.FriendRequestFlag == EFriendRequestFlag.Spam)
                    {
                        return AOBuilder.SetError(Constants.Errors.FriendAlreadySpamed);
                    }

                    friend.FriendRequestFlag = eFriendRequestFlag;
                    if (eFriendRequestFlag == EFriendRequestFlag.Approved)
                    {
                        friend.BecameFriendsTime = DateTime.Now;
                    }
                    else
                    {
                        friend.BecameFriendsTime = null;
                    }

                    await _myHelperDbContext.SaveChangesAsync();

                    return AOBuilder.SetSuccess();
                }

                return AOBuilder.SetError(Constants.Errors.FriendNotExists);
            }));
        }