public DeleteEnvironmentScanningResponse DeleteEnvironmentalScanning(DeleteEnvironmentScanningRequest request) { var environmental = new EnvironmentalScanning { Id = request.Id }; DataContext.EnvironmentalScannings.Attach(environmental); DataContext.EnvironmentalScannings.Remove(environmental); DataContext.SaveChanges(); return(new DeleteEnvironmentScanningResponse { IsSuccess = true, Message = "Deleted has been succesfully" }); }
public SaveChallengeResponse SaveChallenge(SaveChallengeRequest request) { var challenge = request.MapTo <Challenge>(); if (request.Id == 0) { challenge.EnvironmentScanning = DataContext.EnvironmentsScannings.Where(x => x.Id == request.EnviId).FirstOrDefault(); challenge.ESCategory = DataContext.ESCategories.FirstOrDefault(x => x.Id == request.Category); challenge.Relations = new List <EnvironmentalScanning>(); foreach (var id in request.RelationIds) { var envistate = DataContext.EnvironmentalScannings.Local.FirstOrDefault(x => x.Id == id); if (envistate == null) { envistate = new EnvironmentalScanning { Id = id }; DataContext.EnvironmentalScannings.Attach(envistate); } challenge.Relations.Add(envistate); } DataContext.Challenges.Add(challenge); } else { challenge = DataContext.Challenges.Include(x => x.ESCategory) .Include(x => x.Relations) .Include(x => x.ESCategory) .Include(x => x.Relations.Select(y => y.ThreatHost)) .Include(x => x.Relations.Select(y => y.OpportunityHost)) .Include(x => x.Relations.Select(y => y.WeaknessHost)) .Include(x => x.Relations.Select(y => y.StrengthHost)) .FirstOrDefault(x => x.Id == request.Id); request.MapPropertiesToInstance <Challenge>(challenge); if (challenge.ESCategory.Id != request.Category) { challenge.ESCategory = DataContext.ESCategories.FirstOrDefault(x => x.Id == request.Category); } challenge.Relations = new List <EnvironmentalScanning>(); foreach (var id in request.RelationIds) { var envistate = DataContext.EnvironmentalScannings.Local.FirstOrDefault(x => x.Id == id); if (envistate == null) { envistate = new EnvironmentalScanning { Id = id }; DataContext.EnvironmentalScannings.Attach(envistate); } challenge.Relations.Add(envistate); } } DataContext.SaveChanges(); var result = DataContext.Challenges.Where(x => x.Id == challenge.Id) .Include(x => x.Relations) .Include(x => x.ESCategory) .Include(x => x.Relations.Select(y => y.ThreatHost)) .Include(x => x.Relations.Select(y => y.OpportunityHost)) .Include(x => x.Relations.Select(y => y.WeaknessHost)) .Include(x => x.Relations.Select(y => y.StrengthHost)).FirstOrDefault(); return(new SaveChallengeResponse { IsSuccess = true, Message = "Challenge has been saved successfully", Category = result.ESCategory.Name, Definition = result.Definition, Id = result.Id, Type = result.Type, RelationIds = result.Relations.Select(x => x.Id).ToArray(), ThreatIds = result.Relations.Where(x => x.ThreatHost != null).Select(y => y.Id).ToArray(), OpportunityIds = result.Relations.Where(x => x.OpportunityHost != null).Select(y => y.Id).ToArray(), WeaknessIds = result.Relations.Where(x => x.WeaknessHost != null).Select(y => y.Id).ToArray(), StrengthIds = result.Relations.Where(x => x.StrengthHost != null).Select(y => y.Id).ToArray(), CategoryId = result.ESCategory.Id }); }