public object postColeta([FromBody] ColetaDTO coleta)
        {
            Viagem viagemColeta = ConversorColetaViagem.converterParaViagem(coleta);

            if ((new DAOViagem()).incluir(viagemColeta))
            {
                return(new {
                    sucesso = true,
                    mensagem = "Coleta agendada com sucesso.",
                    links =
                        new {
                        self = "api/controle-coletas/coletas/" + viagemColeta.Codigo.ToString(),
                        viagem = "api/acompanhamento-logistica/viagens/" + viagemColeta.Codigo.ToString()
                    }
                });
            }
            else
            {
                return(new
                {
                    sucesso = false,
                    mensagem = "Não foi possível realizar o agendamento da coleta."
                });
            }
        }
Exemple #2
0
        public static Viagem converterParaViagem(ColetaDTO coleta)
        {
            Viagem viagemColeta = new Viagem()
            {
                TipoViagem = "Coleta",
                Veiculo    = new Veiculo()
                {
                    Placa = coleta.Placa
                },
                Paradas                 = new List <Parada>(),
                DataHoraPartida         = DateTime.Parse(coleta.DataPartida + " " + coleta.HoraPartida, CultureInfo.CreateSpecificCulture("pt-BR")),
                DataHoraRetornoPrevisto = DateTime.Parse(coleta.DataRetornoEstimada + " " + coleta.HoraRetornoEstimada, CultureInfo.CreateSpecificCulture("pt-BR")),
                DistanciaTotal          = coleta.Roteiro.Distancia
            };

            int ordem = 1;

            foreach (var paradaColeta in coleta.Roteiro.Paradas)
            {
                Parada paradaViagem = new Parada()
                {
                    Endereco  = paradaColeta.Endereco,
                    Cep       = paradaColeta.Cep,
                    Municipio = new Municipio()
                    {
                        Codigo = paradaColeta.CodigoMunicipio
                    },
                    DataHoraChegadaPrevista = DateTime.Parse(paradaColeta.HorarioChegada, CultureInfo.CreateSpecificCulture("pt-BR")),
                    DistanciaTrecho         = paradaColeta.Distancia,
                    Ordem = ordem,
                    Itens = new List <ItemTransporte>()
                };

                foreach (var item in coleta.Itens)
                {
                    if (item.Endereco == paradaViagem.Endereco)
                    {
                        paradaViagem.Itens.Add(new ItemTransporte()
                        {
                            Codigo = item.Codigo
                        });
                    }
                }

                viagemColeta.Paradas.Add(paradaViagem);

                ordem++;
            }

            return(viagemColeta);
        }