示例#1
0
        public override void Adicionar(MovimentacaoVeiculo entidade)
        {
            var mensalista = new MensalistaRegras().BuscaPorPlaca(entidade.PlacaVeiculo);

            if (mensalista != null)
            {
                if (new MensalistaRegras().EstaInadinplente(mensalista))
                {
                    throw new Exception($"Mensalista {mensalista.Pessoa.Nome} está inadimplente");
                }

                var modeloVeiculo = new ModeloVeiculoRegras().buscarporID(mensalista.ModeloVeiculoId);
                entidade.TipoVeiculoId = modeloVeiculo.TipoVeiculoId;
                entidade.PlacaVeiculo  = mensalista.PlacaVeiculo;
                entidade.MensalistaId  = mensalista.Id;
                entidade.ValorTotal    = 0m;
            }

            entidade.DataHoraEntrada = DateTime.Now;
            var vaga = new VagaRegras().BuscarVagaLivre().Id;

            if (vaga == 0)
            {
                throw new Exception("Não ha vaga disponivel no momento");
            }
            entidade.VagaId = vaga;
            if (movimentacaoveiculorepository.ExisteVeiculoCadastrdo(entidade.PlacaVeiculo))
            {
                throw new Exception("Já existe uma movimentação com este veiculo");
            }
            entidade.UsuarioId = 1;

            base.Adicionar(entidade);
        }