private async Task OnGenerateBunchOfPersons(CancellationToken cancellationToken, int personCount)
        {
            await Observable.Interval(TimeSpan.FromSeconds(_settingsService.IntervalBetweenGenerationSinglePerson))
            .Take(personCount).Do(_ =>
            {
                var freeFloors      = _building.GetNotFullFloors();
                var generationFloor = freeFloors.GetRandomElement();
                if (generationFloor == null)
                {
                    return;
                }

                var person = GeneratePerson(generationFloor);
                if (!_building.TryEnterOnFloorToWaitElevator(person, generationFloor))
                {
                    //some error handling
                }
            });
        }