public static ActionResult UnzipSched(Session session) { session.Log("Begin UnzipSched"); Unzip unzipper = new Unzip(); IList <string> results = session.Database.ExecuteStringQuery("SELECT `Id`, `ZipFile`, `TargetFolder`, `Flags`, `Condition` FROM `PSW_Unzip`"); for (int i = 0; i < results.Count; i += 5) { string id = results[i + 0]?.ToString(); string zipFile = results[i + 1]?.ToString(); string targetFolder = results[i + 2]?.ToString(); string flags = results[i + 3]?.ToString(); string condition = results[i + 4]?.ToString(); if (!string.IsNullOrEmpty(condition) && !session.EvaluateCondition(condition)) { session.Log($"Condition '{condition}' evaluates to false"); continue; } int nFlags = int.Parse(flags); unzipper.SchedUnzip(id, session.Format(zipFile), session.Format(targetFolder), (UnzipFlags)nFlags); } XmlSerializer srlz = new XmlSerializer(unzipper.catalogs_.GetType()); using (StringWriter sw = new StringWriter()) { srlz.Serialize(sw, unzipper.catalogs_); session["UnzipExec"] = sw.ToString(); } return(ActionResult.Success); }
public static ActionResult UnzipExec(Session session) { session.Log("Begin UnzipExec"); Unzip unzipper = new Unzip(); XmlSerializer srlz = new XmlSerializer(unzipper.catalogs_.GetType()); string cad = session["CustomActionData"]; using (StringReader sr = new StringReader(cad)) { if (srlz.Deserialize(sr) is IEnumerable <UnzipCatalog> ctlgs) { unzipper.catalogs_.AddRange(ctlgs as IEnumerable <UnzipCatalog>); } } unzipper.ExecUnzip(session); return(ActionResult.Success); }