コード例 #1
0
        public async Task <ToggleBonusStatusResponse> ChangeStatus(ToggleBonusStatus model)
        {
            VerifyPermission(Permissions.Activate, Modules.BonusManager);
            VerifyPermission(Permissions.Deactivate, Modules.BonusManager);

            var bonus = await _bonusApiProxy.GetBonusOrNull(model.Id);

            if (bonus != null)
            {
                CheckBrand(bonus.BrandId);
            }

            return(await _bonusApiProxy.ChangeBonusStatusAsync(model));
        }
コード例 #2
0
        public ToggleBonusStatusResponse ChangeStatus(ToggleBonusStatus model)
        {
            var validationResult = _bonusQueries.GetValidationResult(model);

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

            _bonusCommands.ChangeBonusStatus(model);
            return(new ToggleBonusStatusResponse {
                Success = true
            });
        }
コード例 #3
0
        public void ChangeBonusStatus(ToggleBonusStatus model)
        {
            var validationResult = _bonusQueries.GetValidationResult(model);

            if (validationResult.IsValid == false)
            {
                throw new RegoException(validationResult.Errors.First().ErrorMessage);
            }

            var bonusToUpdate = _bonusQueries.GetCurrentVersionBonuses().Single(b => b.Id == model.Id);
            var isActive      = model.IsActive;

            if (bonusToUpdate.IsActive == isActive)
            {
                return;
            }

            bonusToUpdate.IsActive = isActive;
            AddUpdatedBonus(bonusToUpdate);

            if (isActive)
            {
                _eventBus.Publish(new BonusActivated
                {
                    AggregateId  = bonusToUpdate.Id,
                    Remarks      = model.Remarks,
                    EventCreated = bonusToUpdate.UpdatedOn.Value
                });
            }
            else
            {
                _eventBus.Publish(new BonusDeactivated
                {
                    AggregateId  = bonusToUpdate.Id,
                    Remarks      = model.Remarks,
                    EventCreated = bonusToUpdate.UpdatedOn.Value
                });
            }
        }
コード例 #4
0
 public ToggleBonusStatusResponse ChangeBonusStatus(ToggleBonusStatus request)
 {
     return(WebClient.SecurePostAsJson <ToggleBonusStatus, ToggleBonusStatusResponse>(Token, _url + AdminApiRoutes.ChangeBonusStatus, request));
 }
コード例 #5
0
ファイル: ApiProxy.cs プロジェクト: singlag888/aft-regov2
 public Task <ToggleBonusStatusResponse> ChangeBonusStatusAsync(ToggleBonusStatus request)
 {
     return(SecurePostAsJson <ToggleBonusStatus, ToggleBonusStatusResponse>(Routes.ChangeBonusStatus, request));
 }
コード例 #6
0
ファイル: BonusQueries.cs プロジェクト: singlag888/aft-regov2
 public ValidationResult GetValidationResult(ToggleBonusStatus model)
 {
     return(new ToggleBonusStatusValidator(this).Validate(model));
 }