Example #1
0
        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
            }
                );
        }
Example #3
0
        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);
        }