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)))); }
public static RemoveService Map( RemoveServiceRequest message) => new RemoveService( new DomainName( new SecondLevelDomain(message.SecondLevelDomain), TopLevelDomain.FromValue(message.TopLevelDomain)), new ServiceId(message.ServiceId.Value));
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)))); }
public static CreateDomain Map( CreateDomainRequest message) => new CreateDomain( new DomainName( new SecondLevelDomain(message.SecondLevelDomain), TopLevelDomain.FromValue(message.TopLevelDomain)));
private void When(DomainWasCreated @event) { _name = new DomainName( new SecondLevelDomain(@event.SecondLevelDomain), TopLevelDomain.FromValue(@event.TopLevelDomain)); }
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); }