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." }); } }
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); }