using Newtonsoft.Json.Linq; using System.Collections.Generic; using UVC.Network; namespace UVC.Data { public class HttpPipeLine { private Dictionary infoList = new Dictionary(); public void Add(string key, HttpPipeLineInfo info) { if (!infoList.ContainsKey(key)) { infoList.Add(key, info); } else { infoList[key] = info; // Update existing entry } } public void Remove(string key) { if (infoList.ContainsKey(key)) { infoList.Remove(key); } } public async void Excute(string key) { if (infoList.ContainsKey(key)) { HttpPipeLineInfo info = infoList[key]; string result = await HttpRequester.Request(info.url, info.method, info.body, info.headers); JObject jsonResult = JObject.Parse(result); DataObject dataObject = new DataObject(jsonResult); if (info.dataMapper != null) { dataObject = info.dataMapper.Map(jsonResult); } DataRepository.Instance.AddData(key, dataObject); if (info.handler != null) { info.handler(dataObject); } } } } }