public Risk CreateRisk(CreateRiskCommand command)
        {
            var newValue = _riskService.Create(command).Result;

            _relationshipService.Create(new CreateRelationshipCommand()
            {
                FromType = ObjectType.Asset, FromId = command.AssetId, ToType = ObjectType.Risk, ToId = newValue.Id
            });

            foreach (var item in command.Vulnerabilities)
            {
                _relationshipService.Create(new CreateRelationshipCommand()
                {
                    FromType = ObjectType.Risk, FromId = newValue.Id, ToType = ObjectType.Vulnerabilitie, ToId = item
                });
            }

            foreach (var item in command.Risks)
            {
                _relationshipService.Create(new CreateRelationshipCommand()
                {
                    FromType = ObjectType.Risk, FromId = newValue.Id, ToType = ObjectType.Risk, ToId = item
                });
            }

            foreach (var item in command.Treatments)
            {
                var treatment = _treatmentService.Create(new CreateTreatmentCommand()
                {
                    RiskId      = newValue.Id,
                    Name        = item.Name,
                    Description = item.Description,
                    Type        = item.Type
                }).Result;
                _relationshipService.Create(new CreateRelationshipCommand()
                {
                    FromType = ObjectType.Asset,
                    ToType   = ObjectType.TreatmentPayload,
                    FromId   = command.AssetId,
                    ToId     = treatment.Payload.Id
                });
            }

            _auditTrailService.LogAction(AuditTrailAction.CreateRisk, newValue.Id, new AuditTrailPayloadModel()
            {
                Data = JsonConvert.SerializeObject(command)
            });
            return(newValue);
        }
        public async Task <IActionResult> CreateRisk([FromBody] CreateRiskCommand command)
        {
            var newValue = await _riskService.Create(command);

            _relationshipService.Create(new CreateRelationshipCommand()
            {
                FromType = ObjectType.Asset, FromId = command.AssetId, ToType = ObjectType.Risk, ToId = newValue.Id
            });

            foreach (var item in command.Vulnerabilities)
            {
                _relationshipService.Create(new CreateRelationshipCommand()
                {
                    FromType = ObjectType.Risk, FromId = newValue.Id, ToType = ObjectType.Vulnerabilitie, ToId = item
                });
            }

            foreach (var item in command.Risks)
            {
                _relationshipService.Create(new CreateRelationshipCommand()
                {
                    FromType = ObjectType.Risk, FromId = newValue.Id, ToType = ObjectType.Risk, ToId = item
                });
            }

            foreach (var item in command.Treatments)
            {
                _relationshipService.Create(new CreateRelationshipCommand()
                {
                    FromType = ObjectType.Risk, FromId = newValue.Id, ToType = ObjectType.Treatment, ToId = item.Id
                });
            }

            _auditTrailService.LogAction(AuditTrailAction.CreateRisk, newValue.Id, new AuditTrailPayloadModel()
            {
                Data = JsonConvert.SerializeObject(command)
            });
            return(Created(newValue.Id.ToString(), newValue));
        }
 public async Task <Risk> Create(CreateRiskCommand command) => await _mediator.Send(command);