/// <summary> /// Deletes MitigationRisk and also Mitigation if no other MitigationRisk with MitigationId /// </summary> /// <param name="mitigationId"></param> /// <param name="riskId"></param> public void DeleteFromRisk(Guid mitigationId, Guid riskId) { IEnumerable <MitigationRisk> mitigationsOnRisk = _context.MitigationRisks.Where(x => x.RiskId.Equals(riskId)); if (mitigationsOnRisk.Any()) { MitigationRisk mr = mitigationsOnRisk.FirstOrDefault(x => x.MitigationId.Equals(mitigationId)); if (mr is not null) { _context.MitigationRisks.Remove(mr); // If was only connection to Mitigation, delete Mitigation as well if (mitigationsOnRisk.Count() == 1) { Mitigation mitigation = _context.Mitigations.Find(mitigationId); _context.Mitigations.Remove(mitigation); } } } _context.SaveChanges(); }
public IActionResult CreateMitigation(string rid, [FromBody] Mitigation mitigation) { mitigation.Id = Guid.NewGuid(); Guid riskId = Guid.Parse(rid); MitigationRisk mr = new MitigationRisk() { MitigationId = mitigation.Id, RiskId = riskId }; try { _mitigationService.Create(mitigation, mr); return(Ok(mitigation)); } catch (AppException ex) { // return error message if there was an exception return(BadRequest(new { message = ex.Message })); } }
/// <summary> /// creates new mitigation /// </summary> /// <param name="mitigation"></param> /// <param name="mr"></param> public void Create(Mitigation mitigation, MitigationRisk mr) { _context.Mitigations.Add(mitigation); _context.MitigationRisks.Add(mr); _context.SaveChanges(); }