Exemple #1
0
        public async Task Executar(VeiculoNaLinhasDto veiculoNaLinhaDto)
        {
            var linha = await context.Linhas
                        .Include(x => x.Veiculos)
                        .SingleOrDefaultAsync(x => x.Id == veiculoNaLinhaDto.LinhaId);

            var veiculo = await context.Veiculos.FindAsync(veiculoNaLinhaDto.VeiculoId);

            if (linha is null)
            {
                Notifications.Add("linha-nao-encontrada", "Linha não encontrada!");
            }

            if (veiculo is null)
            {
                Notifications.Add("veiculo-nao-encontrado", "Parada não encontrada!");
            }

            if (!Notifications.Any())
            {
                linha.AdicionarVeiculo(veiculo);

                await context.SaveChangesAsync();
            }
        }
Exemple #2
0
        public async Task NaoDeveVincularUmVeiculoNaLinhaPoisOVeiculoNaoFoiEncontrado()
        {
            //arrange
            var veiculoNaLinhaDto = new VeiculoNaLinhasDto()
            {
                LinhaId = 1, VeiculoId = 2
            };

            var veiculoDto = new VeiculoDto()
            {
                Nome        = "Veículo 1",
                Modelo      = "Mercedes",
                Localizacao = new LocalizacaoDto()
                {
                    Latitude  = -8.771593,
                    Longitude = -63.847208
                }
            };

            var veiculo = new Domain.Entities.Veiculo(
                veiculoDto.Nome,
                veiculoDto.Modelo,
                new Domain.ValueObjects.Localizacao(
                    veiculoDto.Localizacao.Latitude,
                    veiculoDto.Localizacao.Longitude
                    )
                );

            var linha = new Domain.Entities.Linha(
                nome: "Linha 1",
                id: 1
                );

            linha.AdicionarVeiculo(veiculo);

            await context.AddAsync(veiculo);

            await context.AddAsync(linha);

            await context.SaveChangesAsync();

            //act
            await vincularVeiculo.Executar(veiculoNaLinhaDto);

            //assert
            Assert.True(vincularVeiculo.Notifications.ContainsKey("veiculo-nao-encontrado"));
        }
Exemple #3
0
        public async Task <IActionResult> Post([FromServices] VincularVeiculo vincularVeiculo, VeiculoNaLinhasDto veiculoNaLinhasDto)
        {
            await vincularVeiculo.Executar(veiculoNaLinhasDto);

            if (vincularVeiculo.Notifications.Any())
            {
                return(BadRequest(vincularVeiculo.Notifications));
            }

            return(Ok());
        }