Ejemplo n.º 1
0
        public virtual void ProcessTemplate()
        {
            if (_xslt == null)
            {
                ProjectExceptionArgs args = new ProjectExceptionArgs("XSL Not Set, ProcessTemplate aborted", "WebTemplater", "ProcessTemplate", null, SeverityLevel.Critical, LogLevel.Event);
                throw new ProjectException(args);
            }

            //initialize xslt global param vars
            string doc_folder = httpC.Request.Path;

            //strip application name
            doc_folder = doc_folder.Substring(0, doc_folder.LastIndexOf("/") + 1);

            //Current Page - DOC_ACTION
            _args.AddParam("DOC_ACTION", "", httpC.Request.Path);

            //Current Folder - DOC_FOLDER
            _args.AddParam("DOC_FOLDER", "", doc_folder);

            using (_writer = new StringWriter())
            {
                //_xslt.Transform(_xml.CreateNavigator(),_args, _writer);
                _xslt.xslTransformer(_xml.CreateNavigator(), _args);
                _xslt.XMLObjectSource = _xml;
                _writer.Write(_xslt.ResultText);
            }
        }
Ejemplo n.º 2
0
        private void _SetParameter(string ParamName, string ParamValue)
        {
            try
            {
                if (_querynode == null)
                {
                    throw new Exception("Query not set, call SetQuery first");
                }

                string  xpath = String.Format("parameters/parameter[@name='{0}']", ParamName);
                XmlNode node  = _querynode.SelectSingleNode(xpath);
                if (node == null)
                {
                    throw new Exception("Parameter not found: " + ParamName);
                }

                if (ParamValue != null)
                {
                    node.InnerText = ParamValue;
                }
            }
            catch (Exception unhandled)
            {
                ProjectExceptionArgs args = new ProjectExceptionArgs
                                                ("SetParameter fails for ParamName: " + ParamName, "mso.Utility.XObject", "_SetParameter", null, SeverityLevel.Critical, LogLevel.Event);
                throw new ProjectException(args, unhandled);
            }
        }
Ejemplo n.º 3
0
        /************************************************************
        *	PRIVATE METHODS AND FUNCTIONS
        ************************************************************/
        #region Private Methods and Functions
        private void _Transform()
        {
            try
            {
                //validate before we get started
                if (classXSLObjectSource == "")
                {
                    ProjectExceptionArgs args = new ProjectExceptionArgs("Stylesheet Not Se", "xmlTransformer", "_Transform", null, SeverityLevel.Critical, LogLevel.Event);
                    throw new XMLParserException(args);
                }

                else if (!File.Exists(classXSLObjectSource))
                {
                    string errmsg             = string.Format("Could not find stylesheet: {0}", classXSLObjectSource);
                    ProjectExceptionArgs args = new ProjectExceptionArgs(errmsg, "_Transform", "_Transform", null, SeverityLevel.Critical, LogLevel.Event);
                    throw new XMLParserException(args);
                }

                //check for XML Source
                //load up empty if non existent
                if (classXMLObjectSource == null)
                {
                    classXMLObjectSource = new XmlDocument();
                    classXMLObjectSource.LoadXml(@"<?xml version='1.0'?><ROOT/>");
                }

                //create a navigator object
                XPathNavigator xn;
                xn = classXMLObjectSource.CreateNavigator();

                //run the transformation
                xslTransformer(xn, clsXSLArgs);
            }
            catch (IOException e)
            {
                string errmsg             = "FileIO Transformation Error";
                ProjectExceptionArgs args = new ProjectExceptionArgs(errmsg, "xmlTransformer", "_Transform", null, SeverityLevel.Critical, LogLevel.Event);
                throw new XMLParserException(args, e);
            }
            catch (XmlException e)
            {
                string errmsg             = "XmlException Transformation Error";
                ProjectExceptionArgs args = new ProjectExceptionArgs(errmsg, "xmlTransformer", "_Transform", null, SeverityLevel.Critical, LogLevel.Event);
                throw new XMLParserException(args, e);
            }
            catch (HttpException e)
            {
                string errmsg             = "HttpResponse Transformation Error";
                ProjectExceptionArgs args = new ProjectExceptionArgs(errmsg, "xmlTransformer", "_Transform", null, SeverityLevel.Critical, LogLevel.Event);
                throw new XMLParserException(args, e);
            }
        }
Ejemplo n.º 4
0
        public virtual void ProcessTemplate()
        {
            if (XSLSource == "")
            {
                ProjectExceptionArgs args = new ProjectExceptionArgs("XSLSource Not Set, ProcessTemplate aborted", "WebTemplater", "ProcessTemplate", null, SeverityLevel.Critical, LogLevel.Event);
                throw new XMLParserException(args);
            }

            //initialize xslt global param vars
            SetupXSLTDocument();

            T.XMLObjectSource = clsTemplaterXMLObj;

            T.Transform();
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Sets the query in the SqlProjectDocument
        /// </summary>
        /// <param name="QueryName"></param>
        public void SetQuery(string QueryName)
        {
            try
            {
                string xpath = String.Format("queries/query[@name='{0}']", QueryName);

                _querynode = _xmldocument.SelectSingleNode(xpath);
                if (_querynode == null)
                {
                    throw new Exception("Invalid Query: " + QueryName);
                }

                // Build DB Paramter Fields
                _fields = new DBParameterFields();

                xpath = "parameters/parameter[@lookup][@lookup_value][not(@inout='out')]";
                XmlNodeList nodeparms = _querynode.SelectNodes(xpath);

                foreach (XmlNode node in nodeparms)
                {
                    _fields.Add(new DBParameterField(node.Attributes["name"].Value, node.Attributes["lookup_value"].Value));
                }

                // paging - limit
                xpath = "paging/limit";
                var node2 = _querynode.SelectSingleNode(xpath);
                if (node2 != null)
                {
                    int limit = -1;
                    int.TryParse(node2.InnerText, out limit);
                    _query.Limit = limit;
                }
            }
            catch (Exception unhandled)
            {
                ProjectExceptionArgs args = new ProjectExceptionArgs("Unhandled Exception Occured",
                                                                     "mso.Utility.XObject", "SetQuery", null, SeverityLevel.Critical, LogLevel.Event);

                throw new ProjectException(args, unhandled);
            }
        }
Ejemplo n.º 6
0
        public virtual void ProcessTemplate()
        {
            if (XSLSource == "")
            {
                ProjectExceptionArgs args = new ProjectExceptionArgs("XSLSource Not Set, ProcessTemplate aborted", "WebTemplater", "ProcessTemplate", null, SeverityLevel.Critical, LogLevel.Event);
                throw new XMLParserException(args);
            }

            //initialize xslt global param vars
            SetupXSLTDocument();

            T.XMLObjectSource = clsTemplaterXMLObj;

            T.Transform();
        }
Ejemplo n.º 7
0
 public XMLParserException(ProjectExceptionArgs Args, Exception inner) : base(Args, inner) { }
Ejemplo n.º 8
0
 public XMLParserException(ProjectExceptionArgs Args) : base(Args) { }
Ejemplo n.º 9
0
        public void Query(XmlNode Query)
        {
            string timingToken = "Anonymous Query";

            if (Timing != null)
            {
                if (Query.Attributes["name"] != null)
                {
                    var queryname = Query.Attributes["name"].Value;
                    timingToken = String.Format("ProjectFlxDB.DB.DatabaseQuery {0}", queryname);
                }
                Timing.Start(timingToken);
            }

            XmlElement elm = null;

            string _commandtext = null;
            string xpath        = null;

            if (_database.State != ConnectionState.Open)
            {
                _database.Open();
            }

            InitializeCommand();

            // command timeout
            if (Query.Attributes["script-timeout"] != null)
            {
                _command.CommandTimeout = int.Parse(Query.Attributes["script-timeout"].Value);
            }

            _querynode = Query;

            try
            {
                // command type
                xpath = "command/type";
                elm   = (XmlElement)Query.SelectSingleNode(xpath);
                switch (elm.InnerText)
                {
                case "StoredProcedure":
                    _command.Parameters.Clear();
                    _command.CommandType = CommandType.StoredProcedure;
                    break;

                case "Select":
                case "SQL":
                    _command.CommandType = CommandType.Text;
                    break;
                }

                // command text
                switch (_command.CommandType)
                {
                case (CommandType.Text):
                    xpath        = "command/text";
                    elm          = (XmlElement)Query.SelectSingleNode(xpath);
                    _commandtext = Regex.Replace(elm.InnerText, @"^[ \t]+", "", RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace);
                    _commandtext = Regex.Replace(_commandtext, @"(\r\n)", " ", RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace);
                    break;

                default:
                    xpath        = "command/name";
                    elm          = (XmlElement)Query.SelectSingleNode(xpath);
                    _commandtext = elm.InnerText;
                    _command.Parameters.Clear();
                    break;
                }

                // command parameters - in only
                xpath = "parameters/parameter[not(@inout='out')]";
                XmlNodeList nodes = Query.SelectNodes(xpath);
                foreach (XmlNode node in nodes)
                {
                    // validate input
                    if (validInput(node))
                    {
                        if (_command.CommandType == CommandType.Text)
                        {
                            string replaceparam = "[" + node.Attributes["name"].Value + "]";
                            _commandtext = _commandtext.Replace(replaceparam, node.InnerText);
                        }
                        else
                        {
                            elm = (XmlElement)node;
                            if (!elm.IsEmpty)
                            {
                                int size = 0;
                                if (!String.IsNullOrEmpty(elm.GetAttribute("size")))
                                {
                                    size = Convert.ToInt32(elm.GetAttribute("size"));
                                }

                                AddParameter(elm.GetAttribute("name"), elm.InnerText, elm.GetAttribute("type"), elm.GetAttribute("inout"), size);
                            }
                        }
                    }
                }

                // did all input values validate?
                if (!_isValid)
                {
                    throw new ProjectException("Invalid Formatting Exception", _handler);
                }

                // command parameters - output only (are required)
                xpath = "parameters/parameter[@inout='out']";
                nodes = Query.SelectNodes(xpath);
                foreach (XmlNode node in nodes)
                {
                    if (_command.CommandType == CommandType.Text)
                    {
                        string replaceparam = "[" + node.Attributes["name"].Value + "]";
                        _commandtext.Replace(replaceparam, node.InnerText);
                    }
                    else
                    {
                        elm = (XmlElement)node;
                        int size = 0;
                        if (!String.IsNullOrEmpty(elm.GetAttribute("size")))
                        {
                            size = Convert.ToInt32(elm.GetAttribute("size"));
                        }

                        AddParameter(elm.GetAttribute("name"), elm.InnerText, elm.GetAttribute("type"), elm.GetAttribute("inout"), size);
                    }
                }

                _command.CommandText = _commandtext;

                // prepare result xml document
                XmlNode importnode;
                XmlNode newElm;
                _xmresult = new XmlDocument();
                _xmresult.LoadXml("<results><schema/></results>");
                _xmresult.DocumentElement.SetAttribute("name", Query.Attributes["name"].Value);
                if (!String.IsNullOrEmpty(_sqlProjName))
                {
                    _xmresult.DocumentElement.SetAttribute("ProjectSqlFile", _sqlProjName);
                }
                importnode = _xmresult.ImportNode(Query, true);
                _xmresult.SelectSingleNode("results/schema").AppendChild(importnode);


                // execute query
                int scalar = 0;
                int rows   = 0;
                xpath = "command/action";
                elm   = (XmlElement)Query.SelectSingleNode(xpath);

                switch (elm.InnerText)
                {
                case ("Scalar"):
                    var obj = _command.ExecuteScalar();
                    int.TryParse(obj == null ? "0" : obj.ToString(), out scalar);
                    _scalar = scalar;
                    if (scalar > 0)
                    {
                        rows = 1;
                    }
                    _rowsaffected = rows;

                    // set result in xml
                    elm              = (XmlElement)_xmresult.SelectSingleNode("results");
                    newElm           = _xmresult.CreateElement("result");
                    newElm.InnerText = Convert.ToString(_rowsaffected);
                    elm.AppendChild(newElm);

                    break;

                case ("Result"):
                    var cachekey      = cacheKeyHelper(_xmresult);
                    var cachedBuilder = GetCache(cachekey);
                    if (cachedBuilder != null && _cachingEnabled)
                    {
                        pushToTree(cachedBuilder);
                    }
                    else
                    {
                        SqlDataReader dr = null;
                        try
                        {
                            // TODO: move open DB here (or similar) to avoid open db when cache results
                            dr = _command.ExecuteReader();
                            BuildResults(dr);
                        }
                        finally
                        {
                            if (dr != null)
                            {
                                dr.Close();
                            }
                        }
                    }
                    break;

                case ("NonQuery"):

                default:
                    rows          = _command.ExecuteNonQuery();
                    _rowsaffected = rows;

                    // set result in xml
                    elm              = (XmlElement)_xmresult.SelectSingleNode("results");
                    newElm           = _xmresult.CreateElement("result");
                    newElm.InnerText = Convert.ToString(_rowsaffected);
                    elm.AppendChild(newElm);

                    break;
                }

                // set output parameter results on result xml document
                xpath = "results/schema/query/parameters/parameter[@inout='out' or @inout='inout']";
                nodes = _xmresult.SelectNodes(xpath);
                foreach (XmlNode node in nodes)
                {
                    node.InnerText = _command.Parameters[node.Attributes["name"].InnerText].Value.ToString();
                }
            }
            catch (SqlException handledSql)
            {
                if (handledSql.Message.Contains(" duplicate key "))
                {
                    if (QuiteUniqueConstraints == false)
                    {
                        throw handledSql;
                    }
                }
                else
                {
                    throw handledSql;
                }
            }
            catch (Exception unhandled)
            {
                ProjectExceptionArgs args = new ProjectExceptionArgs("Sorry, we handled an exception.  The problem has been sent to MSO Admin", "mso.Utility.DB.DatabaseQuery", "Query " + _commandtext, null, SeverityLevel.Critical, LogLevel.Event);
                throw new ProjectException(args, unhandled);
            }
            finally
            {
                if (Timing != null)
                {
                    Timing.Stop(timingToken);
                }
            }
        }
Ejemplo n.º 10
0
        private bool validInput(XmlNode node)
        {
            bool result   = true;
            bool required = false;

            XmlElement m = (XmlElement)node;

            // exceptions - no regular expression check
            if (m.GetAttribute("validation") == "")
            {
                return(true);
            }

            // for each validation scenario in validations (space delimited list
            string[]      aValid      = m.GetAttribute("validation").Split(' ');
            List <string> validations = new List <string>(aValid);
            string        srequired   = validations.Find(delegate(String s) { return(s == "required"); });
            bool          isrequired  = Convert.ToBoolean(String.IsNullOrEmpty(srequired) ? false : srequired.Equals("true") || srequired.Equals("True"));

            foreach (string validation in validations)
            {
                if (validation.StartsWith("regx:"))
                {
                    if (!m.IsEmpty || !string.IsNullOrEmpty(m.InnerText))
                    {
                        //load validation xml obj library
                        if (_xmRegX == null)
                        {
                            throw new Exception("RegX input validation fails, RegX library not loaded");
                        }

                        // TODO: pass back friendly title for item
                        if (!validInputTestRegX(m.InnerText, validation.Split(':')[1]))
                        {
                            if (!isrequired && m.InnerText.Length == 0)
                            {
                                result = true;
                            }
                            else
                            {
                                result = false;
                                ProjectExceptionArgs args = new ProjectExceptionArgs(String.Format("Invalid Format for item: {0}", String.IsNullOrEmpty(m.GetAttribute("title")) ? m.GetAttribute("name") : m.GetAttribute("title")), SeverityLevel.Format);
                                _handler.Add(args);
                            }
                        }
                    }
                }
                else
                {
                    switch (validation)
                    {
                    case "required":
                        // expecting a value for innertext
                        required = true;
                        if (m.IsEmpty)
                        {
                            result = false;
                            ProjectExceptionArgs args = new ProjectExceptionArgs(String.Format("A value is required: {0}", String.IsNullOrEmpty(m.GetAttribute("title")) ? m.GetAttribute("name") : m.GetAttribute("title")), SeverityLevel.Format);
                            _handler.Add(args);
                        }
                        break;
                    }
                }
            }

            // test the object type for consistency with object value
            if (required && result)
            {
                switch (m.GetAttribute("type"))
                {
                case "int":
                    if (!(validInputTestNumber(m.InnerText)))
                    {
                        result = false;
                        ProjectExceptionArgs args = new ProjectExceptionArgs(String.Format("Format Exception, expecting a valid number for: {0}", String.IsNullOrEmpty(m.GetAttribute("title")) ? m.GetAttribute("name") : m.GetAttribute("title")), SeverityLevel.Format);
                        _handler.Add(args);
                    }
                    break;

                case "text":
                case "varchar":
                    if (!(validInputTestCharacters(m.InnerText, m.GetAttribute("size"))))
                    {
                        result = false;
                        ProjectExceptionArgs args = new ProjectExceptionArgs(String.Format("Format Exception, too many characters for: {0}, expecting: {1}", String.IsNullOrEmpty(m.GetAttribute("title")) ? m.GetAttribute("name") : m.GetAttribute("title"), m.GetAttribute("size")), SeverityLevel.Format);
                        _handler.Add(args);
                    }
                    break;

                case "date":
                    // expecting a value that can parse as a date
                    if (!(validInputTestDate(m.InnerText)))
                    {
                        result = false;
                        ProjectExceptionArgs args = new ProjectExceptionArgs(String.Format("Format Exception, expecting a valid date for: {0}", String.IsNullOrEmpty(m.GetAttribute("title")) ? m.GetAttribute("name") : m.GetAttribute("title"), m.GetAttribute("size")), SeverityLevel.Format);
                        _handler.Add(args);
                    }
                    break;
                }
            }

            return(result);
        }
Ejemplo n.º 11
0
        private void BuildResults(SqlDataReader dr, int subqueryIndex = 0)
        {
            // paging
            switch (_pagingDirection)
            {
            case DatabaseQueryPagingDirection.Top:
                _currentPage = 1;
                break;

            case DatabaseQueryPagingDirection.Next:
                _currentPage++;
                break;

            case DatabaseQueryPagingDirection.Previous:
                _currentPage--;
                if (_currentPage < 1)
                {
                    _currentPage = 1;
                }
                break;
            }

            int startread = (_currentPage * _pagingLimit) - _pagingLimit;
            int endread   = startread + _pagingLimit;

            //build result node
            MemoryStream  stream = new MemoryStream();
            XmlTextWriter w      = new XmlTextWriter(stream, Encoding.UTF8);

            XmlNodeList fieldNodes;

            // begin writing the xml result
            w.WriteStartElement("result");

            try
            {
                //field values for results
                if (subqueryIndex > 0)
                {
                    fieldNodes = _querynode.SelectNodes(String.Format(@"subquery[{0}]/fields/field", subqueryIndex));
                }
                else
                {
                    fieldNodes = _querynode.SelectNodes(@"fields/field");
                }

                //add rows to result node
                int currentrow = 0;

                _resultPages = getNewResultPages(_querynode);
                int pagecount   = 1;
                int inpagecount = 0;
                while (dr.Read())
                {
                    bool flginpage = false;

                    if ((currentrow >= (startread) && currentrow < endread) || _pagingLimit == -1)
                    {
                        flginpage = true;
                    }

                    #region in page write results
                    if (flginpage)
                    {
                        w.WriteStartElement("row");

                        // if we come accross Json fields, they are translated to Xml and added as child to row node
                        // keep track of them and add them after all attributes have been processed
                        List <string> innerXml = new List <string>();

                        //attributes (fields)
                        if (fieldNodes.Count > 0)
                        {
                            foreach (XmlElement m in fieldNodes)
                            {
                                try
                                {
                                    // validate json type
                                    if (m.GetAttribute("type") == "json" || m.GetAttribute("type") == "tryjson")
                                    {
                                        try
                                        {
                                            var    val  = dr[m.GetAttribute("name")].ToString();
                                            string json = null;
                                            if (string.IsNullOrEmpty(val))
                                            {
                                                json = "{}";
                                            }
                                            else
                                            {
                                                var jsoObj = Newtonsoft.Json.Linq.JObject.Parse(val);
                                                json = val;
                                            }
                                            w.WriteAttributeString(m.GetAttribute("name").ToString(), json);
                                        }
                                        catch (IndexOutOfRangeException handled)
                                        {
                                            throw handled;
                                        }
                                        catch (Exception unhandled)
                                        {
                                            w.WriteAttributeString(m.GetAttribute("name").ToString(), "{\"error\":\"" + unhandled.Message + "\"}");
                                        }
                                    }
                                    else
                                    {
                                        string val = dr[m.GetAttribute("name")].ToString();
                                        if (!(m.HasAttribute("encode") || m.HasAttribute("regx")))
                                        {
                                            val = dr[m.GetAttribute("name")].ToString().Trim();
                                        }

                                        if (m.HasAttribute("encode"))
                                        {
                                            val = System.Web.HttpUtility.UrlEncode(dr[m.GetAttribute("encode")].ToString().TrimEnd()).Replace("+", "%20");;
                                        }
                                        if (m.HasAttribute("regx") && m.HasAttribute("replace") && m.HasAttribute("field"))
                                        {
                                            val = dr[m.GetAttribute("field")].ToString().Trim();
                                            val = Regex.Replace(val, m.GetAttribute("regex").ToString(), m.GetAttribute("replace").ToString());
                                        }
                                        w.WriteAttributeString(m.GetAttribute("name").ToString(), String.IsNullOrEmpty(val) ? "" : safeXmlCharacters(val.ToString().Trim()));
                                    }


                                    if (m.GetAttribute("type") == "json")
                                    {
                                        string xml = null;
                                        try
                                        {
                                            var details = dr[m.GetAttribute("name")].ToString();

                                            // try to parse it


                                            string jsonDetails = String.Format("{{\"{0}\":{1}}}", m.GetAttribute("name"), details);
                                            xml = JsonConvert.DeserializeXmlNode(jsonDetails).OuterXml;
                                            if (xml.StartsWith("<?"))
                                            {
                                                xml = xml.Substring(xml.IndexOf("?>") + 2);
                                            }
                                        }
                                        catch (JsonReaderException) { }
                                        catch (JsonSerializationException) { }
                                        finally
                                        {
                                            if (xml != null)
                                            {
                                                innerXml.Add(xml);
                                            }
                                        }
                                    }
                                }
                                catch (IndexOutOfRangeException handled)
                                {
                                    w.WriteAttributeString(m.GetAttribute("name").ToString(), "#field not found#");
                                }
                            }
                        }
                        else
                        {
                            for (int i = 0; i < dr.FieldCount; i++)
                            {
                                w.WriteAttributeString(dr.GetName(i), dr[i].ToString().Trim());
                            }
                        }

                        // add inner xml
                        foreach (String s in innerXml)
                        {
                            w.WriteRaw(s);
                        }

                        w.WriteEndElement();
                    }
                    #endregion


                    _rowsaffected = currentrow++;
                    inpagecount++;
                    if (inpagecount >= _pagingLimit)
                    {
                        _resultPages.Add(new ResultPaging(pagecount++, inpagecount));
                        inpagecount = 0;
                    }
                }

                // get last result for _resultPage
                if (inpagecount > 0)
                {
                    _resultPages.Add(new ResultPaging(pagecount++, inpagecount));
                }

                _results = true;

                // reset a couple of paging items
                _currentPage     = 1;
                _pagingDirection = DatabaseQueryPagingDirection.None;
            }
            catch (IndexOutOfRangeException ie)
            {
                string errmsg             = string.Format("One or more invalid Field or Parameters for QueryName: {0}", _querynode.Attributes["name"].InnerText);
                ProjectExceptionArgs args = new ProjectExceptionArgs(errmsg, "Database.cs", "BuildResults", null, SeverityLevel.Fatal, LogLevel.Event);
                throw new ProjectException(args, ie);
            }
            catch (SqlException se)
            {
                string errmsg             = string.Format("ExecuteReader Error For QueryName: {0}", _querynode.Attributes["name"].InnerText);
                ProjectExceptionArgs args = new ProjectExceptionArgs(errmsg, "Database.cs", "BuildResults", null, SeverityLevel.Fatal, LogLevel.Event);
                throw new ProjectException(args, se);
            }

            //end result node
            w.WriteEndElement();
            w.Flush();

            // include sub results (StoredProcedure returns more than one Result Set)
            while (dr.NextResult())
            {
                subqueryIndex++;
                BuildResults(dr, subqueryIndex);
            }


            //add stream xml to return xml
            XmlDocument xmStreamObj = new XmlDocument();
            stream.Seek(0, SeekOrigin.Begin);
            xmStreamObj.Load(stream);

            pushToTree(xmStreamObj, subqueryIndex);
        }
Ejemplo n.º 12
0
        private void AddParameter(string name, object value, string valueType, string inout, int size)
        {
            _command.CommandType = CommandType.StoredProcedure;
            SqlParameter         parameter = null;
            ProjectExceptionArgs args      = null;

            switch (valueType)
            {
            case ("int"):
                parameter = _command.Parameters.Add(name, SqlDbType.Int);
                try
                {
                    parameter.Value = Convert.ToInt32(value);
                }
                catch (FormatException)
                {
                    args = new ProjectExceptionArgs(
                        String.Format("Invalid parameter value for: {0} - expecting valid number", name), SeverityLevel.Format);
                    _handler.Add(args);
                }
                break;

            case ("date"):
                parameter = _command.Parameters.Add(name, SqlDbType.DateTime);
                try
                {
                    parameter.Value = Convert.ToDateTime(value);
                }
                catch (FormatException)
                {
                    args = new ProjectExceptionArgs(
                        String.Format("Invalid parameter value for: {0} - expecting a valid Date", name), SeverityLevel.Format);
                    _handler.Add(args);
                }
                break;

            case ("varchar"):
                parameter = _command.Parameters.Add(name, SqlDbType.VarChar);
                try
                {
                    parameter.Value = Convert.ToString(value);
                    parameter.Size  = (size <= 0) ? (-1) : size;
                }
                catch (FormatException)
                {
                    args = new ProjectExceptionArgs(
                        String.Format("Invalid parameter value for: {0} - expecting a valid String", name), SeverityLevel.Format);
                    _handler.Add(args);
                }
                break;

            case ("text"):
            default:
                try
                {
                    if (size <= 0)
                    {
                        parameter      = _command.Parameters.Add(name, SqlDbType.VarChar);
                        parameter.Size = -1;
                    }
                    else
                    {
                        parameter      = _command.Parameters.Add(name, SqlDbType.Text);
                        parameter.Size = (size <= 0) ? (-1) : size;
                    }
                    parameter.Value = Convert.ToString(value);
                }
                catch (InvalidCastException)
                {
                    args = new ProjectExceptionArgs(
                        String.Format("Invalid parameter value for: {0} - expecting a valid String", name), SeverityLevel.Format);
                    _handler.Add(args);
                }
                break;
            }

            // parameter direction
            if (inout == "inout")
            {
                parameter.Direction = ParameterDirection.InputOutput;
            }
            if (inout == "out")
            {
                parameter.Direction = ParameterDirection.Output;
            }
        }
Ejemplo n.º 13
0
        private void _Transform()
        {
            try
            {

                //validate before we get started
                if (classXSLObjectSource == "")
                {
                    ProjectExceptionArgs args = new ProjectExceptionArgs("Stylesheet Not Se", "xmlTransformer", "_Transform", null, SeverityLevel.Critical, LogLevel.Event);
                    throw new XMLParserException(args);
                }

                else if (!File.Exists(classXSLObjectSource))
                {
                    string errmsg = string.Format("Could not find stylesheet: {0}", classXSLObjectSource);
                    ProjectExceptionArgs args = new ProjectExceptionArgs(errmsg, "_Transform", "_Transform", null, SeverityLevel.Critical, LogLevel.Event);
                    throw new XMLParserException(args);
                }

                //check for XML Source
                //load up empty if non existent
                if (classXMLObjectSource == null)
                {
                    classXMLObjectSource = new XmlDocument();
                    classXMLObjectSource.LoadXml(@"<?xml version='1.0'?><ROOT/>");
                }

                //create a navigator object
                XPathNavigator xn;
                xn = classXMLObjectSource.CreateNavigator();

                //run the transformation
                xslTransformer(xn, clsXSLArgs);

            }
            catch (IOException e)
            {
                string errmsg = "FileIO Transformation Error";
                ProjectExceptionArgs args = new ProjectExceptionArgs(errmsg, "xmlTransformer", "_Transform", null, SeverityLevel.Critical, LogLevel.Event);
                throw new XMLParserException(args, e);
            }
            catch (XmlException e)
            {
                string errmsg = "XmlException Transformation Error";
                ProjectExceptionArgs args = new ProjectExceptionArgs(errmsg, "xmlTransformer", "_Transform", null, SeverityLevel.Critical, LogLevel.Event);
                throw new XMLParserException(args, e);
            }
            catch (HttpException e)
            {
                string errmsg = "HttpResponse Transformation Error";
                ProjectExceptionArgs args = new ProjectExceptionArgs(errmsg, "xmlTransformer", "_Transform", null, SeverityLevel.Critical, LogLevel.Event);
                throw new XMLParserException(args, e);
            }
        }
Ejemplo n.º 14
0
 public XMLParserException(ProjectExceptionArgs Args, Exception inner) : base(Args, inner)
 {
 }
Ejemplo n.º 15
0
 public XMLParserException(ProjectExceptionArgs Args) : base(Args)
 {
 }