/// <summary> /// Creates remote filename on vms server /// </summary> /// <param name="user"></param> /// <param name="db"></param> /// <param name="autoImport">use path to automated importing</param> /// <returns></returns> public static string CreateRemoteFileName(string user, HydrometDataBase db, bool autoImport = false) { string prefix = "huser1:[edits]"; if (autoImport) { prefix = "huser1:[edits.import]"; } string t = DateTime.Now.ToString("MMMdyyyyHHmmss"); string remoteFilename = prefix + "edits_" + user + t + ".txt"; if (db == HydrometDataBase.MPoll) { remoteFilename = prefix + "month_" + user + t + ".txt"; } if (db == HydrometDataBase.Dayfiles) { remoteFilename = prefix + "instant_" + user + t + ".txt"; } if (db == HydrometDataBase.Archives) { remoteFilename = prefix + "daily_" + user + t + ".txt"; } return(remoteFilename.ToLower()); }
private void ParseCommand(string cmd, HydrometDataBase defaultDataBase) { if (defaultDataBase == HydrometDataBase.Archives) { defaultInterval = "daily"; } if (defaultDataBase == HydrometDataBase.Dayfiles) { defaultInterval = "instant"; } if (defaultDataBase == HydrometDataBase.MPoll) { defaultInterval = "mpoll"; } // look for title prefixed with # Title = ""; var idx = cmd.IndexOf("#"); if (idx >= 0) { Title = cmd.Substring(idx + 1); cmd = cmd.Substring(0, idx); } string pattern = "((?<prefix>\\w+)\\:\\s*)?(?<cbtt>\\w+)\\s+(?<pcode>[A-Za-z0-9\\-_\\.]+)(\\s*\\,|\\s*$)"; var mc = Regex.Matches(cmd, pattern, RegexOptions.IgnorePatternWhitespace); for (int i = 0; i < mc.Count; i++) { m_cbtt.Add(mc[i].Groups["cbtt"].ToString()); var prefix = mc[i].Groups["prefix"].ToString().Trim(); if (prefix == "") { prefix = defaultInterval; } m_interval.Add(prefix); m_pcode.Add(mc[i].Groups["pcode"].ToString()); } }
private static string[] GetParameters(string cbtt, HydrometDataBase db) { var rval = new string[] { }; if (db == HydrometDataBase.Archives) { rval = HydrometInfoUtility.ArchiveParameters(cbtt); } if (db == HydrometDataBase.Dayfiles) { rval = DayfileParameters(cbtt); if (rval.Length == 0) { return(GetParameters(cbtt, TimeInterval.Irregular)); } } if (db == HydrometDataBase.MPoll) { rval = MpollParameters(cbtt); } return(rval); }
/// <summary> /// Expand simplified query /// BOII MX,MN,MM /// is translated to /// BOII MX, BOII MN, BOII MM /// /// GREY /// is translated to /// GREY GH, GREY Q /// </summary> /// <param name="query"></param> /// <returns></returns> public static string ExpandQuery(string query, HydrometDataBase db) { var rval = new List <string>(); string title = ""; var idx = query.IndexOf("#"); if (idx >= 0) { title = query.Substring(idx); query = query.Substring(0, idx); } if (CbttOnly(query)) { string[] pcodes = GetParameters(query, db); if (pcodes.Length > 0) { query = query + " " + String.Join(",", pcodes); // return query; } } string[] pairs = query.Split(','); string cbtt = ""; var pc = ""; for (int i = 0; i < pairs.Length; i++) { string s = pairs[i]; s = s.Replace(": ", ":"); var tokens = s.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); if (i == 0 && tokens.Length != 2) { Logger.WriteLine("query syntax Error: first pair must have cbtt and pcode"); return(query); } if (tokens.Length == 2) { cbtt = tokens[0]; pc = tokens[1]; } else if (tokens.Length == 1) { pc = tokens[0]; } else if (tokens.Length == 0) { continue; } rval.Add(cbtt + " " + pc); } string r = String.Join(",", rval.ToArray()); if (r.Trim() != query.Trim()) { Logger.WriteLine("query expanded to '" + r + "'"); } return(r + title); }
public CommandLine(string cmd, HydrometDataBase defaultDataBase) { this.cmd = cmd; ParseCommand(cmd, defaultDataBase); }