Ejemplo n.º 1
0
        public async Task WhenCallingIndexWithFilteringEmptyQueuesReturnDataIndicatingQueueCounts()
        {
            //Given
            var sut = new QueuesController(getQueuesQuery.Object, getMessageCountPerUser.Object, getUserSessionsQuery.Object);

            //When
            var result = await sut.Index(string.Empty, string.Empty, string.Empty, 0, 0, true);

            //Then
            var queueInfoModel = result.Should().BeOfType <JsonResult>().Which.Value.Should().BeOfType <QueueInformationModel>().Which;

            queueInfoModel.Total.Should().Be(3);
            queueInfoModel.Rows.Should().BeEquivalentTo(
                new QueueInformationModel.QueueCountInfo
            {
                Id           = "TestQueue1",
                MessageCount = 10,
                MessageCountInvestigation = "60 (UserA_Username,UserB_Username)",
                Name = "TestQueue1"
            },
                new QueueInformationModel.QueueCountInfo
            {
                Id           = "TestQueue2",
                MessageCount = 20,
                MessageCountInvestigation = "20 (UserC_Username)",
                Name = "TestQueue2"
            },
                new QueueInformationModel.QueueCountInfo
            {
                Id           = "TestQueue3",
                MessageCount = 0,
                MessageCountInvestigation = "30 (UserD_Username)",
                Name = "TestQueue3"
            });
        }
Ejemplo n.º 2
0
        private void Preprocess()
        {
            if (m_isFinished)
            {
                Log("\n *** Simulation started *** \n");

                // Initialize starting events
                TenantGenerator generator;
                TenantQueue     queue;
                foreach (int key in GeneratorsController.Floors)
                {
                    generator = GeneratorsController.Get(key);
                    queue     = QueuesController.Get(key);

                    CreateEvent_NewTenant(generator, queue);
                }

                // Force update statistics
                GeneratorsController.UpdateStatistics();
                QueuesController.UpdateStatistics();
                ElevatorsController.UpdateStatistics();

                m_isFinished = false;
            }
            else
            {
                Log("\n *** Simulation continued *** \n");
            }
        }
Ejemplo n.º 3
0
        private void Postprocess()
        {
            Log("\n *** Simulation stopped *** \n");

            // Force update statistics
            GeneratorsController.UpdateStatistics();
            QueuesController.UpdateStatistics();
            ElevatorsController.UpdateStatistics();
        }
Ejemplo n.º 4
0
        public void CreateEvent_Pickup(Elevator elevator)
        {
            // Get associated queue
            TenantQueue queue = QueuesController.Get(elevator.CurrentFloor);

            if (queue.IsHallcall(elevator.Direction) &&
                elevator.FreePlace > 0)
            {
                m_scheduler.Add(new PickupEvent(Time, this, queue, elevator));
            }
        }
Ejemplo n.º 5
0
        public void Reset()
        {
            // Reset time
            Time = 0;

            // Reset model elements
            m_scheduler.Reset();
            GeneratorsController.Reset();
            QueuesController.Reset();
            ElevatorsController.Reset();

            // Finish the simulation if it was started
            if (!m_isFinished)
            {
                Log("\n *** Simulation finished *** \n");
                m_isFinished = true;
            }
        }