void LoadDataForm_onGetTasksSuccessfully(Tasks tasks) { try { HashSet<string> sites = new HashSet<string>(); foreach (BindingTask task in tasks.Task) { Debug.WriteLine("Task ID:" + task.ID + ", name=" + task.Name); DataCenter.Instance().Tasks.Add(task.ID, task); foreach (string site in task.UnassignedSite) { sites.Add(site); } foreach (string site in task.Site) { sites.Add(site); } } foreach (KeyValuePair<long, FileDescription> pair in DataCenter.Instance().EMIDescriptions) { if (sites.Contains(pair.Value.SiteID) && !DataCenter.Instance().EMIs.ContainsKey(pair.Key) //如果EMI文件不存在 ) { mTaskStack.Push(new Task(TaskType.getFile, HTTPAgent.FileType.emi, pair.Key, pair.Value.Title)); } } } catch (System.Exception e) { } ExecuteTask(); }
public void getTasks(Form attachedForm) { new Thread(delegate() { byte[] respData; string json = ""; WebHeaderCollection headers; string url = getUrl(Action.gettasks); HttpStatusCode statusCode = HTTPRequest.MakeRequest(url, "GET", Constants.JSON_MIME, null, null, out respData, out headers); if (statusCode == HttpStatusCode.OK || statusCode == HttpStatusCode.NoContent) { if (onGetTasksSuccessfully != null) { Tasks tasks = new Tasks(); if (respData != null) { json = Encoding.UTF8.GetString(respData); tasks = Utility.JsonDeserialize<Tasks>(json); Utility.FillTasks(tasks); } attachedForm.Invoke(onGetTasksSuccessfully, tasks); } } else { if (onGetTasksFailed != null) attachedForm.BeginInvoke(onGetTasksFailed, statusCode); } }).Start(); }