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))); })); }
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))); }
public async Task <ServerResponse <bool> > UpdateFriendRequestAsync(long personId, [FromBody] EFriendRequestFlag eFriendRequestFlag) { return(await _friendService.UpdateFriendRequestAsync(AccountId, personId, eFriendRequestFlag)); }
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)); })); }
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); })); }