예제 #1
0
파일: Program.cs 프로젝트: sotaria/gsf
        public static AdoDataConnection GetDatabaseConnection()
        {
            string connectionString   = s_configurationString;
            string dataProviderString = s_dataProviderString;

            if (string.IsNullOrWhiteSpace(connectionString) || string.IsNullOrWhiteSpace(dataProviderString))
            {
                XDocument serviceConfig = XDocument.Load(ArchiveLocator.GetConfigurationFileName());

                connectionString = serviceConfig
                                   .Descendants("systemSettings")
                                   .SelectMany(systemSettings => systemSettings.Elements("add"))
                                   .Where(element => "ConnectionString".Equals((string)element.Attribute("name"), StringComparison.OrdinalIgnoreCase))
                                   .Select(element => (string)element.Attribute("value"))
                                   .FirstOrDefault();

                dataProviderString = serviceConfig
                                     .Descendants("systemSettings")
                                     .SelectMany(systemSettings => systemSettings.Elements("add"))
                                     .Where(element => "DataProviderString".Equals((string)element.Attribute("name"), StringComparison.OrdinalIgnoreCase))
                                     .Select(element => (string)element.Attribute("value"))
                                     .FirstOrDefault();
            }

            if (string.IsNullOrWhiteSpace(connectionString) || string.IsNullOrWhiteSpace(dataProviderString))
            {
                return(null);
            }

            return(new AdoDataConnection(connectionString, dataProviderString));
        }