public RESTStatus GetPaperList(SQLLib sql, object dummy, NetworkConnectionInfo ni) { if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false) { ni.Error = "Access denied"; ni.ErrorID = ErrorFlags.AccessDenied; return(RESTStatus.Denied); } RetListPaper = new NetStringList(); RetListPaper.Items = SupportedNames; return(RESTStatus.Success); }
public RESTStatus GetInstalledCertificates(SQLLib sql, object dummy, NetworkConnectionInfo ni) { if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false) { ni.Error = "Access denied"; ni.ErrorID = ErrorFlags.AccessDenied; return(RESTStatus.Denied); } CertificateList = new NetStringList(); CertificateList.Items = Certificates.GetCertificates(StoreLocation.LocalMachine); if (CertificateList.Items == null) { ni.Error = "Cannot get list"; ni.ErrorID = ErrorFlags.SystemError; return(RESTStatus.ServerError); } return(RESTStatus.Success); }
public RESTStatus ListFiles(SQLLib sql, PushDirListReq Req, 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 = "listfiles"; p.ReplyID = guid; p.AdditionalData1 = JsonConvert.SerializeObject(Req); 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 { Lists = JsonConvert.DeserializeObject <NetStringList>(resp.Data.ToString()); } catch { ni.Error = "Faulty data"; ni.ErrorID = ErrorFlags.NoData; return(RESTStatus.NoContent); } return(RESTStatus.Success); }
public RESTStatus GetEventLogSources(SQLLib sql, object dummy, NetworkConnectionInfo ni) { if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false) { ni.Error = "Access denied"; ni.ErrorID = ErrorFlags.AccessDenied; return(RESTStatus.Denied); } EventLogSources = new NetStringList(); EventLogSources.Items = new List <string>(); lock (EventSourcesLock) { if (EventSourcesCacheDT.AddHours(1) < DateTime.UtcNow) { EventSourcesCache.Clear(); lock (ni.sqllock) { SqlDataReader dr = sql.ExecSQLReader("select distinct Source from EventLog order by Source"); while (dr.Read()) { EventSourcesCache.Add(Convert.ToString(dr["Source"])); } dr.Close(); } EventSourcesCacheDT = DateTime.UtcNow; } } lock (EventSourcesLock) { EventLogSources.Items = EventSourcesCache; } return(RESTStatus.Success); }
public RESTStatus GetPendingMachines(SQLLib sql, object dummy, NetworkConnectionInfo ni) { if (ni.HasAcl(ACLFlags.ChangeServerSettings) == false) { ni.Error = "Access denied"; ni.ErrorID = ErrorFlags.AccessDenied; return(RESTStatus.Denied); } GetPendingChats = new NetStringList(); GetPendingChats.Items = new List <string>(); lock (ni.sqllock) { SqlDataReader dr = sql.ExecSQLReader("Select DISTINCT MachineID FROM Chats WHERE [Read]=0 AND ToClient=0"); while (dr.Read()) { GetPendingChats.Items.Add(Convert.ToString(dr["MachineID"])); } dr.Close(); } return(RESTStatus.Success); }
public static NetStringList ListFiles(string ReqString) { NetStringList lst = new NetStringList(); lst.Items = new List <string>(); PushDirListReq req; try { req = JsonConvert.DeserializeObject <PushDirListReq>(ReqString); } catch (Exception ee) { Debug.WriteLine(ee.ToString()); return(lst); } if (req.ShowFiles == false && req.ShowFolders == false) { switch (req.Folder) { case "drives": foreach (DriveInfo drive in DriveInfo.GetDrives()) { if (drive.IsReady == true) { lst.Items.Add(drive.Name + " - " + drive.VolumeLabel + " (" + drive.DriveType + ")"); } else { lst.Items.Add(drive.Name + " - ?? (" + drive.DriveType + ")"); } } break; default: return(lst); } } else if (req.ShowFiles == true && req.ShowFolders == true) { return(lst); } else if (req.ShowFiles == true) { foreach (string file in Directory.EnumerateFiles(req.Folder, req.Filter, SearchOption.TopDirectoryOnly)) { lst.Items.Add(Path.GetFileName(file)); } } else if (req.ShowFolders == true) { string foodir = req.Folder; if (foodir.EndsWith("\\") == false) { foodir += "\\"; } foreach (string dir in Directory.EnumerateDirectories(req.Folder, req.Filter, SearchOption.TopDirectoryOnly)) { lst.Items.Add(dir.Substring(foodir.Length, dir.Length - foodir.Length)); } } return(lst); }