示例#1
0
        public void EditBrand(EditBrandRequest editBrandData)
        {
            var validationResult = ValidateThatBrandCanBeEdited(editBrandData);

            if (!validationResult.IsValid)
            {
                throw new RegoValidationException(validationResult);
            }

            var brand = _repository.Brands.Single(x => x.Id == editBrandData.Brand);

            using (var scope = CustomTransactionScope.GetTransactionScope())
            {
                brand.Licensee               = _repository.Licensees.Single(x => x.Id == editBrandData.Licensee);
                brand.Type                   = editBrandData.Type;
                brand.Name                   = editBrandData.Name;
                brand.Code                   = editBrandData.Code;
                brand.Email                  = editBrandData.Email;
                brand.SmsNumber              = editBrandData.SmsNumber;
                brand.WebsiteUrl             = Uri.EscapeUriString(editBrandData.WebsiteUrl);
                brand.EnablePlayerPrefix     = editBrandData.EnablePlayerPrefix;
                brand.PlayerPrefix           = editBrandData.PlayerPrefix;
                brand.PlayerActivationMethod = editBrandData.PlayerActivationMethod;
                brand.InternalAccountsNumber = editBrandData.InternalAccounts;
                brand.TimezoneId             = editBrandData.TimeZoneId;
                brand.Remarks                = editBrandData.Remarks;
                brand.DateUpdated            = DateTimeOffset.Now.ToBrandOffset(brand.TimezoneId);
                brand.UpdatedBy              = _actorInfoProvider.Actor.UserName;

                _repository.SaveChanges();

                _eventBus.Publish(new BrandUpdated
                {
                    Id                   = brand.Id,
                    Code                 = brand.Code,
                    Name                 = brand.Name,
                    Email                = brand.Email,
                    SmsNumber            = brand.SmsNumber,
                    WebsiteUrl           = brand.WebsiteUrl,
                    LicenseeId           = brand.Licensee.Id,
                    LicenseeName         = brand.Licensee.Name,
                    TypeName             = brand.Type.ToString(),
                    Remarks              = brand.Remarks,
                    PlayerPrefix         = brand.PlayerPrefix,
                    TimeZoneId           = brand.TimezoneId,
                    InternalAccountCount = brand.InternalAccountsNumber,
                    EventCreated         = DateTimeOffset.Now.ToBrandOffset(brand.TimezoneId),
                });
                scope.Complete();
            }
        }
示例#2
0
        public EditBrandResponse Edit(EditBrandRequest request)
        {
            VerifyPermission(Permissions.Update, Modules.BrandManager);
            CheckBrand(request.Brand);

            var validationResult = _brandCommands.ValidateThatBrandCanBeEdited(request);

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

            _brandCommands.EditBrand(request);
            return(new EditBrandResponse {
                Success = true
            });
        }
示例#3
0
        public void ThenBrandDataIsSuccessfullyEdited()
        {
            ScenarioContext.Current.Should().ContainKey("brandId");
            var brandId = ScenarioContext.Current.Get <Guid>("brandId");

            ScenarioContext.Current.Should().ContainKey("licenseeId");
            var licenseeId = ScenarioContext.Current.Get <Guid>("licenseeId");

            var          newBrandName            = TestDataGenerator.GetRandomString(20);
            var          newBrandCode            = TestDataGenerator.GetRandomString(20);
            var          newTimeZoneId           = TestDataGenerator.GetRandomTimeZone().Id;
            var          newInternalAccountCount = TestDataGenerator.GetRandomNumber(10, 0);
            const string remarks = "Test updating brand";

            var data = new EditBrandRequest
            {
                Brand = brandId,
                Code  = newBrandCode,
                EnablePlayerPrefix = true,
                InternalAccounts   = newInternalAccountCount,
                Licensee           = licenseeId,
                Name         = newBrandName,
                PlayerPrefix = "AAA",
                TimeZoneId   = newTimeZoneId,
                Type         = BrandType.Deposit,
                Remarks      = remarks,
                Email        = TestDataGenerator.GetRandomEmail(),
                SmsNumber    = TestDataGenerator.GetRandomPhoneNumber(false),
                WebsiteUrl   = TestDataGenerator.GetRandomWebsiteUrl()
            };

            var result = AdminApiProxy.EditBrand(data);

            result.Should().NotBeNull();
            result.Success.Should().BeTrue();
        }
示例#4
0
        public ValidationResult ValidateThatBrandCanBeEdited(EditBrandRequest request)
        {
            var validator = new EditBrandValidator(_repository);

            return(validator.Validate(request));
        }
示例#5
0
 public EditBrandResponse EditBrand(EditBrandRequest request)
 {
     return(WebClient.SecurePostAsJson <EditBrandRequest, EditBrandResponse>(Token, _url + AdminApiRoutes.EditBrand, request));
 }