public static void SetAppInfo(AppInfoEx appInfo) { var storingInfo = GetAppInfo(appInfo.Hash); if (storingInfo != null) { storingInfo.Status = appInfo.Status; storingInfo.Time = appInfo.Time; } else { AppInfoArray appInfoArray = null; if (_appInfo.TryGetValue(appInfo.Name, out appInfoArray)) { appInfoArray.Add(appInfo); } else { appInfoArray = new AppInfoArray(); appInfoArray.Add(appInfo); _appInfo.Add(appInfo.Name, appInfoArray); } _appHash.Add(appInfo.Hash, appInfo); } }
public static AppInfoEx GetAppInfo(string appName, string url) { AppInfoEx appInfo = null; AppInfoArray appInfoArray = null; if (_appInfo.TryGetValue(appName, out appInfoArray)) { appInfo = appInfoArray.Find(x => x.Url == url); } return(appInfo); }
public static string GetOptimalUrl(string appName) { AppInfoArray appInfoArray = null; if (_appInfo.TryGetValue(appName, out appInfoArray)) { var filteredValues = appInfoArray.FindAll(item => item.Status == Contracts.AppStatus.Started); filteredValues.Sort(delegate(AppInfoEx first, AppInfoEx second) { return(first.Weight - second.Weight); }); return((filteredValues.Count > 0) ? filteredValues[0].Url : ""); } return(""); }