public ServerMetaData(string name, ServerAddress address, string root, DateTime date, string dateTimeOffset, int uptime, ServerVersion version, ServerLicense license, string licenseIp, bool caseSensitive, bool unicodeEnabled, bool moveEnabled ) { Name = name; Address = address; Root = root; Date = date; DateTimeOffset = dateTimeOffset; Uptime = uptime; Version = version; License = license; LicenseIp = licenseIp; CaseSensitive = caseSensitive; UnicodeEnabled = unicodeEnabled; MoveEnabled = moveEnabled; }
/// <summary> /// Read the fields from the tagged output of an info command /// </summary> /// <param name="objectInfo">Tagged output from the 'info' command</param> public void FromGetServerMetaDataCmdTaggedOutput(TaggedObject objectInfo) { RawData = objectInfo; if (objectInfo.ContainsKey("serverName")) { Name = objectInfo["serverName"]; } if (objectInfo.ContainsKey("serverAddress")) { Address = new ServerAddress(objectInfo["serverAddress"]); } if (objectInfo.ContainsKey("serverRoot")) { Root = objectInfo["serverRoot"]; } if (objectInfo.ContainsKey("serverDate")) { string dateTimeString = objectInfo["serverDate"]; string[] dateTimeArray = dateTimeString.Split(' '); DateTime v; DateTime.TryParse(dateTimeArray[0] + " " + dateTimeArray[1], out v); Date = v; for (int idx = 2; idx < dateTimeArray.Count(); idx++) { DateTimeOffset += dateTimeArray[idx] + " "; } DateTimeOffset = DateTimeOffset.Trim(); } if (objectInfo.ContainsKey("serverUptime")) { int v; int.TryParse(objectInfo["serverUptime"], out v); Uptime = v; } if (objectInfo.ContainsKey("serverVersion")) { string serverVersion = objectInfo["serverVersion"]; string[] info = serverVersion.Split('/', ' '); string product = info[0]; string platform = info[1]; string major = info[2]; string minor = info[3]; char[] trimChars = { '(', ')' }; string dateString = info[4] + "-" + info[5] + "-" + info[6]; dateString = dateString.Trim(trimChars); DateTime date = new DateTime(1, 1, 1); DateTime.TryParse(dateString, out date); Version = new ServerVersion(product, platform, major, minor, date); } if (objectInfo.ContainsKey("serverLicence")) { string lic = objectInfo["serverLicence"]; string[] info = lic.Split(' '); int users; int.TryParse(info[0], out users); DateTime expires; DateTime.TryParse(info[2], out expires); License = new ServerLicense(users, expires); } if (objectInfo.ContainsKey("serverLicenceIp")) { LicenseIp = objectInfo["serverLicenceIp"]; } if (objectInfo.ContainsKey("caseHandling")) { if (objectInfo["caseHandling"] == "sensitive") { CaseSensitive = true; } } if (objectInfo.ContainsKey("unicode")) { if (objectInfo["unicode"] == "enabled") { UnicodeEnabled = true; } } if (objectInfo.ContainsKey("move")) { if (objectInfo["move"] == "disabled") { MoveEnabled = false; } } else { MoveEnabled = true;; } }