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(); } }
public Task <IssueBonusResponse> IssueBonus(IssueBonusByCs model) { var player = _playerQueries.GetPlayer(model.PlayerId); CheckBrand(player.BrandId); return(_bonusApiProxy.IssueBonusAsync(model)); }
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 }); }
public IssueBonusResponse IssueBonus(IssueBonusByCs request) { return(WebClient.SecurePostAsJson <IssueBonusByCs, IssueBonusResponse>(Token, _url + AdminApiRoutes.IssueBonus, request)); }
public Task <IssueBonusResponse> IssueBonusAsync(IssueBonusByCs request) { return(SecurePostAsJson <IssueBonusByCs, IssueBonusResponse>(Routes.IssueBonus, request)); }
//Validation calls public ValidationResult GetValidationResult(IssueBonusByCs model) { return(new IssueByCsValidator(this, _repository, _brandOperations).Validate(model)); }