/// <summary> /// Runs a DECODES routing spec, for a specific site /// </summary> /// <returns></returns> public static void RunDecodesRoutingSpec(PostgreSQL svr, string routingSpecName, DateTime t1, DateTime t2, string siteid, string outputFileName, string logFileName) { if (!UpdateNessidInRoutingProperties(svr, siteid)) { return; } // update the output filename var sql = "select * from routingspec where name = 'hydromet-tools'"; var tbl = svr.Table("routingspec", sql); if (tbl.Rows.Count != 1) { Logger.WriteLine("Error: routing spec named 'hydromet-tools' was not found"); return; } tbl.Rows[0]["consumerarg"] = outputFileName; tbl.Rows[0]["sincetime"] = t1.Year.ToString() + "/" + t1.DayOfYear.ToString("000") + t1.ToString(" HH:mm:ss"); tbl.Rows[0]["untiltime"] = t2.Year.ToString() + "/" + t2.DayOfYear.ToString("000") + t2.ToString(" HH:mm:ss"); svr.SaveTable(tbl); // run the routing spec. //C:\Hydromet\OPENDCS\bin>rs hydromet-tools string dir = ConfigurationManager.AppSettings["DECODES_INSTALL_DIR"]; if (string.IsNullOrEmpty(dir) || !Directory.Exists(dir)) { Logger.WriteLine("Error: DECODES_INSTALL_DIR is not define in app.config or path not found "); } var exe = Path.Combine(dir, "bin", "rs.bat"); var args = "-d 3 -l " + logFileName + " hydromet-tools"; var rval = ProgramRunner.RunExecutable(exe, args); foreach (var item in rval) { Logger.WriteLine(item); } }