Exemplo n.º 1
0
 public Cash(Shop shop)
 {
     Shop = shop;
     StateId = 0;
     Byers=new List<Byer>();
     CurrentByer = null;
 }
Exemplo n.º 2
0
        /// <summary>
        /// Обслуживание покупателей
        /// </summary>
        private void Handling()
        {
            //Если обслуживать некого, то возврат из функции
            if (Byers.Count == 0 || StateId != 1)
                return;

            //Если никто не обслуживается
            if(CurrentByer==null)
            {
                //Поиск покупателя в очереди прибывшего раньше всего
                Byer firstByer = Byers.FirstOrDefault(b => b.TimeArrived == Byers.Min(s => s.TimeArrived));
                CurrentByer = firstByer;
                HandlingStartTime = Shop.Time;
            }
            else
            {
                //Если прошло время, необходимое на обслуживание покупателя
                if (HandlingStartTime + CurrentByer.HandlingTime <= Shop.Time)
                {
                    //Удаляем его из очереди
                    Byers.Remove(CurrentByer);

                    //Выручку в кассу
                    Receipts += CurrentByer.Money;

                    //Обслуживание нового покупателя
                    Byer firstByer = Byers.FirstOrDefault(b => b.TimeArrived == Byers.Min(s => s.TimeArrived));
                    CurrentByer = firstByer;
                    HandlingStartTime = Shop.Time;
                }
            }
        }