/// <summary> /// Генерация одной заявки /// </summary> /// <param name="requestId">Номер запроса</param> private void GenerateOne(int requestId = 0) { lock (_requests) { var request = GetRandomRequest(requestId); _requests.Enqueue(request); ContextProvider.GetInstance().Context.Send(obj => RequestAdded?.Invoke(obj as Request), request); } }
public HouseManagement() { _requests = new Queue <Request>(); _departments = CreateDepartments(); _departments.Subscribe((request, employee) => RequestFinished?.Invoke(request, employee)); _committee = new RequestCommittee(_requests); _committee.RequestAdded += request => RequestAdded?.Invoke(request); _dispatcher = new Dispatcher(_departments, _requests); _dispatcher.RequestProcessed += request => RequestProcessed?.Invoke(request); _dispatcher.RequestPostponed += request => RequestPostponed?.Invoke(request); _dispatcher.SimulationFinished += () => SimulationFinished?.Invoke(); }