public ICollection <IInfobase> GetInfobases(ICluster cluster) { if (_disposed) { throw new ObjectDisposedException(ToString()); } if (_clusterInfos == null || !_clusterInfos.TryGetValue(cluster, out var clusterInfo)) { throw new ArgumentException("The cluster does not correspond to current connection."); } var items = _connection.GetInfoBases(clusterInfo); var result = new List <IInfobase>(items.Length); foreach (var item in items) { var infobaseShort = (IInfoBaseShort)item; var infobase = new Infobase(cluster) { Name = infobaseShort.Name, Description = infobaseShort.Descr }; Marshal.ReleaseComObject(item); result.Add(infobase); } return(result); }
public void SaveInfobase(string name, Settings settings) { _infobases.ForEach(val => val.IsActive = false); Infobase s = Infobases.FirstOrDefault(val => val.Name == name); if (s == null) { s = new Infobase { Name = name }; _infobases.Add(s); } s.ApplicationString = settings.ApplicationString; s.BaseUrl = settings.BaseUrl; if (!settings.AnonymousAccess) { s.UserName = settings.UserName; s.Password = settings.Password; } s.AnonymousAccess = settings.AnonymousAccess; s.IsActive = true; s.IsAutorun = true; Serialize(_infobases); }
public void CreateInfobase(string name, string url, string application, string ftpPort) { if (!_infobases.Exists(val => val.Name == name)) { var s = new Infobase { Name = name, BaseUrl = url, ApplicationString = application, FtpPort = ftpPort }; _infobases.Add(s); Serialize(_infobases); } }
public bool DownloadInfobases(string url) { try { WebRequest request = new HttpWebRequest(new Uri(url)); using (WebResponse response = request.GetResponse()) using (Stream stream = response.GetResponseStream()) { var doc = new XmlDocument(); doc.Load(stream); XmlNodeList nodes = doc.DocumentElement.SelectNodes("//Products/Product"); var list = new List <Infobase>(); foreach (XmlNode node in nodes) { var infobase = new Infobase(); foreach (XmlNode child in node.ChildNodes) { switch (child.Name) { case "Name": infobase.Name = child.InnerText; break; case "Url": infobase.BaseUrl = child.InnerText; break; case "App": infobase.ApplicationString = child.InnerText; break; } } list.Add(infobase); } _infobases.Clear(); _infobases.AddRange(list); } return(true); } catch { return(false); } }
private IDictionary <string, Infobase> GetInfobaseMap(ICluster cluster) { if (_clusterIds == null || !_clusterIds.TryGetValue(cluster, out var clusterId)) { throw new ArgumentException("The cluster does not correspond to current connection."); } var result = new Dictionary <string, Infobase>(); var arguments = $"infobase --cluster {clusterId} {_rasAddr} summary list"; void Consumer(IDictionary <string, string> values) { values.TryGetValue(InfobaseFields.Name, out var infobaseName); if (string.IsNullOrWhiteSpace(infobaseName)) { return; } values.TryGetValue(InfobaseFields.Description, out var infobaseDescription); var infobase = new Infobase(cluster) { Name = infobaseName, Description = infobaseDescription }; result.Add(values["infobase"], infobase); } var exitCode = ExecuteRac(arguments, Consumer, out var error); if (exitCode != 0) { throw new ApplicationException($"Unable to get infobase list.\n{error}"); } return(result); }
public void SaveInfobase(string name, Settings settings) { _infobases.ForEach(val => val.IsActive = false); Infobase s = Infobases.FirstOrDefault(val => val.Name == name); if (s == null) { s = new Infobase { Name = name }; _infobases.Add(s); } s.ApplicationString = settings.ApplicationString; s.BaseUrl = settings.BaseUrl; s.IsActive = true; s.IsAutorun = true; Serialize(_infobases); }
public bool DownloadInfobases(string url) { try { WebRequest request = new HttpWebRequest(new Uri(url)); using (WebResponse response = request.GetResponse()) using (Stream stream = response.GetResponseStream()) { var doc = new XmlDocument(); doc.Load(stream); XmlNodeList nodes = doc.DocumentElement.SelectNodes("//Products/Product"); var list = new List<Infobase>(); foreach (XmlNode node in nodes) { var infobase = new Infobase(); foreach (XmlNode child in node.ChildNodes) { switch (child.Name) { case "Name": infobase.Name = child.InnerText; break; case "Url": infobase.BaseUrl = child.InnerText; break; case "App": infobase.ApplicationString = child.InnerText; break; } } list.Add(infobase); } _infobases.Clear(); _infobases.AddRange(list); } return true; } catch { return false; } }