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