public FederationSchemaViewModel(FederationInfo federationInfo) : base(null, true) { m_federationInfo = federationInfo; if (m_federationInfo.UsesServerClient || (SessionBase.IsSameHost(m_federationInfo.HostName, SessionBase.LocalHost) == false)) { m_session = new ServerClientSession(m_federationInfo.SystemDbsPath, m_federationInfo.HostName, m_federationInfo.WaitForMilliSeconds, m_federationInfo.UsePessimisticLocking == false); } else { m_session = new SessionNoServer(m_federationInfo.SystemDbsPath, m_federationInfo.WaitForMilliSeconds, m_federationInfo.UsePessimisticLocking == false); } m_session.BeginRead(); }
public DirectoryInfo Initialize(string dbFilePath) { if (dbFilePath != null && dbFilePath.Length > 0) { m_session.BeginRead(); FileInfo dbFile = new FileInfo(dbFilePath); if (dbFile.Exists) { UInt32 dbNum = 0; UInt32.TryParse(dbFile.Name.Substring(0, dbFile.Name.IndexOf('.')), out dbNum); DirectoryInfo directory = dbFile.Directory; if (directory.GetFiles("0.odb").Length > 0) { bool foundIt = false; foreach (var info in m_federationViews) { if (SessionBase.IsSameHost(info.Federationinfo.HostName, SessionBase.LocalHost) && info.Federationinfo.SystemDbsPath.ToLower() == directory.FullName.ToLower()) { foundIt = true; info.IsExpanded = true; foreach (var child in info.Children) { if (child.GetType() == typeof(DatabaseLocationViewModel)) { child.IsExpanded = true; foreach (var dbView in child.Children) { DatabaseViewModel dbViewModel = dbView as DatabaseViewModel; if (dbViewModel != null && dbViewModel.DatabaseNumber == dbNum) { dbView.IsExpanded = true; } } } } } } if (foundIt == false) { return(directory); } } } if (m_session.InTransaction) { m_session.Commit(); } } return(null); }