public Cash(Shop shop) { Shop = shop; StateId = 0; Byers=new List<Byer>(); CurrentByer = null; }
/// <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; } } }