Пример #1
0
 public StoredProcedureRtt(
     ProcedureInfo procedureInfo,
     IDiagnosticsCallback diagnosticsCallback,
     IFormatInfo formatInfo)
     : base(diagnosticsCallback, formatInfo)
 {
     Procedure = procedureInfo;
 }
Пример #2
0
 internal ProjectionBuilder(
     ICatalogReader catalogReader,
     IMappingReader mappingReader,
     IDiagnosticsCallback diagnosticsCallbackProxy)
 {
     _catalogReader            = catalogReader;
     _mappingReader            = mappingReader;
     _diagnosticsCallbackScope = new DiagnosticsCallbackScope(diagnosticsCallbackProxy);
 }
Пример #3
0
 public DiagnosticsCallbackScope(IDiagnosticsCallback callback, string messagePrefix = null)
 {
     if (ReferenceEquals(callback, null))
     {
         throw new ArgumentNullException(nameof(callback));
     }
     m_innerCallback = callback;
     m_messagePrefix = string.IsNullOrWhiteSpace(messagePrefix) ? null : messagePrefix;
 }
Пример #4
0
 public CmdBuilderFactoryRtt(
     IEnumerable <ProcedureInfo> procedures,
     IDiagnosticsCallback diagnosticsCallback,
     IFormatInfo formatInfo)
     : base(diagnosticsCallback, formatInfo)
 {
     procedures  = procedures ?? Enumerable.Empty <ProcedureInfo>();
     Procedures  = procedures.OrderBy(sp => sp.FullName, StringComparer.Ordinal).ToList();
     SpFullNames = Procedures.Select(sp => sp.FullName).ToList();
 }
Пример #5
0
 public UserDefinedTableTypeRtt(
     DataTable schema,
     IDiagnosticsCallback diagnosticsCallback,
     IFormatInfo formatInfo) : base(diagnosticsCallback, formatInfo)
 {
     if (ReferenceEquals(schema, null))
     {
         throw new ArgumentNullException(nameof(schema));
     }
     Schema = schema;
 }
Пример #6
0
 protected RuntimeTextTemplate(IDiagnosticsCallback diagnosticsCallback, IFormatInfo formatInfo)
 {
     if (ReferenceEquals(diagnosticsCallback, null))
     {
         throw new ArgumentException(nameof(diagnosticsCallback));
     }
     if (ReferenceEquals(diagnosticsCallback, null))
     {
         throw new ArgumentException(nameof(formatInfo));
     }
     m_diagnosticsCallback = diagnosticsCallback;
     m_formatInfo          = formatInfo;
 }
Пример #7
0
        public static async Task <Projection> BuildAsync(IDiagnosticsCallback diagnosticsCallback, string mappingFile, string connectionString)
        {
            SqlConnection connection = null;

            try { connection = new SqlConnection(connectionString); }
            catch (InvalidOperationException) { throw new ConnectionStringFormatException(connectionString); }

            var diagnosticsCallbackScope = new DiagnosticsCallbackScope(
                diagnosticsCallback,
                $"{Path.GetFileName(mappingFile)} <-> [{connection.DataSource}].[{connection.Database}] >");
            var catalogReader = new CatalogReader(connectionString, diagnosticsCallback);
            var mappingReader = new MappingReader(mappingFile, diagnosticsCallback);
            var modelReader   = new ProjectionBuilder(catalogReader, mappingReader, diagnosticsCallbackScope);

            return(await modelReader.BuildAsync());
        }
Пример #8
0
        public CatalogReader(string connectionString, IDiagnosticsCallback diagnosticsCallback)
        {
            string pattern = Regex.Replace(@"(?:xis);? Max Pool Size\s*=\s*\d+ |;?$", @"\s+", @"\s+");

            connectionString   = Regex.Replace(connectionString, pattern, ";Max Pool Size=10");
            m_connectionString = connectionString;
            try
            {
                var connection = new SqlConnection(connectionString);
                DataSource = connection.DataSource;
                Database   = connection.Database;

                m_diagnosticsCallback = new DiagnosticsCallbackScope(diagnosticsCallback, $"[{DataSource}].[{Database}] > ");
                //TODO: verify sever version
                using (connection)
                {
                    connection.Open();
                }
            }
            catch (SqlException ex)
            {
                var message = new StringBuilder($"Could not reach the {Database} database on server {DataSource}.");
                if (ex.Number == 18487 || ex.Number == 18488)
                {
                    message.Append(" The specified password has expired or must be reset.");
                }
                else
                {
                    message.Append(" Make sure that the connection string specified in Transaction Script Code Generating tool is valid");
                    message.Append($" and also that the {DataSource} SQL Server instance is up and running.");
                }
                m_diagnosticsCallback.Error(message.ToString());
                throw new DatabaseNotAccessibleException();
            }
            catch (ArgumentException)
            {
                var message = new StringBuilder("Invalid connection string.")
                              .Append($" Connection string: \"{m_connectionString}\"");

                m_diagnosticsCallback.Error(message.ToString());
                throw new ConnectionStringFormatException(connectionString);
            }
        }
Пример #9
0
 public RuntimeTextTemplateFactory(
     Projection.Projection projection,
     IDiagnosticsCallback diagnosticsCallback,
     IFormatInfo formatInfo)
 {
     if (ReferenceEquals(projection, null))
     {
         throw new ArgumentException(nameof(projection));
     }
     if (ReferenceEquals(diagnosticsCallback, null))
     {
         throw new ArgumentException(nameof(diagnosticsCallback));
     }
     if (ReferenceEquals(diagnosticsCallback, null))
     {
         throw new ArgumentException(nameof(formatInfo));
     }
     m_projection          = projection;
     m_diagnosticsCallback = diagnosticsCallback;
     m_formatInfo          = formatInfo;
 }
Пример #10
0
        protected SchemaValidatingXmlSerializer(
            string schemaXmlString,
            IDiagnosticsCallback diagnosticsCallback)
        {
            var schema = XmlSchema.Read(new StringReader(schemaXmlString), (e, a) =>
            {
                if (a.Severity == XmlSeverityType.Error)
                {
                    throw new InvalidOperationException();
                }
            });

            m_serializer = new XmlSerializer(typeof(T));
            m_diagnosticsCallbackScope = new DiagnosticsCallbackScope(diagnosticsCallback);
            var schemas = new XmlSchemaSet();

            schemas.Add(schema);
            m_settings = new XmlReaderSettings
            {
                Schemas         = schemas,
                ValidationType  = ValidationType.Schema,
                ValidationFlags =
                    XmlSchemaValidationFlags.ProcessIdentityConstraints |
                    XmlSchemaValidationFlags.ReportValidationWarnings
            };
            m_settings.ValidationEventHandler +=
                delegate(object sender, ValidationEventArgs args)
            {
                if (args.Severity == XmlSeverityType.Error)
                {
                    this.OnError(args.Message);
                    m_schemaErrorsCount++;
                }
                else if (args.Severity == XmlSeverityType.Warning)
                {
                    this.OnWarning(args.Message);
                }
            };
        }
Пример #11
0
 public MappingReader(string filePath, IDiagnosticsCallback diagnosticsCallback)
 {
     m_filePath            = filePath;
     m_diagnosticsCallback = new DiagnosticsCallbackScope(diagnosticsCallback, $"{Path.GetFileName(filePath)} >");
 }
Пример #12
0
 public CommonRtt(IDiagnosticsCallback diagnosticsCallback, IFormatInfo formatInfo) : base(diagnosticsCallback, formatInfo)
 {
 }
Пример #13
0
 public static Projection Build(IDiagnosticsCallback diagnosticsCallback, string mappingFile, string connectionString)
 {
     return(ProjectionBuilder.BuildAsync(diagnosticsCallback, mappingFile, connectionString).GetAwaiter().GetResult());
 }
Пример #14
0
 public MappingSerializer(IDiagnosticsCallback host)
     : base(Resources.Zahar_SqlClient, host)
 {
 }