예제 #1
0
		public static async Task AddToDo(IDataServer element) {
            var z = await element.HasOldData();
			if (z) {
                string x = await element.OldData();
				element.TriggerData (true, x);
				if (!element.ForceFreshData)
					return;
			}
			toDo.Add (element);
			//DoJob ();
			if (element.IgnoreLocalData)
				DoJob ();
		}
예제 #2
0
		private async Task DoProcessAllNews ()
		{
			IDataServer x = new IDataServer ("news", true);
			var a = await x.HasOldData ();
			if (a) {
				SetLabelStage (l9, l91, l92, ProcessStep.Processing);
				var z = await x.OldData ();
				Global.AllNews.LoadFromJson (Helper.Decrypt (z));
				PopulateNews ();
				Global.AllNews.Refresh ();
				SetLabelStage (l9, l91, l92, ProcessStep.Ready);
				if (step == 8)
					step++;
				DoStep ();
				return;
			}
			x.DataRefresh += delegate(bool status, string result) {
				SetLabelStage (l9, l91, l92, ProcessStep.Processing);
				Tools.Trace ("Status: " + x.FileName + "=" + status);
				if (!status) {
					SetLabelStage (l9, l91, l92, ProcessStep.Broken);
					if (step == 8) {
						step++;
						DoStep ();
					}
					return;
				}
				try {
					Global.AllNews.LoadFromJson (Helper.Decrypt (result));
					PopulateNews ();
					Global.AllNews.Refresh ();
					if (step == 8)
						step++;
					DoStep ();
					SetLabelStage (l9, l91, l92, ProcessStep.Ready);
					return;
				} catch (Exception) {
					SetLabelStage (l9, l91, l92, ProcessStep.Broken);
					if (step == 8)
						step++;
					DoStep ();
					return;
				}
			};
			DataServer.AddToDo (x);
			DataServer.Launch ();
		}