Пример #1
0
        public bool Remove(ResourseBunch t)
        {
            if (Contains(t))
            {
                RemoveSingle(t);

                return(true);
            }

            return(false);
        }
Пример #2
0
        public bool Add(ResourseBunch t)
        {
            if (IsEnoughSpace(t))
            {
                AddSingle(t);

                return(true);
            }

            return(false);
        }
Пример #3
0
        public bool Move(ResourseBunch t, IGeneralHolder <ResourseBunch> generalHolder)
        {
            if (Contains(t) &&
                generalHolder.Add(t))
            {
                RemoveSingle(t);

                return(true);
            }

            return(false);
        }
Пример #4
0
        private void RemoveSingle(ResourseBunch t)
        {
            ResourseBunch resourseBunch = ResourseBunches.Find(r => r.Resourse.Id == t.Resourse.Id);

            resourseBunch.Remove(t.Amount);

            if (resourseBunch.Amount <= 0)
            {
                ResourseBunches.Remove(resourseBunch);
            }

            CurResoursesOccupyingSpace -= t.Amount;
        }
Пример #5
0
        private void AddSingle(ResourseBunch t)
        {
            CurResoursesOccupyingSpace += t.Amount;

            if (ResourseBunches.Exists(r => r.Resourse.Id == t.Resourse.Id))
            {
                ResourseBunches.Find(r => r.Resourse.Id == t.Resourse.Id).Add(t.Amount);
            }
            else
            {
                ResourseBunches.Add(t);
            }
        }
Пример #6
0
 private bool Contains(ResourseBunch t)
 {
     return(ResourseBunches.Exists(r => r.Resourse.Id == t.Resourse.Id));
 }
Пример #7
0
 private bool IsEnoughSpace(ResourseBunch t)
 {
     return(CurResoursesOccupyingSpace + t.Amount <= MaxResoursesOccupyingSpace);
 }