示例#1
0
        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.");
                }
            }
        }
示例#2
0
        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
                }));
            }
        }
示例#3
0
        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();
            }
        }
示例#4
0
        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
                }));
            }
        }