コード例 #1
0
        public void IssueBonusByCs(IssueBonusByCs model)
        {
            using (var scope = CustomTransactionScope.GetTransactionScope())
            {
                var validationResult = _bonusQueries.GetValidationResult(model);
                if (validationResult.IsValid == false)
                {
                    throw new RegoException(validationResult.Errors.First().ErrorMessage);
                }

                var transaction =
                    _repository.Players.Single(p => p.Id == model.PlayerId)
                    .Wallets.SelectMany(w => w.Transactions)
                    .Single(t => t.Id == model.TransactionId);
                var redemptionParams = new RedemptionParams
                {
                    IsIssuedByCs   = true,
                    TransferAmount = transaction.TotalAmount
                };
                var redemption = RedeemBonus(model.PlayerId, model.BonusId, redemptionParams);
                ProcessBonusRedemptionLifecycle(redemption);
                _repository.SaveChanges();

                redemption.Events.ForEach(_eventBus.Publish);
                scope.Complete();
            }
        }
コード例 #2
0
        public Task <IssueBonusResponse> IssueBonus(IssueBonusByCs model)
        {
            var player = _playerQueries.GetPlayer(model.PlayerId);

            CheckBrand(player.BrandId);

            return(_bonusApiProxy.IssueBonusAsync(model));
        }
コード例 #3
0
        public IssueBonusResponse IssueBonus(IssueBonusByCs model)
        {
            var validationResult = _bonusQueries.GetValidationResult(model);

            if (!validationResult.IsValid)
            {
                return(ValidationErrorResponse <IssueBonusResponse>(validationResult));
            }

            _bonusCommands.IssueBonusByCs(model);
            return(new IssueBonusResponse {
                Success = true
            });
        }
コード例 #4
0
 public IssueBonusResponse IssueBonus(IssueBonusByCs request)
 {
     return(WebClient.SecurePostAsJson <IssueBonusByCs, IssueBonusResponse>(Token, _url + AdminApiRoutes.IssueBonus, request));
 }
コード例 #5
0
ファイル: ApiProxy.cs プロジェクト: singlag888/aft-regov2
 public Task <IssueBonusResponse> IssueBonusAsync(IssueBonusByCs request)
 {
     return(SecurePostAsJson <IssueBonusByCs, IssueBonusResponse>(Routes.IssueBonus, request));
 }
コード例 #6
0
ファイル: BonusQueries.cs プロジェクト: singlag888/aft-regov2
 //Validation calls
 public ValidationResult GetValidationResult(IssueBonusByCs model)
 {
     return(new IssueByCsValidator(this, _repository, _brandOperations).Validate(model));
 }