예제 #1
0
        public async Task Run()
        {
            var repositories = RepositoriesBuilder.Build();
            var entityLists  = GetEntities(repositories);

            Console.WriteLine("Start async foreach");
            await foreach (var entityList in entityLists)
            {
                foreach (var entity in entityList)
                {
                    Console.WriteLine(entity);
                }
            }

            Console.WriteLine("Ok");
        }
예제 #2
0
        public async Task RunConcurrently()
        {
            Console.WriteLine($"{DateTime.Now:O} Start");

            var repositories = RepositoriesBuilder.Build();

            var tasks = repositories.Select(r => r.GetEntities()).ToList();

            while (tasks.Any())
            {
                await Task.WhenAny(tasks);

                var entities = tasks.Where(t => t.IsCompleted).SelectMany(t => t.Result).ToList();
                entities.ForEach(Console.WriteLine);

                tasks = tasks.Where(t => !t.IsCompleted).ToList();
            }
        }
예제 #3
0
        public ScheduleViewModel(INavigation navigation)
        {
            ChangeDayOfWeekCommand = new ChangeDayOfWeekCommand(this);
            OpenMenuPageCommand    = new OpenMenuPageCommand(this);
            Navigation             = navigation;

            Lessons  = new ObservableCollection <Lesson>();
            Schedule = RepositoriesBuilder
                       .GetRepository(new RepositoryConfigurations <Schedule>(StorageType.XmlFileStorageType, scheduleFile))
                       .Get().Result;
            if (Schedule != null)
            {
                DaySchedules = Schedule.WeekSchedules[4];
                GroupNumber  = Schedule.GroupNumber;
            }

            ChangeCurrentDayOfWeek(DateTime.Now.DayOfWeek);
            IsMenuButtonEnabled = true;
        }