Пример #1
0
        protected override async Task <Hades.AclService> GetAclServiceAsync()
        {
            var manager = new SqlServerManager(AppSettings.ConnectionString);
            await manager.CreateDatabaseSchemaAsync();

            return(new Hades.AclService(manager));
        }
Пример #2
0
        public override void SetUp()
        {
            base.SetUp();

            person = new Person
            {
                FirstName = "Paymon",
                LastName  = "Khamooshi"
            };

            #region Create database for Person entity

            var server = new SqlServerManager();

            if (server.Exists(TempDatabaseName, DatabaseFilesPath.FullName))
            {
                return;
            }

            server.ClearConnectionPool();
            server.Delete(TempDatabaseName);

            foreach (var file in GetExecutableCreateDbScripts(TempDatabaseName))
            {
                try { server.Execute(file.Value, TempDatabaseName); }
                catch (Exception ex)
                { throw new Exception("Could not execute sql file '" + file.Key.FullName + "'", ex); }
            }

            server.ClearConnectionPool();

            #endregion
        }
Пример #3
0
        public void DescriptionName()
        {
            SqlServerManager manager = SqlServerManager.Instance;
            string           name    = ((IManager)manager).Description.Name;

            Assert.IsNotNull(name);
            Assert.IsTrue(!string.IsNullOrEmpty(name));
        }
Пример #4
0
        public void DescriptionImageMimeType()
        {
            SqlServerManager manager  = SqlServerManager.Instance;
            string           mineType = ((IManager)manager).Description.ImageMimeType;

            Assert.IsNotNull(mineType);
            Assert.IsTrue(!string.IsNullOrEmpty(mineType));
        }
Пример #5
0
        public void DescriptionImage()
        {
            SqlServerManager manager = SqlServerManager.Instance;
            string           image   = ((IManager)manager).Description.Image;

            Assert.IsNotNull(image);
            Assert.IsTrue(!string.IsNullOrEmpty(image));
        }
Пример #6
0
        internal static void FieldTypeEquals(FieldType type, string connectionString, string databaseName, string tableName, string fieldName)
        {
            var sql        = "SELECT DATA_TYPE FROM [" + databaseName + "].INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @tableName AND COLUMN_NAME = @fieldName";
            var actual     = ExecuteScalar(connectionString, sql, new SqlParameter("tableName", tableName), new SqlParameter("fieldName", fieldName)).ToString();
            var actualType = SqlServerManager.GetFieldType(actual);

            if (type != actualType)
            {
                throw new Exception("Field '" + fieldName + "' in table '" + tableName + "' is not a " + type + ", its " + actual + " (" + actualType + ")");
            }
        }
        protected override async Task <IAclManager> GetManagerAsync()
        {
            var manager = new SqlServerManager(AppSettings.ConnectionString);

            if (!_isSchemaCreated)
            {
                await manager.CreateDatabaseSchemaAsync();

                _isSchemaCreated = true;
            }
            return(manager);
        }
 public static IEntityMetaServiceContainer CreateLoggingDomEntityMetaServiceContainer(string connectionString) => new EntityMetaServiceContainer(
     new LoggingDomDbContext("x", null),
     (exception, entityType, ormEntitySchemaAdapter, genericErrorField) => StorageResultBuilder.AnalyzeExceptionRecursive(
         exception, entityType, ormEntitySchemaAdapter, genericErrorField,
         (ex, storageResultBuilder) =>
 {
     LoggingDomDataAccessEfCoreManager.Analyze(ex, storageResultBuilder);
     // TODO disable for InMemory
     SqlServerManager.Analyze(ex, storageResultBuilder);
 }
         )
     //(entityType) => new SqlServerOrmEntitySchemaAdapter( entityType),
     //(modelBuilder) => LoggingDomDbContext.BuildModel(modelBuilder)
     );
Пример #9
0
        public bool Process()
        {
            if (ConnectionString.IsEmpty())
            {
                Debug.WriteLine("Temp databae creation aborted. There is no connection string.");
                return(false);
            }

            var builder = new SqlConnectionStringBuilder(ConnectionString);

            TempDatabaseName = builder.InitialCatalog.Or("").TrimStart("[").TrimEnd("]");

            if (TempDatabaseName.IsEmpty())
            {
                Debug.WriteLine("Temp databae creation aborted. No database name was found in the connection string.");
                return(false);
            }
            else if (!TempDatabaseName.ToLower().EndsWith(".temp") && IsTempDatabaseOptional)
            {
                Debug.WriteLine($"Temp databae creation aborted. Database name '{TempDatabaseName}' does not end in '.Temp'.");
                // Optional and irrelevant
                return(false);
            }

            EnsurePermissions();

            builder.InitialCatalog = "master";

            MasterDatabaseAgent = new SqlServerManager(builder.ToString());

            ProjectTempRoot = DatabaseStoragePath.GetOrCreateSubDirectory(TempDatabaseName);
            LoadMetaDirectory();

            if (!IsTempDatabaseOptional)
            {
                if (!IsExplicitlyTempDatabase())
                {
                    throw new Exception("For unit tests project the database name must end in '.Temp'.");
                }
            }

            if (!IsExplicitlyTempDatabase())
            {
                // Not Temp mode:
                return(false);
            }

            return(DoProcess());
        }
        public async Task CreateSqlServer()
        {
            using var numberGen = RandomNumberGenerator.Create();

            var bytes = new byte[64];

            numberGen.GetBytes(bytes);

            var secretString = Convert.ToBase64String(bytes);

            var user = secretString.Substring(0, secretString.Length / 2);
            var pass = secretString.Substring(secretString.Length / 2) + "!2Ab"; //Last bit ensures complexity

            var manager = new SqlServerManager(mockup.Get <IShellRunner>());
            await manager.Create(TestSqlServer, TestRg, TestRegion, user, pass);
        }
Пример #11
0
        public bool Process()
        {
            if (ConnectionString.IsEmpty())
            {
                return(false);
            }

            var builder = new SqlConnectionStringBuilder(ConnectionString);

            TempDatabaseName = builder.InitialCatalog.Or("").TrimStart("[").TrimEnd("]");

            if (TempDatabaseName.IsEmpty())
            {
                // None of my business.
                return(false);
            }
            else if (!TempDatabaseName.ToLower().EndsWith(".temp") && IsTempDatabaseOptional)
            {
                // Optional and irrelevant
                return(false);
            }

            EnsurePermissions();

            builder.InitialCatalog = "master";

            MasterDatabaseAgent = new SqlServerManager(builder.ToString());

            LoadTempDatabaseLocation();
            LoadMetaDirectory();

            if (!IsTempDatabaseOptional)
            {
                if (!IsExplicitlyTempDatabase())
                {
                    throw new Exception("For unit tests project the database name must end in '.Temp'.");
                }
            }

            if (!IsExplicitlyTempDatabase())
            {
                // Not Temp mode:
                return(false);
            }

            return(DoProcess());
        }
Пример #12
0
        public ConnectionForm(SqlServerManager tableManager)
        {
            try
            {
                InitializeComponent();

                Text = "DataSeeker";
                this.tableManager = tableManager;

                TopMost = true;
                sql.ConnectionString        = Settings.Default.ConnectionString;
                propertyGrid.SelectedObject = sql;
            }
            catch
            {
                sql.ConnectionString        = null;
                propertyGrid.SelectedObject = sql;
            }
        }
        private static async Task <Tuple <ProxyError, bool> > TransmitOneError(ProxyError error)
        {
            if (ErrorHandlingOption.EnableNetworkSending) // Server Connector to online or offline ?
            {
                try
                {
                    await SqlServerManager.InsertErrorAsync(error);
                }
                catch (AggregateException exp)
                {
                    // If an unhandled exception occurs during dataflow processing, all
                    // exceptions are propagated through an AggregateException object.
                    ErrorHandlingOption.EnableNetworkSending = false;

                    exp.Handle(e =>
                    {
                        ErrorHandlingOption.AtSentState = false;
                        return(true);
                    });
                }
            }
            // Mark the head of the pipeline as complete. The continuation tasks
            // propagate completion through the pipeline as each part of the
            // pipeline finishes.
            else
            {
                ErrorListenerTransformBlock.Complete();
                ErrorHandlingOption.AtSentState = false;
            }

            if (ErrorListenerTransformBlock.InputCount == 0)
            {
                ErrorHandlingOption.AtSentState = false;
            }
            //
            // Post to Acknowledge Action Block:
            return(new Tuple <ProxyError, bool>(error, ErrorHandlingOption.EnableNetworkSending));
        }
        private static async Task ServerValidatorAsync()
        {
            var cm = ConnectionManager.GetDefaultConnection();                     // fetch default connection

            if (await cm.IsServerOnlineAsync())                                    // Is server on ?
            {
                await SqlServerManager.CreateDatabaseAsync();                      // Check or Create Raw Database

                if (await cm.CheckDbConnectionAsync())                             // Is database exist on server ?
                {
                    await SqlServerManager.CreateTablesAndStoredProceduresAsync(); // Check or create Tables and StoredProcedures
                }
                else // database is not exist !!!
                {
                    ErrorHandlingOption.EnableNetworkSending = false;
                    new DataException("Database is not exist or corrupted").RaiseLog();
                }
            }
            else // server is off !!
            {
                ErrorHandlingOption.EnableNetworkSending = false;
                new ServerException("Server is not online!").RaiseLog();
            }
        }
Пример #15
0
        //public static bool FindSqlException(AggregateException aggregateException, out SqlException sqlException)
        //{
        //    sqlException = null;
        //    foreach (var ex in aggregateException.InnerExceptions)
        //    {
        //        if (ex is SqlException)
        //        {
        //            sqlException = (SqlException)ex;
        //            return true;
        //        }
        //    }
        //    return false;
        //}

        void Prepare()
        {
            var exceptionHandler   = this.HttpContext.Features.Get <IExceptionHandlerFeature>();
            var aspRoutineFeature  = this.HttpContext.Features.Get <AspRoutineFeature>();
            var pageRoutineFeature = this.HttpContext.Features.Get <PageRoutineFeature>();

            // TODO: create url tree (where to go on error) and url to title (button name) map
            if (pageRoutineFeature != null)
            {
                ReturnUrl = pageRoutineFeature.Referrer;
            }

            var    unhandledException  = exceptionHandler?.Error;
            string detailsMarkdown     = default;
            var    isHandledByDocument = aspRoutineFeature != null && aspRoutineFeature.TraceDocument.IsExceptionHandled;

            if (unhandledException != null && !isHandledByDocument)
            {
                detailsMarkdown = InjectedManager.Markdown(unhandledException);
                var correlationTokenRequest = this.HttpContext.Request.Headers["X-CorrelationToken"].FirstOrDefault();
                Guid.TryParse(correlationTokenRequest, out var correlationToken);
                applicationSettings.UnhandledExceptionLogger.TraceError(correlationToken, detailsMarkdown);
            }
            RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier;

            //SqlException sqlException = null;
            var remoteServerErrorType = SqlServerManager.QuickAnalyze(unhandledException);

            if (remoteServerErrorType == RemoteServerErrorType.DOWN)
            {
                Message = "Adminka is currently down for maintenance. Back soon.";
                Title   = "Maintenance";
            }
            else if (remoteServerErrorType == RemoteServerErrorType.OVERLOADED)
            {
                Message = "Adminka is a bit overloaded right now... We are sorry asking you try again later";
                Title   = "Maintenance";
            }


            var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");

            if (environment == "Development" || applicationSettings.ForceDetailsOnCustomErrorPage)
            {
                ShowAdvancedInformation = true;
            }
            else
            {
                var isAdminPrivilege = User.Claims.Any(c => c.Type == "PRIVILEGE" && c.Value == "ADMIN");
                if (isAdminPrivilege)
                {
                    ShowAdvancedInformation = true;
                }
            }
            if (ShowAdvancedInformation)
            {
                if (isHandledByDocument)
                {
                    var text = aspRoutineFeature.TraceDocument.Build();
                    ExceptionHtml = InjectedManager.ToHtml(text);
                }
                else if (unhandledException != null && detailsMarkdown != null)
                {
                    ExceptionHtml = InjectedManager.ToHtmlException(detailsMarkdown);
                }

                if (aspRoutineFeature != null)
                {
                    CorrelationToken = aspRoutineFeature.CorrelationToken.ToString();
                }
            }
        }
 public async Task RemoveServerFirewallRule()
 {
     var manager = new SqlServerManager(mockup.Get <IShellRunner>());
     await manager.RemoveFirewallRule(TestFirewallRule, TestSqlServer, TestRg);
 }
 public async Task SetServerFirewallRule()
 {
     var manager = new SqlServerManager(mockup.Get <IShellRunner>());
     await manager.SetFirewallRule(TestFirewallRule, TestSqlServer, TestRg, Ip, Ip);
 }
Пример #18
0
        public void ManagerClose()
        {
            SqlServerManager manager = SqlServerManager.Instance;

            ((IManager)manager).Close();
        }
Пример #19
0
        public void DescriptionPriority()
        {
            SqlServerManager manager = SqlServerManager.Instance;

            Assert.IsNotNull(((IManager)manager).Description.Priority);
        }
Пример #20
0
        public void DescriptionImageData()
        {
            SqlServerManager manager = SqlServerManager.Instance;

            Assert.IsNotNull(((IManager)manager).Description.ImageData);
        }
Пример #21
0
 public void Constructor()
 {
     SqlServerManager manager = SqlServerManager.Instance;
 }