public Roteiro(Roteiro roteiro_antigo, bool copiarFrases) { this.FrasesIda = new List <Frase>(); this.FrasesVolta = new List <Frase>(); this.ID = roteiro_antigo.ID; this.Indice = roteiro_antigo.Indice; this.IdaIgualVolta = roteiro_antigo.IdaIgualVolta; this.LabelRoteiro = roteiro_antigo.LabelRoteiro; this.Tarifa = roteiro_antigo.Tarifa; this.Ordenacao = roteiro_antigo.Ordenacao; this.Ascendente = roteiro_antigo.Ascendente; this.EnvioRoteiroAPP = roteiro_antigo.EnvioRoteiroAPP; this.Numero = new Frase(roteiro_antigo.Numero); if (copiarFrases) { foreach (Frase f in roteiro_antigo.FrasesIda) { this.FrasesIda.Add(new Frase(f)); } foreach (Frase f in roteiro_antigo.FrasesVolta) { this.FrasesVolta.Add(new Frase(f)); } } }
public bool CompararObjetosRoteiro(Roteiro roteiro1, Roteiro roteiro2) { bool alterou = false; if ((roteiro1.ID != roteiro2.ID) || (roteiro1.Indice != roteiro2.Indice) || (roteiro1.LabelRoteiro != roteiro2.LabelRoteiro) || (roteiro1.IdaIgualVolta != roteiro2.IdaIgualVolta) || (roteiro1.Tarifa != roteiro2.Tarifa) || roteiro1.EnvioRoteiroAPP != roteiro2.EnvioRoteiroAPP) { alterou = true; } if (!alterou) { if (roteiro1.Numero.CompararObjetosFrase(roteiro1.Numero, roteiro2.Numero)) { alterou = true; } } if (!alterou) { if (roteiro1.FrasesIda.Count != roteiro2.FrasesIda.Count) { alterou = true; } } if (!alterou) { if (roteiro1.FrasesVolta.Count != roteiro2.FrasesVolta.Count) { alterou = true; } } if (!alterou) { //os dois roteiros tem a mesma quantidade de frases for (int i = 0; i < roteiro1.FrasesIda.Count; i++) { if (roteiro1.FrasesIda[i].CompararObjetosFrase(roteiro1.FrasesIda[i], roteiro2.FrasesIda[i])) { alterou = true; break; } } } if (!alterou) { //os dois roteiros tem a mesma quantidade de frases for (int i = 0; i < roteiro1.FrasesVolta.Count; i++) { if (roteiro1.FrasesVolta[i].CompararObjetosFrase(roteiro1.FrasesVolta[i], roteiro2.FrasesVolta[i])) { alterou = true; break; } } } return(alterou); }