public bool Equals(Impegno i2) { bool result = (this._inizio.CompareTo(i2._inizio) == 0 && this._fine.CompareTo(i2._fine) == 0); return(result); }
public void Aggiungi(DateTime inizio, DateTime fine) { Impegno imp = null; try { imp = new Impegno(inizio, fine); } catch (Exception e) { throw e; } bool overlaps = false; foreach (Impegno i in this._impegni) { if (i.OverlapsWith(imp)) { overlaps = true; break; } } if (!overlaps) { this._impegni.Add(imp); } else { throw new Exception("L'impegno richiesto si sovrappone con uno giĆ esistente!"); } }
public void Rimuovi(DateTime inizio, DateTime fine) { Impegno imp = null; imp = this.GetImpegno(inizio, fine); if (!this._impegni.Remove(imp)) { throw new Exception("Impegno non presente in lista!"); } }
public bool OverlapsWith(Impegno i2) { DateTime max_inizio = DateTime.Compare(this._inizio, i2._inizio) >= 0 ? this._inizio : i2._inizio; DateTime min_fine = DateTime.Compare(this._fine, i2._fine) <= 0 ? this._fine : i2._fine; if (DateTime.Compare(max_inizio, min_fine) < 0) { return(true); } else { return(false); } }
public Impegno GetImpegno(DateTime inizio, DateTime fine) { Impegno res = null, i2 = null; try { i2 = new Impegno(inizio, fine); } catch (Exception e) { throw e; } foreach (Impegno i in this._impegni) { if (i.Equals(i2)) { res = i; break; } } return(res); }
public bool IsLibero(DateTime inizio, DateTime fine) { bool result = true; Impegno richiesto = null; try { richiesto = new Impegno(inizio, fine); } catch (Exception e) { throw e; } foreach (Impegno i in this.elencaImpegni()) { if (i.Inizio.Day == inizio.Day) { if (i.OverlapsWith(richiesto)) { result = false; break; } } } return(result); }