Example #1
0
        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);
        }