public async Task <RuntimeResult> ShowKinkOverlap(IUser otherUser) { var getUserKinksResult = await _kinks.GetUserKinksAsync(this.Context.User); if (!getUserKinksResult.IsSuccess) { return(getUserKinksResult.ToRuntimeResult()); } var userKinks = getUserKinksResult.Entity; var getOtherUserKinksResult = await _kinks.GetUserKinksAsync(otherUser); if (!getOtherUserKinksResult.IsSuccess) { return(getOtherUserKinksResult.ToRuntimeResult()); } var otherUserKinks = getOtherUserKinksResult.Entity; var overlap = userKinks.Intersect(otherUserKinks, new UserKinkOverlapEqualityComparer()).ToList(); if (!overlap.Any()) { return(RuntimeCommandResult.FromSuccess("You don't overlap anywhere.")); } var kinkOverlapPages = _kinks.BuildKinkOverlapEmbeds(this.Context.User, otherUser, overlap); var paginatedMessage = new PaginatedEmbed(_feedback, _interactivity, this.Context.User) .WithPages(kinkOverlapPages); await _interactivity.SendPrivateInteractiveMessageAsync(this.Context, _feedback, paginatedMessage); return(RuntimeCommandResult.FromSuccess()); }
public async Task ShowKinkOverlap([NotNull] IUser otherUser) { var getUserKinksResult = await _kinks.GetUserKinksAsync(this.Context.User); if (!getUserKinksResult.IsSuccess) { await _feedback.SendErrorAsync(this.Context, getUserKinksResult.ErrorReason); return; } var userKinks = getUserKinksResult.Entity; var getOtherUserKinksResult = await _kinks.GetUserKinksAsync(otherUser); if (!getOtherUserKinksResult.IsSuccess) { await _feedback.SendErrorAsync(this.Context, getOtherUserKinksResult.ErrorReason); return; } var otherUserKinks = getOtherUserKinksResult.Entity; var overlap = userKinks.Intersect(otherUserKinks, new UserKinkOverlapEqualityComparer()).ToList(); if (!overlap.Any()) { await _feedback.SendErrorAsync(this.Context, "You don't overlap anywhere."); return; } var kinkOverlapPages = _kinks.BuildKinkOverlapEmbeds(this.Context.User, otherUser, overlap); var paginatedMessage = new PaginatedEmbed(_feedback, this.Context.User).WithPages(kinkOverlapPages); await _interactivity.SendPrivateInteractiveMessageAsync(this.Context, _feedback, paginatedMessage); }