コード例 #1
0
        public async Task <CommandHandlingResult> Handle(GeneratePasswordResetTokenCommand cmd,
                                                         IEventPublisher publisher)
        {
            ResetPasswordAccessToken token = await _accessTokenService.CreateAsync(cmd.EmployeeId, cmd.MerchantId);

            _chaosKitty.Meow("Issue with Azure repository when creating reset password token");

            string resetPasswordUrl = string.Format(_resetPasswordUrlTemplate, token.PublicId);

            if (cmd.IsNewEmployee)
            {
                publisher.PublishEvent(new EmployeeRegistrationCompletedEvent
                {
                    Id = token.EmployeeId,
                    ResetPasswordUrl = resetPasswordUrl
                });
            }
            else
            {
                publisher.PublishEvent(new EmployeeUpdateCompletedEvent
                {
                    Id = token.EmployeeId,
                    ResetPasswordUrl = resetPasswordUrl
                });
            }

            _chaosKitty.Meow("Issue with RabbitMq publishing EmployeeRegistrationCompletedEvent and EmployeeUpdateCompletedEvent");

            return(CommandHandlingResult.Ok());
        }
コード例 #2
0
        public async Task <IActionResult> Create([FromBody] CreateResetPasswordTokenRequest request)
        {
            try
            {
                ResetPasswordAccessToken token =
                    await _accessTokenService.CreateAsync(request.EmployeeId, request.MerchantId);

                return(Ok(Mapper.Map <ResetPasswordAccessTokenResponse>(token)));
            }
            catch (DuplicateKeyException e)
            {
                _log.Error(e, $"{e.Message}, request: {request.ToJson()}");

                return(BadRequest(ErrorResponse.Create(e.Message)));
            }
        }