public async Task DeleteRelationAsync(Guid firstUser, Guid secondUser) { _logger.LogDebug("Trying to remove users: {firstUser} and {secondUser} relation.", firstUser, secondUser); if (firstUser == Guid.Empty || secondUser == Guid.Empty) { throw new ArgumentNullException(nameof(Guid)); } try { List <FriendsRelation> relationFromRepo = _friendsRelationRepository.Get(x => x.FriendId == firstUser && x.UserId == secondUser || x.FriendId == secondUser && x.UserId == firstUser) .ToList(); FriendsRelation relationToRemove = null; if (relationFromRepo.Count > 0) { relationToRemove = relationFromRepo.ElementAt(0); } if (relationToRemove != null) { _friendsRelationRepository.Remove(relationToRemove); await _friendsRelationRepository.SaveAsync(); _logger.LogDebug("Users relation: {firstUser} and {secondUser} has been removed.", firstUser, secondUser); } } catch (Exception ex) { _logger.LogError(ex, "Error occured during removing the relation."); throw; } }
private ElanUser GetFriendUser(FriendsRelation relation, ElanUser user) { if (relation.FirstUser.Id == user.Id) { return(relation.SecondUser); } return(relation.FirstUser); }
public async Task <FriendsRelation> CreateRelation(ElanUser firstUser, ElanUser secondUser) { var relation = new FriendsRelation { FirstUserId = firstUser.Id, SecondUserId = secondUser.Id, CreatedDate = DateTime.UtcNow }; await _dataService.GetSet <FriendsRelation>().AddAsync(relation); await _dataService.SaveDbAsync(); return(relation); }
public bool CheckIfAreFriends(Guid firstUser, Guid secondUser) { _logger.LogDebug("Trying to check users: {firstUser} and {secondUser} relation exist.", firstUser, secondUser); if (firstUser == Guid.Empty || secondUser == Guid.Empty) { throw new ArgumentNullException(nameof(Guid)); } try { FriendsRelation relation = _friendsRelationRepository.GetById(new { firstUser, secondUser }); return(relation != null); } catch (Exception ex) { _logger.LogError(ex, "Error occured during checking the relation."); throw; } }