public bool PostTrocarEnderecoEntrega(Entrega.Entrega entrega, int idCidade, int distancia, string Logradouro)
        {
            string custo = GetCalcularTrocaEndereco(idCidade, distancia);

            Historico historico = new Historico()
            {
                Data_Historico = DateTime.Now,
                Mensagem       = string.Format("Alteração de endereço de entrega. De {0} para {1}, Custo: {2}", entrega.Id_Entrega, entrega.Logradouro, Logradouro, custo)
            };

            entrega.Historico.Add(historico);

            entrega.Logradouro = Logradouro;

            EntregaDespesa despesa = new EntregaDespesa();

            despesa.Id_Despesa = 1;
            despesa.Valor      = custo;
            entrega.Despesas.Add(despesa);

            return(Update(entrega));
        }
        public bool ExtenderPrazoColeta(Entrega.Entrega entrega)
        {
            IHistoricoEntregaRepository _repoHistorico = new HistoricoEntregaRepository();
            IEntregaDespesaRepository   _repoDespesa   = new EntregaDespesaRepository();

            try
            {
                StringBuilder sb = new StringBuilder();
                _Parametros.Params.Clear();
                _PostgreSql.Parametros.Clear();
                sb.Append("update entrega set data_prevista = @data_prevista where id_entrega = @id_entrega ");
                _Parametros.Add("@data_prevista", entrega.DataPrevista);
                _Parametros.Add("@id_entrega", entrega.Id_Entrega);

                _PostgreSql.Script = sb.ToString();
                _PostgreSql.Parametros.AddRange(_Parametros.Params);

                if (!_PostgreSql.ExecuteNonQuery())
                {
                    throw new Exception("Erro: " + _PostgreSql.msg);
                }

                Historico hist = new Historico();
                hist.Mensagem  = string.Format("Alteração da data de entrega para {0}", entrega.DataPrevista);
                hist.IdEntrega = entrega.Id_Entrega;
                entrega.Historico.Add(hist);
                _repoHistorico.Add(entrega.Historico);

                //_repoDespesa.Add(entrega.Despesas);

                return(true);
            }
            catch (Exception ex)
            {
                throw new Exception("Erro: " + ex.Message);
            }
        }