예제 #1
0
        public void RepairDatabase()
        {
            bool local = (ConnectionString.Contains("localhost") || ConnectionString.Contains("127.0.0.1"));

            if (local == false)
            {
                throw new Exception("MongoDB数据库不在本地,无法启动自动数据库修复");
            }

            if (LocalDBLocation == null)
            {
                throw new Exception("数据库连接失败,请检查数据库配置,或手动设定MongoDB数据库的安装路径以方便自动修复");
            }
            var      mydir = new DirectoryInfo(LocalDBLocation);
            FileInfo file  = mydir.GetFiles().FirstOrDefault(d => d.Name == "mongod.lock");

            if (file == null)
            {
                throw new Exception("修复失败,您是否没有安装MongoDB数据库");
            }
            try
            {
                File.Delete(file.FullName);
                string str = CMDHelper.Execute("net start MongoDB");
            }
            catch (Exception ex)
            {
            }
        }
예제 #2
0
        static AppFixture()
        {
            _configuration = new ConfigurationBuilder()
                             .SetBasePath(Directory.GetCurrentDirectory())
                             .AddJsonFile("appsettings.json")
                             .AddEnvironmentVariables()
                             .Build();

            var startup  = new Startup(_configuration, new HostEnvironment());
            var services = new ServiceCollection();

            startup.ConfigureServices(services);
            var builder = new AutofacServiceProviderFactory().CreateBuilder(services);

            startup.ConfigureContainer(builder);
            builder.RegisterType <NullDispatcher>().As <IDomainEventDispatcher>(); // replace with null dispatcher

            var container = builder.Build();

            _scopeFactory = container.Resolve <IServiceScopeFactory>();
            _checkpoint   = new Checkpoint
            {
                DbAdapter      = DbAdapter.Postgres,
                TablesToIgnore = new[]
                {
                    "unit_of_measure_lib",
                    "migration_history"
                }
            };

            ConnectionString = _configuration.GetConnectionString("Postgres");
            Debug.Assert(ConnectionString.Contains("_test"));
        }
예제 #3
0
        public void RepairDatabase()
        {
            var local = (ConnectionString.Contains("localhost") || ConnectionString.Contains("127.0.0.1"));

            if (local == false)
            {
                throw new Exception(GlobalHelper.Get("key_74"));
            }

            if (LocalDBLocation == null)
            {
                throw new Exception(GlobalHelper.Get("mongo_connect_error"));
            }
            var mydir = new DirectoryInfo(LocalDBLocation);
            var file  = mydir.GetFiles().FirstOrDefault(d => d.Name == "mongod.lock");

            if (file == null)
            {
                throw new Exception(GlobalHelper.Get("key_76"));
            }
            try
            {
                File.Delete(file.FullName);
                var str = CMDHelper.Execute("net start MongoDB");
            }
            catch (Exception ex)
            {
            }
        }
예제 #4
0
 /**
  * Check if current DatafeedResult contains "Keyword"
  * @params: keyword: Search keyword
  * @return: True: if it contains, False: if it doesn't contain
  * */
 public bool Find(string keyword)
 {
     if ((DatafeedID.Contains(keyword) && CheckStatus.Check_DatafeedID) ||
         (Guid.Contains(keyword) && CheckStatus.Check_Guid) ||
         (DatafeedName.Contains(keyword) && CheckStatus.Check_DatafeedName) ||
         (SecurityUsername.Contains(keyword) && CheckStatus.Check_SecurityUsername) ||
         (SecurityPassword.Contains(keyword) && CheckStatus.Check_SecurityPassword) ||
         (TransportUsername.Contains(keyword) && CheckStatus.Check_TransportUsername) ||
         (TransportPassword.Contains(keyword) && CheckStatus.Check_TransportPassword) ||
         (TransportURL.Contains(keyword) && CheckStatus.Check_TransportURL) ||
         (TransportInstance.Contains(keyword) && CheckStatus.Check_TransportInstance) ||
         (SecurityDomain.Contains(keyword) && CheckStatus.Check_SecurityDomain) ||
         (TransportDomain.Contains(keyword) && CheckStatus.Check_TransportDomain) ||
         (ProxyOption.Contains(keyword) && CheckStatus.Check_ProxyOption) ||
         (ProxyName.Contains(keyword) && CheckStatus.Check_ProxyName) ||
         (ProxyPort.Contains(keyword) && CheckStatus.Check_ProxyPort) ||
         (ProxyDomain.Contains(keyword) && CheckStatus.Check_ProxyDomain) ||
         (ProxyUserName.Contains(keyword) && CheckStatus.Check_ProxyUserName) ||
         (ProxyPassword.Contains(keyword) && CheckStatus.Check_ProxyPassword) ||
         (TransportPath.Contains(keyword) && CheckStatus.Check_TransportPath) ||
         (ConnectionString.Contains(keyword) && CheckStatus.Check_ConnectionString) ||
         (SQLQueryUsername.Contains(keyword) && CheckStatus.Check_SQLQueryUsername) ||
         (SQLQueryPassword.Contains(keyword) && CheckStatus.Check_SQLQueryPassword)
         )
     {
         return(true);
     }
     return(false);
 }
예제 #5
0
        public static int CommandTimeout()
        {
            int timeout = 60;

            if (ConnectionString.Contains("timeout="))
            {
                try
                {
                    string[] valores = ConnectionString.Split(';');
                    foreach (string item in valores)
                    {
                        try
                        {
                            string[] par = item.Split('=');
                            if (par[0].ToLower() == "timeout")
                            {
                                timeout = int.Parse(par[1]);
                                break;
                            }
                        }
                        catch { }
                    }
                }
                catch { }
            }

            return(timeout);
        }
예제 #6
0
 public static IDatabase CreateDatabase()
 {
     type = DatabaseType.Default;
     if (ConnectionString.Contains("OraOLEDB.Oracle.1"))
     {
         type = DatabaseType.Oracle;
     }
     else if (ConnectionString.Contains("IBMDADB2.DB2CLIENT9"))
     {
         type = DatabaseType.DB2;
     }
     //SQLNCLI11
     else if (ConnectionString.Contains("SQLNCLI") || ConnectionString.Contains("SQLOLEDB"))
     {
         type = DatabaseType.MSSqlServer;
     }
     else if (ConnectionString.Contains("server") || ConnectionString.Contains("port"))
     {
         type = DatabaseType.MySql;
     }
     else
     {
         type = DatabaseType.SqlLite;
     }
     return(CreateDatabase(type));
 }
        private string ExtractShemaFromConnectionString()
        {
            string result = "";

            if (!string.IsNullOrEmpty(ConnectionString) && ConnectionString.Contains(DB2LUWIDs.SCHEMA))
            {
                string searchStr  = DB2LUWIDs.SCHEMA + "=";
                int    startIndex = ConnectionString.IndexOf(searchStr) + searchStr.Length;
                int    endIndex   = ConnectionString.IndexOf(";", startIndex);
                if (endIndex == -1)
                {
                    endIndex = ConnectionString.IndexOf("<", startIndex);
                }
                if (endIndex == -1)
                {
                    endIndex = ConnectionString.IndexOf(" ", startIndex);
                }

                if (startIndex > 0 && endIndex > 0 && endIndex > startIndex)
                {
                    result = ConnectionString.Substring(startIndex, endIndex - startIndex);
                }
            }
            return(result);
        }
예제 #8
0
파일: Options.cs 프로젝트: barncastle/MyDBC
        public void Validate()
        {
            if (!System.IO.Directory.Exists(Directory))
            {
                throw new ArgumentException("Directory not found", nameof(Directory));
            }

            if (!string.IsNullOrWhiteSpace(ConnectionString))
            {
                ExportType |= ExportType.SQL;

                // append file import conn string setting
                if (!ConnectionString.Contains("AllowLoadLocalInfile", StringComparison.OrdinalIgnoreCase))
                {
                    ConnectionString += "AllowLoadLocalInfile=true;";
                }
            }

            if (!string.IsNullOrWhiteSpace(OutputDirectory))
            {
                ExportType |= ExportType.CSV;
            }

            if (ExportType == 0)
            {
                throw new ArgumentException("Either ConnectionString or FileName must be set");
            }
        }
 protected override void ConfigureConnectionString()
 {
     base.ConfigureConnectionString();
     if (!ConnectionString.Contains("Password="******"Integrated Security=SSPI;";
     }
 }
예제 #10
0
 public override void Open()
 {
     // No Op, unless credentials are bad
     if (ConnectionString.Contains("invalidUsername"))
     {
         throw new Exception("Invalid credentials provided");
     }
 }
예제 #11
0
 public AccessAce()
 {
     ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings[ConnectionKey].ConnectionString;
     if (!ConnectionString.Contains(":"))
     {
         ConnectionString = AppDomain.CurrentDomain.BaseDirectory + ConnectionString;
     }
 }
예제 #12
0
        public IActionResult OnPost()
        {
            if (!ModelState.IsValid)
            {
                throw new Exception("Antiforgery check failed.");
            }

            var initResult = Init();

            if (initResult != null)
            {
                return(initResult);
            }

            InitEntitySelectOptions();

            try
            {
                ValidationException valEx = new ValidationException();
                if (string.IsNullOrWhiteSpace(ConnectionString))
                {
                    valEx.AddError("ConnectionString", "Original database connection string is required.");
                    ShowResults = false;
                    throw valEx;
                }

                var conString = ConnectionString;
                if (!ConnectionString.Contains(";"))
                {
                    NpgsqlConnectionStringBuilder builder = new NpgsqlConnectionStringBuilder(ErpSettings.ConnectionString);
                    builder.Database = ConnectionString;
                    conString        = builder.ToString();
                }

                var cgService = new CodeGenService();
                var result    = cgService.EvaluateMetaChanges(conString, IncludeRecordsEntityIdList, IncludeEntityMeta, IncludeEntityRelations, IncludeUserRoles, IncludeApplications);
                Code        = result.Code;
                Changes     = result.Changes;
                ShowResults = true;
            }
            catch (ValidationException valEx)
            {
                Validation.Message = valEx.Message;
                Validation.Errors.AddRange(valEx.Errors);
                ShowResults = false;
            }
            catch (Exception ex)
            {
                Validation.Message = ex.Message;
                Validation.AddError("", ex.Message);
                ShowResults = false;
            }
            BeforeRender();
            return(Page());
        }
예제 #13
0
        public ConnectionFactory(Environment environment, string customConnectionString = null)
        {
            this.Environment      = environment;
            this.ConnectionString = customConnectionString ?? ConfigurationReader.GetConnectionString(environment);

            if (ConnectionString.Contains(guid_placeholder))
            {
                this.guid             = Guid.NewGuid().ToString();
                this.ConnectionString = this.ConnectionString.Replace(guid_placeholder, this.guid);
            }
            this.initialized = false;
        }
 public override IDbConnection CreateConnection()
 {
     if (ConnectionString.Contains(":memory:"))
     {
         if (_connection == null)
         {
             return(_connection = new SqliteInMemoryDbConnection(base.CreateConnection()));
         }
         return(_connection);
     }
     return(base.CreateConnection());
 }
        public virtual bool OpenConnection()
        {
            try
            {
                if (_Connection == null)
                {
                    if (ConnectionString.Contains("="))
                    {
                        _Connection = dbProvider.CreateConnection();
                        _Connection.ConnectionString = ConnectionString;
                    }
                    else
                    {
                        var connInfo = ConnectionStringInfo.GetConnectionStringInfo(ConnectionString);
                        if (connInfo == null)
                        {
                            SetError("InvalidConnectionString");

                            if (ThrowExceptions)
                            {
                                throw new ApplicationException(ErrorMessage);
                            }

                            return(false);
                        }

                        dbProvider       = connInfo.Provider;
                        ConnectionString = connInfo.ConnectionString;

                        _Connection = dbProvider.CreateConnection();
                        _Connection.ConnectionString = ConnectionString;
                    }
                }

                if (_Connection.State != ConnectionState.Open)
                {
                    _Connection.Open();
                }
            }
            catch (DbException ex)
            {
                SetError(string.Format("ConnectionOpeningFailure", ex.Message));
                return(false);
            }
            catch (Exception ex)
            {
                SetError(string.Format("ConnectionOpeningFailure", ex.GetBaseException().Message));
                return(false);
            }

            return(true);
        }
예제 #16
0
        /// <summary>
        /// Handle design time access to the configuration settings - used for the
        /// DbDesignTimeResourceProvider - when loaded we re-read the settings
        /// </summary>
        /// <param name="serviceHost"></param>
        public bool ReadDesignTimeConfiguration(IServiceProvider serviceProvider)
        {
            IWebApplication webApp = serviceProvider.GetService(typeof(IWebApplication)) as IWebApplication;

            // Can't get an application instance - can only exit
            if (webApp == null)
            {
                return(false);
            }

            object TSection = webApp.OpenWebConfiguration(true).GetSection("DbResourceProvider");

            if (TSection == null)
            {
                return(false);
            }

            var section = TSection as DbResourceProviderSection;

            ReadSectionValues(section);

            // If the connection string doesn't contain = then it's
            // a ConnectionString key from .config. This is handled in
            // in the propertyGet of the resource configration, but it uses
            // ConfigurationManager which is not available at design time
            //  So we have to duplicate the code here using the WebConfiguration.
            if (!ConnectionString.Contains("="))
            {
                try
                {
                    string conn = webApp.OpenWebConfiguration(true).ConnectionStrings.ConnectionStrings[ConnectionString].ConnectionString;
                    ConnectionString = conn;
                }
                catch { }
            }

            return(true);
        }
예제 #17
0
        /// <summary>
        /// Opens a Sql Connection based on the connection string.
        /// Called internally but externally accessible. Sets the internal
        /// _Connection property.
        /// </summary>
        /// <returns></returns>
        public override bool OpenConnection()
        {
            try
            {
                if (_Connection == null)
                {
                    if (ConnectionString.Contains("="))
                    {
                        _Connection = dbProvider.CreateConnection();
                        _Connection.ConnectionString = ConnectionString;
                    }
                    else
                    {
                        // Assume it's a connection string value
                        _Connection = dbProvider.CreateConnection();
                        _Connection.ConnectionString = ConfigurationManager.ConnectionStrings[ConnectionString].ConnectionString;
                    }
                }

                if (_Connection.State != ConnectionState.Open)
                {
                    _Connection.Open();
                }
            }
            catch (DbException ex)
            {
                SetError(ex.Message, ex.ErrorCode);
                return(false);
            }
            catch (Exception ex)
            {
                SetError(ex.GetBaseException().Message);
                return(false);
            }

            return(true);
        }
예제 #18
0
        /**
         *  Replace DatafeedResult with keyword.
         *  @params: keyword: Search Keyword, replaceText: Text for Replace
         *  @return: Replace keyword count
         * */
        public int Replace(string keyword, string replaceText)
        {
            int replaceCount = 0;

            if (DatafeedID.Contains(keyword) && CheckStatus.Check_DatafeedID)
            {
                DatafeedID    = DatafeedID.Replace(keyword, replaceText);
                replaceCount += 1;
            }
            if (Guid.Contains(keyword) && CheckStatus.Check_Guid)
            {
                Guid          = Guid.Replace(keyword, replaceText);
                replaceCount += 1;
            }
            if (DatafeedName.Contains(keyword) && CheckStatus.Check_DatafeedName)
            {
                DatafeedName  = DatafeedName.Replace(keyword, replaceText);
                replaceCount += 1;
            }
            if (SecurityUsername.Contains(keyword) && CheckStatus.Check_SecurityUsername)
            {
                SecurityUsername = SecurityUsername.Replace(keyword, replaceText);
                replaceCount    += 1;
            }
            if (SecurityPassword.Contains(keyword) && CheckStatus.Check_SecurityPassword)
            {
                SecurityPassword = SecurityPassword.Replace(keyword, replaceText);
                replaceCount    += 1;
            }
            if (TransportUsername.Contains(keyword) && CheckStatus.Check_TransportUsername)
            {
                TransportUsername = TransportUsername.Replace(keyword, replaceText);
                replaceCount     += 1;
            }
            if (TransportPassword.Contains(keyword) && CheckStatus.Check_TransportPassword)
            {
                TransportPassword = TransportPassword.Replace(keyword, replaceText);
                replaceCount     += 1;
            }
            if (TransportURL.Contains(keyword) && CheckStatus.Check_TransportURL)
            {
                TransportURL  = TransportURL.Replace(keyword, replaceText);
                replaceCount += 1;
            }
            if (TransportInstance.Contains(keyword) && CheckStatus.Check_TransportInstance)
            {
                TransportInstance = TransportInstance.Replace(keyword, replaceText);
                replaceCount     += 1;
            }
            if (SecurityDomain.Contains(keyword) && CheckStatus.Check_SecurityDomain)
            {
                SecurityDomain = SecurityDomain.Replace(keyword, replaceText);
                replaceCount  += 1;
            }
            if (TransportDomain.Contains(keyword) && CheckStatus.Check_TransportDomain)
            {
                TransportDomain = TransportDomain.Replace(keyword, replaceText);
                replaceCount   += 1;
            }
            if (ProxyOption.Contains(keyword) && CheckStatus.Check_ProxyOption)
            {
                ProxyOption   = ProxyOption.Replace(keyword, replaceText);
                replaceCount += 1;
            }
            if (ProxyName.Contains(keyword) && CheckStatus.Check_ProxyName)
            {
                ProxyName     = ProxyName.Replace(keyword, replaceText);
                replaceCount += 1;
            }
            if (ProxyPort.Contains(keyword) && CheckStatus.Check_ProxyPort)
            {
                ProxyPort     = ProxyPort.Replace(keyword, replaceText);
                replaceCount += 1;
            }
            if (ProxyDomain.Contains(keyword) && CheckStatus.Check_ProxyDomain)
            {
                ProxyDomain   = ProxyDomain.Replace(keyword, replaceText);
                replaceCount += 1;
            }
            if (ProxyUserName.Contains(keyword) && CheckStatus.Check_ProxyUserName)
            {
                ProxyUserName = ProxyUserName.Replace(keyword, replaceText);
                replaceCount += 1;
            }
            if (ProxyPassword.Contains(keyword) && CheckStatus.Check_ProxyPassword)
            {
                ProxyPassword = ProxyPassword.Replace(keyword, replaceText);
                replaceCount += 1;
            }
            if (TransportPath.Contains(keyword) && CheckStatus.Check_TransportPath)
            {
                TransportPath = TransportPath.Replace(keyword, replaceText);
                replaceCount += 1;
            }
            if (ConnectionString.Contains(keyword) && CheckStatus.Check_ConnectionString)
            {
                ConnectionString = ConnectionString.Replace(keyword, replaceText);
                replaceCount    += 1;
            }
            if (SQLQueryUsername.Contains(keyword) && CheckStatus.Check_SQLQueryUsername)
            {
                SQLQueryUsername = SQLQueryUsername.Replace(keyword, replaceText);
                replaceCount    += 1;
            }
            if (SQLQueryPassword.Contains(keyword) && CheckStatus.Check_SQLQueryPassword)
            {
                SQLQueryPassword = SQLQueryPassword.Replace(keyword, replaceText);
                replaceCount    += 1;
            }

            return(replaceCount);
        }
예제 #19
0
        private bool CheckParameters()
        {
            bool isCorrect = true;

            if (ConnectionString.Contains('='))
            {
                ;
                //we only very roufly checking correctnes of connection string.
                //We will make sure if it is correct during connection to database.
            }
            else
            {
                errorDesctiption += "connection string: \"" + ConnectionString + "\" is not proper" + Environment.NewLine;
                errorDesctiption += "Issue Code: E005" + Environment.NewLine;
                isCorrect         = false;
            }

            if (Directory.Exists(OutDirectory) && hasWriteAccessToFolder(OutDirectory))
            {
            }
            else
            {
                errorDesctiption += "output directory: " + OutDirectory + " is not proper, ";
                errorDesctiption += "patch does not exist or access is not allowed" + Environment.NewLine;
                errorDesctiption += "Issue Code: E006" + Environment.NewLine;
                isCorrect         = false;
            }


            if (TimeOut >= 0 && TimeOut < 86400)
            {
            }
            else
            {
                errorDesctiption += "TimeOut value: " + TimeOut + " is not proper, ";
                errorDesctiption += "it should be value between 0 and 86400, 0 means that timeout is not changed" + Environment.NewLine;
                errorDesctiption += "(taken from connection string or database configuration)" + Environment.NewLine;
                errorDesctiption += "Issue Code: E007b" + Environment.NewLine;
                isCorrect         = false;
            }

            if (DropboxDelay >= 0 && DropboxDelay < 3600)
            {
            }
            else
            {
                errorDesctiption += "timeout value: " + DropboxDelay + " is not proper, ";
                errorDesctiption += "it should be value between 0 and 3600, 0 means that there is no delay" + Environment.NewLine;;
                errorDesctiption += "Issue Code: E008b" + Environment.NewLine;
                isCorrect         = false;
            }

            if (AddDate.ToUpper() == "YES" || AddDate.ToUpper() == "NO")
            {
            }
            else
            {
                errorDesctiption += "AddDate value: " + AddDate + " is not proper, ";
                errorDesctiption += "it should be YES or NO" + Environment.NewLine;;
                errorDesctiption += "Issue Code: E009" + Environment.NewLine;
                isCorrect         = false;
            }

            if (hasWriteAccessToFile(BussinessLogFile) == true)
            {
            }
            else
            {
                errorDesctiption += "Business Log File: " + BussinessLogFile + " is not avaible to write, ";
                errorDesctiption += "you have to put file that is available to write for KKrReporter";
                errorDesctiption += Environment.NewLine;;
                errorDesctiption += "Issue Code: E010a" + Environment.NewLine;
                isCorrect         = false;
            }

            if (hasWriteAccessToFile(ExceptionLogFile) == true)
            {
            }
            else
            {
                errorDesctiption += "Exception Log File: " + ExceptionLogFile + " is not avaible to write, ";
                errorDesctiption += "you have to put file that is available to write for KKrReporter";
                errorDesctiption += Environment.NewLine;;
                errorDesctiption += "Issue Code: E010b" + Environment.NewLine;
                isCorrect         = false;
            }

            if (isCorrect)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }