public static WUUpdateInfoList GetUpdateList() { if (lst == null || lst.List == null) { WUUpdateInfoList l = new WUUpdateInfoList(); l.List = new List <WUUpdateInfo>(); return(l); } return(lst); }
static void CheckForUpdatesT() { try { if (EV.WaitOne(1000) == false) { return; } EV.Reset(); lst = new WUUpdateInfoList(); lst.List = new List <WUUpdateInfo>(); Status.Text = "Checking for updates (list only)"; UpdateSession UpdateSession = new UpdateSession(); UpdateSession.ClientApplicationID = "Fox SDC Update Controller"; IUpdateSearcher upd = UpdateSession.CreateUpdateSearcher(); ISearchResult res = upd.Search("IsInstalled=0 and Type='Software' and IsHidden=0"); if (res.Updates.Count == 0) { return; } for (int i = 0; i < res.Updates.Count; i++) { WUUpdateInfo wu = new WUUpdateInfo(); wu.Name = res.Updates[i].Title; wu.Description = res.Updates[i].Description; wu.Link = res.Updates[i].SupportUrl; wu.ID = res.Updates[i].Identity.UpdateID; lst.List.Add(wu); } return; } catch (Exception ee) { FoxEventLog.WriteEventLog("Failed to check for WU " + ee.ToString(), System.Diagnostics.EventLogEntryType.Error); lst = new WUUpdateInfoList(); lst.List = new List <WUUpdateInfo>(); return; } finally { Status.Text = "Idle"; EV.Set(); } }
public RESTStatus WUGetList(SQLLib sql, object dummy, NetworkConnectionInfo ni, string MachineID) { if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false) { ni.Error = "Access denied"; ni.ErrorID = ErrorFlags.AccessDenied; return(RESTStatus.Denied); } string guid = Guid.NewGuid().ToString(); PushData p = new PushData(); p.Action = "wugetlist"; p.ReplyID = guid; PushServiceHelper.SendPushService(MachineID, p, 0); PushDataResponse resp = PushServiceHelper.PopResponse(MachineID, 0, guid); if (resp == null) { ni.Error = "No response"; ni.ErrorID = ErrorFlags.NoData; return(RESTStatus.NoContent); } try { WUList = JsonConvert.DeserializeObject <WUUpdateInfoList>(resp.Data.ToString()); } catch { ni.Error = "Faulty data"; ni.ErrorID = ErrorFlags.NoData; return(RESTStatus.NoContent); } return(RESTStatus.Success); }