public static async void Start(AppServiceRunArgs args) { var dailyWeathers = DataManager.Current.DailyWeathers; if (dailyWeathers.Count == 0 || dailyWeathers[0].Time.Date < DateTime.Now.Date) { while (true) { var client = App.HttpClient; client.DefaultRequestHeaders.Clear(); using (var response = await client.GetAsync(@"http://dataservice.accuweather.com/currentconditions/v1/356187?apikey=R6Ky9UrLdErKo8LBtpyyGU7Ifx2e9M4M&language=vi-vn&details=true")) { if (response.IsSuccessStatusCode) { string json = await response.Content.ReadAsStringAsync(); await DataManager.Current.UpdateDailyWeathersAsync(json); break; } } await Task.Delay(15000); } } args.Sender.ExecuteOncePerDay -= Start; args.Sender.ExecuteOncePerDay += Start; }
internal static void Run(AppServiceRunArgs args) { if (IsFocusing) { return; } var index = GetCurrentActiveTaskIndex(); if (index != GetLastestActiveTaskIndex()) { CurrentIndex = index; Notify(UnfinishedTasks[index]); } }
public static void Run(AppServiceRunArgs args) { DateTime now = DateTime.Now; var tasks = DataManager.Current.Tasks; for (int i = 0; i < tasks.Count; i++) { //Remove expiried task if (tasks[i].ExpiryTime <= now) { tasks.Remove(tasks[i]); i--; continue; } } }
internal static async void Start(AppServiceRunArgs args) { CurrentIndex = -1; UnfinishedTasks = new ObservableCollection <UnfinishedTask>(); UnfinishedAndDoneLaterTasks = new ObservableCollection <UnfinishedTask>(); DateTime dateNow = DateTime.Now.Date; //Startup - Loading Data if (args.LatestStartupDate != dateNow) { //Report finished tasks and unfinished tasks (statistics) // Continue working............................... (workmark)//////////=============-------------\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\{{{{{{{{}}}}}}}}}} /*List<Tuple<string, bool>> todayTasks = await DataManager.Current.GetTodayTasksListAsync(); * int numberOfFinishedTasks = 0; * string unfinishedTasks = ""; * string finishedTasks = ""; * foreach(var i in todayTasks) * { * if (i.Item2) * { * numberOfFinishedTasks++; * finishedTasks += i.Item1; * } * else unfinishedTasks += i.Item2; * } * DataManager.Current.ReportInteractingTasksStatAsync(args.LatestStartupDate, numberOfFinishedTasks, * todayTasks.Count, finishedTasks, unfinishedTasks);*/ await DataManager.Current.ClearTodayTasksAsync();//Clear TodayTasks table } //Renew Unfinished Today Tasks //[Optimize] by using Quick Sort foreach (var i in DataManager.Current.Tasks) { if (i.Type == TaskType.Schedule && i.GetStatusOn(dateNow) == TaskStatus.Available) { AddAllUnfinishedTaskOf(i); } } //Remove all unfinished tasks which is done await DataManager.Current.GetFinishedTodayTasksAsync((id, activeTimeOfDayTotalMinutes) => { TimeSpan activeTime = TimeSpan.FromMinutes(activeTimeOfDayTotalMinutes); int index = Extensions.BinarySearch(UnfinishedTasks, x => x.NotifiedTime, activeTime, TimeSpan.Compare); if (index == -1) { return; } int i = index; while (i > -1 && UnfinishedTasks[i].NotifiedTime == activeTime) { if (UnfinishedTasks[i].Task.ID == id) { UnfinishedTasks.RemoveAt(i); return; } i--; } i = index + 1; while (i < UnfinishedTasks.Count && UnfinishedTasks[i].NotifiedTime == activeTime) { if (UnfinishedTasks[i].Task.ID == id) { UnfinishedTasks.RemoveAt(i); return; } i++; } }); //Execute Run(args); DataManager.Current.Tasks.SQLInsertsItem += CheckInsertedTask; DataManager.Current.Tasks.SQLRemovesItem += CheckRemovedTask; DataManager.Current.Tasks.SQLUpdatesItem += CheckChangedTask; args.Sender.ExecuteOncePerMinute += Run; }
public static void Start(AppServiceRunArgs args) { Run(args); args.Sender.ExecuteOncePerDay += Run; }