Пример #1
0
        public async Task <IActionResult> Delete(Guid tokenId)
        {
            var command = new DeleteRefreshTokenCommand(tokenId);
            var result  = await _messageDispatcher.Execute(command);

            return(result.Succeeded ? (IActionResult)Ok() : BadRequest("Token Id does not exist"));
        }
Пример #2
0
        public async Task <CustodialReport> Handle(RunCustodialTasksCommand request, CancellationToken cancellationToken)
        {
            var timer = new Stopwatch();

            timer.Start();

            var report = new CustodialReport();

            #region Delete Expired Invitations

            var expiredInvitationsQuery = new GetExpiredInvitationsQuery();

            var expiredInvitationsCount     = 0;
            var processNextInvitationsBatch = true;

            while (processNextInvitationsBatch)
            {
                var result = await _mediator.Send(expiredInvitationsQuery);

                if (result.Count > 0)
                {
                    expiredInvitationsCount = expiredInvitationsCount + result.Count;

                    foreach (var id in result.Ids)
                    {
                        var deleteInvitationCommand = new DeleteInvitationCommand {
                            Id = id
                        };
                        var deleteResult = await _mediator.Send(deleteInvitationCommand);

                        report.TaskLog.Add(String.Concat("Expired invitation deleted. Id: ", id));
                    }
                    processNextInvitationsBatch = result.HasMoreResults;
                }
                else
                {
                    processNextInvitationsBatch = false;
                }
            }

            #endregion

            #region Delete Expired RefreshTokens

            var expiredRefreshTokensQuery = new GetExpiredRefreshTokensQuery();

            var expiredRefreshTokensCount     = 0;
            var processNextRefreshTokensBatch = true;

            while (processNextRefreshTokensBatch)
            {
                var result = await _mediator.Send(expiredRefreshTokensQuery);

                if (result.Count > 0)
                {
                    expiredRefreshTokensCount = expiredRefreshTokensCount + result.Count;

                    foreach (var id in result.Ids)
                    {
                        var deleteDeleteRefeshTokenCommand = new DeleteRefreshTokenCommand {
                            Id = id
                        };
                        var deleteResult = await _mediator.Send(deleteDeleteRefeshTokenCommand);

                        report.TaskLog.Add(String.Concat("Expired refresh token deleted. Id: ", id));
                    }
                    processNextRefreshTokensBatch = result.HasMoreResults;
                }
                else
                {
                    processNextRefreshTokensBatch = false;
                }
            }

            #endregion

            #region Update Cache(s)



            #endregion

            timer.Stop();

            report.TaskCount = report.TaskLog.Count;
            report.isSuccess = true;
            report.Duration  = timer.ElapsedMilliseconds;
            report.Message   = String.Concat("Tasks completed in ", timer.ElapsedMilliseconds, " milliseconds");

            Log.Information("Custodial tasks completed {@report}", report);

            return(report);
        }
Пример #3
0
        public async Task <IActionResult> Logout(DeleteRefreshTokenCommand deleteRefreshTokenCommand)
        {
            await _commandBus.Send(deleteRefreshTokenCommand);

            return(Ok());
        }