예제 #1
0
        /// <summary>
        /// Parses the exported status and builds an array of export status information. As per
        /// status it builds a status array which contains statusCode (0/1), statusMesage, fileName,
        /// width, height and notice in some cases.
        /// </summary>
        /// <param name="filename">exported status ( false if failed/error, filename as stirng if success)</param>
        /// <param name="meta">Hastable containing meta descriptions of the chart like width, height</param>
        /// <param name="msg">custom message to be added as statusMessage.</param>
        /// <returns></returns>
        private IList <string> ParseExportedStatus(object filename, Hashtable meta, string msg)
        {
            var arrStatus = new List <string>();

            bool status = filename is string;

            // add notices
            if (Notices.Length > 0)
            {
                arrStatus.Add("notice=" + Notices.ToString().Trim());
            }

            // DOMId of the chart
            arrStatus.Add("DOMId=" + (meta["DOMId"] == null ? DOMId : meta["DOMId"].ToString()));

            // add width and height
            if (meta["width"] == null)
            {
                meta["width"] = 0;
            }
            if (meta["height"] == null)
            {
                meta["height"] = 0;
            }

            arrStatus.Add("height=" + (status ? meta["height"].ToString() : "0"));
            arrStatus.Add("width=" + (status ? meta["width"].ToString() : "0"));

            // add file URI
            arrStatus.Add("fileName=" + (status ? (Regex.Replace(ExporterPath, @"([^\/]$)", "${1}/") + filename) : ""));
            arrStatus.Add("statusMessage=" + (msg.Trim() != "" ? msg.Trim() : (status ? "Success" : "Failure")));
            arrStatus.Add("statusCode=" + (status ? "1" : "0"));

            return(arrStatus);
        }