Exemple #1
0
        public QuerySource(string name, string source)
        {
            if (name.IsNullOrWhiteSpace() || source.IsNullOrWhiteSpace())
            {
                throw new DataAccessException(StringConsts.ARGUMENT_ERROR + "QuerySource.ctor(name | source = null|empty)");
            }

            m_Name            = name;
            m_OriginalSource  = source;
            m_StatementSource = m_OriginalSource;
            m_Columns         = new Collections.Registry <ColumnDef>();
            var lines = source.SplitLines();

            if (lines.Length < 4)
            {
                return;                    // pragma, 1 line, space, statement = 4
            }
            if (lines[0] != PRAGMA)
            {
                return;
            }

            m_HasPragma = true;

            var pragma = true;
            var sb     = new StringBuilder();

            for (var i = 1; i < lines.Length; i++)
            {
                if (!pragma)
                {
                    sb.AppendLine(lines[i]);
                    continue;
                }

                var line = lines[i].TrimStart();
                if (line.Length == 0)
                {
                    pragma = false;
                    continue;
                }
                var ieq = line.IndexOf('=');
                if (ieq <= 0 || ieq == line.Length - 1)
                {
                    throw new DataAccessException(StringConsts.CRUD_QUERY_SOURCE_PRAGMA_ERROR.Args(i, line, "syntax"));
                }

                var pname  = line.Substring(0, ieq).Trim();
                var pvalue = line.Substring(ieq + 1);
                parseLine(i, line, pname, pvalue);
            }
            m_StatementSource = sb.ToString();
        }
Exemple #2
0
 public ApplicationRealmBase() : base()
 {
     m_Areas = new Collections.Registry <IApplicationRealmArea>();
 }