public void CreateVulnerability(VulnerabilityViewModel model) { using (var uow = new UnitOfWork(ConnectionString)) { var vulnerabilityId = Guid.NewGuid(); var vulnerability = this._mapp.Map <VulnerabilityViewModel, VulnerabilityEntity>(model); var vulnerabilitiesLang = this._mapp.Map <IEnumerable <VulnerabilityLangViewModel>, IEnumerable <VulnerabilityLangEntity> >(model.Languages); vulnerability.Id = vulnerabilityId; uow._vulnerabilityR.Add(vulnerability); if (uow.Complete() > 0) { foreach (var vulnerabilityLang in vulnerabilitiesLang) { vulnerabilityLang.VulnerabilityId = vulnerabilityId; } uow._vulnerabilityLangR.AddRange(vulnerabilitiesLang); uow.Complete(); } else { throw new Exception("Houve um erro ao processar a vulnerabilidade. Tente novamente."); } } }
public IActionResult CreateVulnerabilityByObject([FromBody] VulnerabilityViewModel model) { try { var token = Request.Headers["Authorization"].ToString().Replace("Bearer ", ""); var handler = new JwtSecurityTokenHandler(); model.UserId = Guid.Parse(handler.ReadJwtToken(token).Claims.ToList().Find(x => x.Type.Contains("nameidentifier")).Value); this._vulnerabilityService.CreateVulnerability(model); return(Ok(new ResultResponseViewModel <VulnerabilityViewModel> { IsSuccess = true, Message = "Vulnerabilidade criada com sucesso." })); } catch (Exception e) { return(Ok(new ResultResponseViewModel <string>() { IsSuccess = false, Message = e.Message, Response = string.Empty })); } }
public void UpdateVulnerability(VulnerabilityViewModel model) { using (var uow = new UnitOfWork(ConnectionString)) { //Mapeamentos var vulnerabilityLangEntity = this._mapp.Map <IEnumerable <VulnerabilityLangViewModel>, IEnumerable <VulnerabilityLangEntity> >(model.Languages); //Originais do banco var dbVultEntity = uow._vulnerabilityR.GetById(model.Id); if (dbVultEntity == null) { throw new Exception("Vulnerabilidade não encontrada."); } //Preenchendo a entidade pai dbVultEntity.Name = string.IsNullOrWhiteSpace(model.Name) ? dbVultEntity.Name : model.Name; dbVultEntity.CVSS = string.IsNullOrWhiteSpace(model.CVSS) ? dbVultEntity.CVSS : model.CVSS; dbVultEntity.ProjectType = string.IsNullOrWhiteSpace(model.ProjectType) ? dbVultEntity.ProjectType : (Enums.ProjType)Enum.Parse(typeof(Enums.ProjType), model.ProjectType, true); dbVultEntity.RiskFactor = string.IsNullOrWhiteSpace(model.RiskFactorType) ? dbVultEntity.RiskFactor : (Enums.RiskFactor)Enum.Parse(typeof(Enums.RiskFactor), model.RiskFactorType, true); dbVultEntity.References = model.References.Count() == 0 ? "" : string.Join(",", model.References); dbVultEntity.Tags = model.Tags.Count() == 0 ? "" : string.Join(",", model.Tags); //Atualizando Vulnerability uow._vulnerabilityR.Update(dbVultEntity); //Atualizando VulnerabilityLang uow._vulnerabilityLangR.UpdateRange(vulnerabilityLangEntity); uow.Complete(); } }
public IActionResult EditVulnerabilityByObject([FromBody] VulnerabilityViewModel model) { try { this._vulnerabilityService.UpdateVulnerability(model); return(Ok(new ResultResponseViewModel <VulnerabilityViewModel> { IsSuccess = true, Message = "Dados atualizados com sucesso." })); } catch (Exception e) { return(Ok(new ResultResponseViewModel <string>() { IsSuccess = false, Message = e.Message, Response = string.Empty })); } }