public void NotifyPublishers(RequestToPublisher newRequest) { foreach (IObserver publisher in publishers) { newRequest = publisher.ProcessStoreRequest(newRequest); // обработка издательствами запроса магазина: каждое издательство для каждой //выпускаемой им книги устанавливает срок ее привоза в магазин } requests.Add(newRequest); // добавление заявки в список невыполненных заявок }
} // название издательства public RequestToPublisher ProcessStoreRequest(RequestToPublisher newRequest) // метод обработки издательствами заявки магазина { foreach (Book book in newRequest.rangeOfBooks.Keys) { if (book.Publisher == name) // для каждой книги, выпускаемой издательством, устанавливается срок привоза книги в магазин { Random rnd = new Random(); newRequest.rangeOfBooks[book][1] = rnd.Next(1, 3) + newRequest.DayWhenRequestWasMade; // срок привоза книги в магазин устанавливается рандомно // rangeOfBooks - словарь, где ключ - это книга, а значение - массив из двух элементов: // 1) количество экземпляров книги 2) срок проивоза ее в магазин } } return(newRequest); // возвращает заявку с установленным сроком привоза для книг данного издательства }