private void AddSpecification(NodeContainerSpecification spec) { var cmd = new AddNodeContainerSpecification(Guid.NewGuid(), new UserContext("specification seeder", _specSeederId), spec); var cmdResult = _commandDispatcher.HandleAsync <AddNodeContainerSpecification, Result>(cmd).Result; if (cmdResult.IsFailed) { throw new ApplicationException(cmdResult.Errors.First().Message); } }
public void AddSpecification(CommandContext cmdContext, NodeContainerSpecification nodeContainerSpecifiation, LookupCollection <Manufacturer> manufacturer) { if (_nodeContainerSpecifications.ContainsKey(nodeContainerSpecifiation.Id)) { throw new ArgumentException($"A node container specification with id: {nodeContainerSpecifiation.Id} already exists"); } RaiseEvent( new NodeContainerSpecificationAdded(nodeContainerSpecifiation) { CorrelationId = cmdContext.CorrelationId, IncitingCmdId = cmdContext.CmdId, UserName = cmdContext.UserContext?.UserName, WorkTaskId = cmdContext.UserContext?.WorkTaskId } ); }
public async void AddValidNodeContainerSpecification_ShouldSucceed() { // Create manufacturer var manufacturer = new Manufacturer(Guid.NewGuid(), "Node Container Manufacturer"); await _commandDispatcher.HandleAsync <AddManufacturer, Result>(new AddManufacturer(manufacturer)); // Setup a node equipment container specification var newNodeContainerSpecification = new NodeContainerSpecification(Guid.NewGuid(), "ManHoles", "Draka xyz") { Description = "Draka super duper xyz", ManufacturerRefs = new Guid[] { manufacturer.Id } }; // Act var addNodeSpecificationCommandResult = await _commandDispatcher.HandleAsync <AddNodeContainerSpecification, Result>(new AddNodeContainerSpecification(newNodeContainerSpecification)); var nodeContainerSpecificationsQueryResult = await _queryDispatcher.HandleAsync <GetNodeContainerSpecifications, Result <LookupCollection <NodeContainerSpecification> > >(new GetNodeContainerSpecifications()); // Assert addNodeSpecificationCommandResult.IsSuccess.Should().BeTrue(); nodeContainerSpecificationsQueryResult.IsSuccess.Should().BeTrue(); nodeContainerSpecificationsQueryResult.Value[newNodeContainerSpecification.Id].Name.Should().Be(newNodeContainerSpecification.Name); nodeContainerSpecificationsQueryResult.Value[newNodeContainerSpecification.Id].Description.Should().Be(newNodeContainerSpecification.Description); }