Beispiel #1
0
        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!");
            }
        }
Beispiel #4
0
        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);
        }
Beispiel #6
0
        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);
        }