public async Task <IActionResult> AddGoogleSuiteService(
            [FromServices] ICommandHandlerResolver bus,
            [FromServices] ApiProjectionsContext context,
            [FromCommandId] Guid commandId,
            [FromRoute] string secondLevelDomain,
            [FromRoute] string topLevelDomain,
            [FromBody] AddGoogleSuiteServiceRequest request,
            CancellationToken cancellationToken = default)
        {
            if (request != null)
            {
                request.SecondLevelDomain = secondLevelDomain;
                request.TopLevelDomain    = topLevelDomain;
            }

            // TODO: We can check in the eventstore if those aggregates even exist
            await new AddGoogleSuiteServiceRequestValidator()
            .ValidateAndThrowAsync(request, cancellationToken: cancellationToken);

            var command = AddGoogleSuiteServiceRequestMapping.Map(
                new DomainName(
                    new SecondLevelDomain(secondLevelDomain),
                    TopLevelDomain.FromValue(topLevelDomain)),
                request);

            return(Accepted(
                       $"/v1/domains/{command.DomainName}/services/{command.ServiceId}",
                       new LastObservedPositionResponse(
                           await bus.Dispatch(
                               commandId,
                               command,
                               GetMetadata(),
                               cancellationToken))));
        }
Example #2
0
 public static RemoveService Map(
     RemoveServiceRequest message)
 => new RemoveService(
     new DomainName(
         new SecondLevelDomain(message.SecondLevelDomain),
         TopLevelDomain.FromValue(message.TopLevelDomain)),
     new ServiceId(message.ServiceId.Value));
Example #3
0
        public void Configure(EntityTypeBuilder <ServiceDetail> b)
        {
            b.ToTable(TableName, Schema.Api)
            .HasKey(x => x.ServiceId)
            .ForSqlServerIsClustered();

            b.Property(x => x.Type)
            .HasMaxLength(ServiceType.GetAll().Max(x => x.Value.Length) * 2);

            b.Property(x => x.Label)
            .HasMaxLength(ServiceLabel.MaxLength);

            b.Property(x => x.ServiceData);

            b.Property(x => x.Domain)
            .HasMaxLength(SecondLevelDomain.MaxLength + (TopLevelDomain.GetAll().Max(x => x.Value.Length) * 2));
        }
Example #4
0
        public async Task should_create_a_correct_command()
        {
            var request = new CreateDomainRequest
            {
                SecondLevelDomain = "exira",
                TopLevelDomain    = "com"
            };

            var commands = await Post("/v1/domains", request);

            Assert.True(commands.Count == 1);

            commands[0].IsEqual(
                new CreateDomain(
                    new DomainName(
                        new SecondLevelDomain(request.SecondLevelDomain),
                        TopLevelDomain.FromValue(request.TopLevelDomain))));
        }
Example #5
0
        private void BindTopLevelDomainData()
        {
            TopLevelDomain tld = StorehouseHelper.GetTopLevelDomain(ecPanelRequest.ProductId);

            if (tld == null)
            {
                RedirectToBrowsePage();
            }

            txtDomainTLD.Text = tld.ProductName;
            ecUtils.SelectListItem(ddlTLDRegistrar, tld.PluginId);
            txtProductSku.Text         = tld.ProductSku;
            chkTaxInclusive.Checked    = tld.TaxInclusive;
            rblTLDStatus.SelectedIndex = (tld.Enabled) ? 0 : 1;
            chkWhoisEnabled.Checked    = tld.WhoisEnabled;

            // load cycles
            ctlBillingCycles.LoadDomainNameCycles(
                StorehouseHelper.GetTopLevelDomainCycles(ecPanelRequest.ProductId));
        }
Example #6
0
 public static CreateDomain Map(
     CreateDomainRequest message)
 => new CreateDomain(
     new DomainName(
         new SecondLevelDomain(message.SecondLevelDomain),
         TopLevelDomain.FromValue(message.TopLevelDomain)));
Example #7
0
 public static void CustomizeTopLevelDomain(this IFixture fixture) =>
 fixture.Customize <TopLevelDomain>(composer =>
                                    composer.FromFactory <int>(value => TopLevelDomain.GetAll()[value % TopLevelDomain.GetAll().Length]));
Example #8
0
 private void When(DomainWasCreated @event)
 {
     _name = new DomainName(
         new SecondLevelDomain(@event.SecondLevelDomain),
         TopLevelDomain.FromValue(@event.TopLevelDomain));
 }
Example #9
0
        public void domain_must_be_valid(string secondLevelDomain, string topLevelDomain)
        {
            void ValidDomain() => new DomainName(new SecondLevelDomain(secondLevelDomain), TopLevelDomain.FromValue(topLevelDomain));

            var ex = Record.Exception(ValidDomain);

            Assert.Null(ex);
        }