public void Enable(PaymentSettingsId id, string remarks)
        {
            var paymentSettings = _repository.PaymentSettings
                                  .Single(x => x.Id == id);
            //TODO:AFTREGO-4143:should be mvoe to Validator
            bool isTheSameSettingsActivated;

            if (paymentSettings.PaymentGatewayMethod == PaymentMethod.Online)
            {
                isTheSameSettingsActivated = _paymentQueries.GetOnlinePaymentSettings(
                    paymentSettings.BrandId, paymentSettings.PaymentType,
                    paymentSettings.VipLevel, paymentSettings.PaymentMethod,
                    paymentSettings.CurrencyCode) != null;
            }
            else
            {
                isTheSameSettingsActivated = _paymentQueries.GetOfflinePaymentSettings(
                    paymentSettings.BrandId, paymentSettings.PaymentType,
                    paymentSettings.VipLevel, paymentSettings.CurrencyCode) != null;
            }
            if (isTheSameSettingsActivated)
            {
                throw new RegoException(PaymentSettingsErrors.TheSameSettingsActivated.ToString());
            }

            paymentSettings.Enabled     = Status.Active;
            paymentSettings.EnabledDate = DateTime.Now;
            paymentSettings.EnabledBy   = _actorInfoProvider.Actor.UserName;
            _repository.SaveChanges();

            _eventBus.Publish(new PaymentSettingActivated
            {
                Id            = paymentSettings.Id,
                ActivatedBy   = paymentSettings.UpdatedBy,
                ActivatedDate = paymentSettings.EnabledDate.GetValueOrDefault(),
                VipLevel      = paymentSettings.VipLevel,
                CurrencyCode  = paymentSettings.CurrencyCode,
                BrandId       = paymentSettings.BrandId,
                Remarks       = remarks
            });
        }
        public void Disable(PaymentSettingsId id, string remarks)
        {
            var paymentSettings = _repository.PaymentSettings
                                  .Single(x => x.Id == id);

            paymentSettings.Enabled      = Status.Inactive;
            paymentSettings.DisabledDate = DateTime.Now;
            paymentSettings.DisabledBy   = _actorInfoProvider.Actor.UserName;
            _repository.SaveChanges();

            _eventBus.Publish(new PaymentSettingDeactivated
            {
                Id              = paymentSettings.Id,
                DeactivatedBy   = paymentSettings.UpdatedBy,
                DeactivatedDate = paymentSettings.DisabledDate.GetValueOrDefault(),
                VipLevel        = paymentSettings.VipLevel,
                CurrencyCode    = paymentSettings.CurrencyCode,
                BrandId         = paymentSettings.BrandId,
                Remarks         = remarks
            });
        }