示例#1
0
 public static WUUpdateInfoList GetUpdateList()
 {
     if (lst == null || lst.List == null)
     {
         WUUpdateInfoList l = new WUUpdateInfoList();
         l.List = new List <WUUpdateInfo>();
         return(l);
     }
     return(lst);
 }
示例#2
0
        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();
            }
        }
示例#3
0
        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);
        }