public async Task <IActionResult> Post([FromBody] ProjectDefinition projectDefinition) { var project = new Project { Id = Guid.NewGuid(), Name = projectDefinition.Name, Users = await ResolveUsersAsync(projectDefinition).ConfigureAwait(false), Tags = projectDefinition.Tags }; var command = new ProjectCreateCommand(CurrentUser, project); var commandResult = await orchestrator .InvokeAsync <Project>(command) .ConfigureAwait(false); if (commandResult.Links.TryGetValue("status", out var statusUrl)) { return(new AcceptedResult(statusUrl, commandResult)); } else { return(new OkObjectResult(commandResult)); } }
public void ProjectCreateCommandHandler_Handle() { var user = FakeObjects.TestUserWithId(); var team = FakeObjects.TestTeamWithId(); Project newValue = null; var command = new ProjectCreateCommand() { UserId = user.Id, Description = FakeValues.Description, Name = FakeValues.Name, TeamId = team.Id }; using (var session = _store.OpenSession()) { session.Store(user); session.Store(team); session.SaveChanges(); var commandHandler = new ProjectCreateCommandHandler(session); commandHandler.Handle(command); session.SaveChanges(); newValue = session.Query <Project>().FirstOrDefault(); } Assert.IsNotNull(newValue); Assert.AreEqual(command.Name, newValue.Name); Assert.AreEqual(command.Description, newValue.Description); //Assert.AreEqual(team.DenormalisedNamedDomainModelReference<Team>(), newValue.Team); }
public async Task ValidateAsync_Error() { var command = new ProjectCreateCommand(null, new Project()); var result = await command.ValidateAsync(validatorProvider).ConfigureAwait(false); Assert.False(result.IsValid); }
public void Validate_Error() { var command = new ProjectCreateCommand(null, new Project()); var result = command.Validate(validatorProvider); Assert.False(result.IsValid); }
public async Task ValidateAsync_Success() { var command = new ProjectCreateCommand(new User(), new Project()); var result = await command.ValidateAsync(validatorProvider).ConfigureAwait(false); Assert.True(result.IsValid); }
public void Validate_Success() { var command = new ProjectCreateCommand(new User(), new Project()); var result = command.Validate(validatorProvider); Assert.True(result.IsValid); }
public Project(ProjectCreateCommand command) { this.Apply <ProjectCreateEvent>(command, e => { e.Id = Utils.GenerateId(); e.CreateTime = DateTime.UtcNow; }); }
public async Task <Project> Add(string solutionId = "00000000000000000000") { var command = new ProjectCreateCommand { Name = this.GetRandom(), SolutionId = solutionId }; var message = new HttpRequestMessage(HttpMethod.Post, API); message.AddJsonContent(command); var responseMessage = await this.HttpClient.SendAsync(message); var id = await responseMessage.AsResult <string>(); var project = await this.Get(id); Assert.Equal(command.Name, project.Name); Assert.Equal(command.Version, project.Version); return(project); }
public async Task <object> Add(ProjectCreateCommand command) { return(await this._mediator.Send <string>(command)); }
public async Task <string> Handle(ProjectCreateCommand command) { var project = await this.Add(new Project(command)); return(project.Id); }