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);