コード例 #1
0
        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);
        }