public void DeleteFriend(UserFriendRequest request, Result result) { try { _unitOfWork.FriendRepo.RemoveFriend(request.UserId, request.FriendId); result.Status = Status.Success.ToString(); result.Message = string.Format("Successfully removed {0} and {1} as friends", request.FriendId, request.UserId); } catch (Exception ex) { result.Status = Status.Error.ToString(); result.Message = string.Format("Error deleting friends {0}. Reason :: {1}", request, ex.Message); } }
public void AddFriend(UserFriendRequest request, Result result) { try { _unitOfWork.FriendRepo.AddFriend(request.UserId, request.FriendId); result.Status = Status.Success.ToString(); result.Message = string.Format("Successfully added {0} and {1} as friends", request.FriendId, request.UserId); } catch (Exception ex) { result.Status = Status.Error.ToString(); result.Message = string.Format("Error adding user {0} as friend of user {1}. Reason :: {2}", request.FriendId, request.UserId, ex.Message); } }
public IEnumerable<UsersConnectionResponse> GetShortestConnection(UserFriendRequest request, Result result) { try { var allPossiblePaths = _unitOfWork.FriendNetworkRepo.GetAllPaths(request.UserId, request.FriendId).ToList(); var allPaths = allPossiblePaths.Select(path => path as IList<UserResponse> ?? path.ToList()).Select(userResponses => new UsersConnectionResponse { Count = userResponses.Count(), Path = string.Join("->", userResponses.Select(each => each.UserName)) }).ToList(); result.Status = Status.Success.ToString(); return allPaths.OrderBy(each=>each.Count); } catch (Exception ex) { result.Status = Status.Error.ToString(); result.Message = string.Format("Error in getting the connection between {0} and {1}. Reason :: {2}", request.UserId, request.FriendId, ex.Message); } return null; }
public Response<IEnumerable<UsersConnectionResponse>> Post(UserFriendRequest request) { return FriendFinderServiceBase.GetResponse(request, (req, result) => _friendsController.GetShortestConnection(request, result)); }
public Response Delete(int userId, int friendId) { var request = new UserFriendRequest { UserId = userId, FriendId = friendId }; return FriendFinderServiceBase.GetResponse(request, (req, result) => _friendsController.DeleteFriend(request, result)); }