public IndexResult AddTestCaseIndex(TestCaseDTO testCase) { if (testCase.TestCaseID == null) { return(new IndexResult()); } if (Exists <EntityDocument>(testCase.TestCaseID.Value, DocumentIndexTypeToken.Entity)) { if (_profile.Initialized) { _log.WarnFormat("CANNOT PROCESS '{0}CreatedMessage' FOR ENTITY #{1} - '{2}'. ENTITY HAS ALREADY BEEN ADDED ON PROFILE INITIALIZATION OR ENTITY CREATION !!!", testCase.EntityTypeName, testCase.TestCaseID.GetValueOrDefault(), testCase.Name); } else { _log.ErrorFormat("CANNOT PROCESS '{0}CreatedMessage' FOR ENTITY #{1} - '{2}'. ENTITY HAS ALREADY BEEN ADDED !!!", testCase.EntityTypeName, testCase.TestCaseID.GetValueOrDefault(), testCase.Name); } return(new IndexResult()); } var entityIndex = _documentIndexProvider.GetOrCreateDocumentIndex(_pluginContext.AccountName, DocumentIndexTypeToken.Entity); var doc = _documentFactory.CreateTestCase(testCase); var indexResult = doc == null ? new IndexResult() : entityIndex.Index(doc, false); if (indexResult.DocNumber != -1) { IDocumentIndex entityProjectIndex = _documentIndexProvider.GetOrCreateDocumentIndex(_pluginContext.AccountName, DocumentIndexTypeToken.EntityProject); entityProjectIndex.Index(indexResult.DocNumber, _documentIdFactory.EncodeProjectId(testCase.ProjectID)); if (testCase.EntityTypeID != null) { Maybe <string> maybeEntityTypeName = _entityTypeProvider.GetEntityTypeName(testCase.EntityTypeID); string entityTypeName = maybeEntityTypeName.FailIfNothing(() => new ApplicationException("Entity type name was not found {0}".Fmt(testCase.EntityTypeID))); IDocumentIndex entityTypeIndices = _documentIndexProvider.GetOrCreateDocumentIndex(_pluginContext.AccountName, DocumentIndexTypeToken.EntityType); entityTypeIndices.Index(indexResult.DocNumber, entityTypeName); } } _log.Debug(string.Format("Added {0} #{1} - '{2}':{3}", testCase.EntityTypeName, testCase.TestCaseID.GetValueOrDefault(), testCase.Name, indexResult.WordsAdded.Any() ? string.Format(" added words - {0};", string.Join(",", indexResult.WordsAdded.Keys)) : " NO WORDS ADDED;")); return(indexResult); }