Esempio n. 1
0
        public void UpdateCommand_Valido()
        {
            var command = new InfracaoUpdateCommand(1, "12345", "descricção", "Amparo Legal", "Medida Adm", false, false, 1, 1, false, false, false, false, false, new DateTime(2000, 1, 1, 0, 0, 0));

            command.Validate();
            var validacao = command.Invalid;

            Assert.False(validacao);
        }
        public IActionResult Update(
            [FromBody] InfracaoUpdateCommand command,
            [FromServices] InfracaoService service,
            [FromServices] IMemoryCache cache
            )
        {
            GenericResult result = service.Exec(command);

            if (result.Status == 200)
            {
                cache.Remove(command.Id);
            }

            return(StatusCode(result.Status, result));
        }
Esempio n. 3
0
        public void UpdateCommand_Invalido()
        {
            var command = new InfracaoUpdateCommand(0, "12345", "descricção", "Amparo Legal", "Medida Adm", false, false, 1, 1, false, false, false, false, false, new DateTime(2000, 1, 1, 0, 0, 0));

            command.Validate();
            var validacaoId = command.Invalid;

            command = new InfracaoUpdateCommand(1, "1234", "descricção", "Amparo Legal", "Medida Adm", false, false, 1, 1, false, false, false, false, false, new DateTime(2000, 1, 1, 0, 0, 0));
            command.Validate();
            var validacaoNomeCurto = command.Invalid;

            command = new InfracaoUpdateCommand(1, "123456", "descricção", "Amparo Legal", "Medida Adm", false, false, 1, 1, false, false, false, false, false, new DateTime(2000, 1, 1, 0, 0, 0));
            command.Validate();
            var validacaoNomeLongo = command.Invalid;


            Assert.True(validacaoId);
            Assert.True(validacaoNomeCurto);
            Assert.True(validacaoNomeLongo);
        }
        public GenericResult Exec(InfracaoUpdateCommand command)
        {
            GrupoModel grupoModel = _repositoryGrupo.GetById(command.GrupoId);

            if (grupoModel == null)
            {
                command.AddNotification("GrupoId", "Grupo Inexistente");
            }

            NaturezaModel naturezaModel = _repositoryNatureza.GetById(command.NaturezaId);

            if (naturezaModel == null)
            {
                command.AddNotification("Natureza", "Natureza Inexistente");
            }

            InfracaoModel model = _repository.GetByCodigoEValidadeInicio(command.Codigo, command.ValidadeInicio);

            if ((model != null) && (model.Id != command.Id))
            {
                command.AddNotification("Codigo e ValidadeInicio", "Par (Código e Validade) já existente para o id:" + model.Id.ToString());
            }


            model = _repository.GetById(command.Id);
            if (model == null)
            {
                command.AddNotification("Id", "Recurso Inexistente");
            }


            command.Validate();
            if (command.Invalid)
            {
                return(new GenericResult(400, "Recurso Inválido", command.Notifications));
            }



            model.Atualizar(
                command.Codigo, command.Descricao, command.AmparoLegal, command.MedidaAdm, command.Crime, command.ObsObrigatoria, command.GrupoId, command.NaturezaId,
                command.CompetenciaMunicipal, command.CompetenciaEstadual, command.CompetenciaRodoviaria,
                command.InfratorCondutor, command.InfratorProprietario,
                command.ValidadeInicio
                );


            // inicio Enquadrando
            InfracaoModel infracaoMenor = _repository.GetByCodigoValidadeInicioMenor(command.Id, command.Codigo, command.ValidadeInicio);
            InfracaoModel infracaoMaior = _repository.GetByCodigoValidadeInicioMaior(command.Id, command.Codigo, command.ValidadeInicio);


            if (infracaoMenor != null)
            {
                infracaoMenor.SetDataFim(command.ValidadeInicio.AddDays(-1));
            }

            if (infracaoMaior != null)
            {
                model.SetDataFim(infracaoMaior.ValidadeInicio.AddDays(-1));
            }
            // fim Enquadrando



            try
            {
                if (infracaoMenor != null)
                {
                    _repository.Update(infracaoMenor);
                }

                _repository.Update(model);

                model = _repository.GetById(model.Id);

                return(new GenericResult(200, "Recurso Atualizado", model));
            }
            catch (System.Exception ex)
            {
                return(new GenericResult(503, ex.GetBaseException().Message, null));
            }
        }