Пример #1
0
        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());
        }
Пример #2
0
        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);
        }