protected void Initialize( ReadOnlyCollection <MappingEntry> rawMappingFilters, ClearQuestOleServer.Session userSession) { foreach (MappingEntry filter in rawMappingFilters) { CQRecordFilter recordFilter = ParseFilter(filter, userSession); if (null != recordFilter) { this.Add(recordFilter); } } }
internal static CQRecordFilter ParseFilterPath(string filterPath, ClearQuestOleServer.Session userSession) { if (string.IsNullOrEmpty(filterPath)) { return(null); } filterPath = filterPath.Trim(); if (filterPath.StartsWith(FilterDelimitor)) { return(null); } if (filterPath.StartsWith(StoredQueryPrefix, StringComparison.OrdinalIgnoreCase)) { if (filterPath.Length == StoredQueryPrefix.Length) { // todo: raise error return(null); } string storedQuery = filterPath.Substring(StoredQueryPrefix.Length); return(new CQRecordStoredQueryFilter(storedQuery, userSession)); } else { // advanced setting: DefectType::[TableName::]SQL Query Condition string[] splits = filterPath.Split(new string[] { FilterDelimitor }, StringSplitOptions.RemoveEmptyEntries); switch (splits.Length) { case 1: return(new CQRecordFilter(splits[0].Trim())); // RecordType case 2: return(new CQRecordFilter(splits[0].Trim(), splits[1].Trim())); // RecordType::SqlCondition case 3: return(new CQRecordFilter(splits[0].Trim(), splits[1].Trim(), splits[2].Trim())); // RecordType::SelectFromTable::SqlCondition default: TraceManager.TraceError("CQ adapter FilterString '{0}' is invalid.", filterPath); return(null); } } }
void m_worker_DoWork(object sender, DoWorkEventArgs e) { Debug.Assert(e.Argument is MigrationSource, "Wrong argument type"); MigrationSource migrationSourceConfig = e.Argument as MigrationSource; string dbSet = migrationSourceConfig.ServerUrl; string userDb = migrationSourceConfig.SourceIdentifier; CredentialManagementService credManagementService = new CredentialManagementService(migrationSourceConfig); ICQLoginCredentialManager loginCredManager = CQLoginCredentialManagerFactory.CreateCredentialManager(credManagementService, migrationSourceConfig); ClearQuestConnectionConfig userSessionConnConfig = new ClearQuestConnectionConfig(loginCredManager.UserName, loginCredManager.Password, userDb, dbSet); ClearQuestOleServer.Session userSession = CQConnectionFactory.GetUserSession(userSessionConnConfig); Dictionary <string, bool> queryList = CQWorkSpace.GetQueryListWithValidity(userSession); e.Result = queryList; }
public void Initialize(Configuration configuration) { CredentialManagementService credManagementService = new CredentialManagementService(configuration); foreach (MigrationSource ms in configuration.SessionGroup.MigrationSources.MigrationSource) { try { string dbSet = ms.ServerUrl; string userDb = ms.SourceIdentifier; ICQLoginCredentialManager loginCredManager = CQLoginCredentialManagerFactory.CreateCredentialManager(credManagementService, ms); Guid migrSrcId = new Guid(ms.InternalUniqueId); var userSessionConnConfig = new ClearQuestConnectionConfig(loginCredManager.UserName, loginCredManager.Password, userDb, dbSet); ClearQuestOleServer.Session userSession = CQConnectionFactory.GetUserSession(userSessionConnConfig); if (!m_cqSessions.ContainsKey(migrSrcId)) { m_cqSessions.Add(migrSrcId, userSession); } } catch (ClearQuestInvalidConfigurationException) { continue; } catch (Exception e) { TraceManager.TraceException(e); } } }
internal ClearQuestMigrationContext( ClearQuestOleServer.Session userSession, MigrationSource migrationSource) { PerEntityTypeStateField = new Dictionary <string, string>(); PerEntityTypeAttachmentSinkField = new Dictionary <string, string>(); // try extract context info from the custom settings in the config foreach (var setting in migrationSource.CustomSettings.CustomSetting) { if (setting.SettingKey.Equals(ClearQuestConstants.NoteEntryFieldNameSettingKey)) { NoteEntryFieldName = setting.SettingValue; } else if (setting.SettingKey.Equals(ClearQuestConstants.NotesLogFieldNameSettingKey)) { NotesLogFieldName = setting.SettingValue; } else if (setting.SettingKey.Equals(ClearQuestConstants.CQQueryTimeDelimiter)) { CQQueryTimeDelimiter = setting.SettingValue; } else if (setting.SettingKey.Equals(ClearQuestConstants.CQQueryDateTimeFormat)) { CQQueryDateTimeFormat = setting.SettingValue; } else if (setting.SettingKey.Equals(ClearQuestConstants.CQTimeOffsetFromServerHistoryTimesInMinutes)) { CQTimeOffsetFromServerHistoryTimesInMinutes = setting.SettingValue; } else if (setting.SettingKey.Equals(ClearQuestConstants.EntityStateFieldSettingKey)) { if (!string.IsNullOrEmpty(setting.SettingValue)) { string[] splits = setting.SettingValue.Split(new string[] { ClearQuestConstants.EntityStateFieldSettingDelimiter }, StringSplitOptions.RemoveEmptyEntries); if (splits.Length == 2 && !string.IsNullOrEmpty(splits[0]) && !string.IsNullOrEmpty(splits[1]) && !PerEntityTypeStateField.ContainsKey(splits[0])) { PerEntityTypeStateField.Add(splits[0], splits[1]); } } } else if (setting.SettingKey.Equals(ClearQuestConstants.AttachmentSinkFieldSettingKey)) { if (!string.IsNullOrEmpty(setting.SettingValue)) { string[] splits = setting.SettingValue.Split(new string[] { ClearQuestConstants.AttachmentSinkFieldSettingDelimiter }, StringSplitOptions.RemoveEmptyEntries); if (splits.Length == 2 && !string.IsNullOrEmpty(splits[0]) && !string.IsNullOrEmpty(splits[1]) && !PerEntityTypeAttachmentSinkField.ContainsKey(splits[0])) { PerEntityTypeAttachmentSinkField.Add(splits[0], splits[1]); } } } } // fall back to default values if no setting found // Setting NoteEntryFieldName="" or NotesLogFieldName="" can be used to disable the setting of these fields if (null == NoteEntryFieldName) { NoteEntryFieldName = ClearQuestConstants.NoteEntryFieldNameDefaultValue; } if (null == NotesLogFieldName) { NotesLogFieldName = ClearQuestConstants.NotesLogFieldNameDefaultValue; } if (string.IsNullOrEmpty(CQQueryTimeDelimiter)) { CQQueryTimeDelimiter = ClearQuestConstants.CQQueryDefaultTimeDelimiter; } if (string.IsNullOrEmpty(CQQueryDateTimeFormat)) { CQQueryDateTimeFormat = ClearQuestConstants.CQQueryDefaultDateTimeFormat; } UserSession = userSession; }
internal ClearQuestMigrationContext( ClearQuestOleServer.Session userSession, MigrationSource migrationSource) { PerEntityTypeStateField = new Dictionary <string, string>(); PerEntityTypeAttachmentSinkField = new Dictionary <string, string>(); // try extract context info from the custom settings in the config foreach (var setting in migrationSource.CustomSettings.CustomSetting) { if (setting.SettingKey.Equals(ClearQuestConstants.NoteEntryFieldNameSettingKey)) { NoteEntryFieldName = setting.SettingValue; } else if (setting.SettingKey.Equals(ClearQuestConstants.NotesLogFieldNameSettingKey)) { NotesLogFieldName = setting.SettingValue; } else if (setting.SettingKey.Equals(ClearQuestConstants.EntityStateFieldSettingKey)) { if (!string.IsNullOrEmpty(setting.SettingValue)) { string[] splits = setting.SettingValue.Split(new string[] { ClearQuestConstants.EntityStateFieldSettingDelimiter }, StringSplitOptions.RemoveEmptyEntries); if (splits.Length == 2 && !string.IsNullOrEmpty(splits[0]) && !string.IsNullOrEmpty(splits[1]) && !PerEntityTypeStateField.ContainsKey(splits[0])) { PerEntityTypeStateField.Add(splits[0], splits[1]); } } } else if (setting.SettingKey.Equals(ClearQuestConstants.AttachmentSinkFieldSettingKey)) { if (!string.IsNullOrEmpty(setting.SettingValue)) { string[] splits = setting.SettingValue.Split(new string[] { ClearQuestConstants.AttachmentSinkFieldSettingDelimiter }, StringSplitOptions.RemoveEmptyEntries); if (splits.Length == 2 && !string.IsNullOrEmpty(splits[0]) && !string.IsNullOrEmpty(splits[1]) && !PerEntityTypeAttachmentSinkField.ContainsKey(splits[0])) { PerEntityTypeAttachmentSinkField.Add(splits[0], splits[1]); } } } } // fall back to default values if (string.IsNullOrEmpty(NoteEntryFieldName)) { NoteEntryFieldName = ClearQuestConstants.NoteEntryFieldNameDefaultValue; } if (string.IsNullOrEmpty(NotesLogFieldName)) { NotesLogFieldName = ClearQuestConstants.NotesLogFieldNameDefaultValue; } UserSession = userSession; }
private CQRecordFilter ParseFilter(MappingEntry filter, ClearQuestOleServer.Session userSession) { return(ParseFilterPath(filter.Path, userSession)); }
public CQRecordFilters( ReadOnlyCollection <MappingEntry> rawMappingFilters, ClearQuestOleServer.Session userSession) { Initialize(rawMappingFilters, userSession); }