コード例 #1
0
        public void TestDeleteSearchExecutionSharedCriteria()
        {
            var owner = new Employer {
                Id = Guid.NewGuid()
            };

            // For some older searches the criteria are shared between searches and executions.

            var search = new MemberSearch {
                Name = SearchName, Criteria = CreateAdvancedCriteria(0)
            };

            _memberSearchesCommand.CreateMemberSearch(owner, search);

            var execution = new MemberSearchExecution {
                Criteria = CreateAdvancedCriteria(0), Results = new MemberSearchResults(), Context = "xxx"
            };

            _memberSearchesCommand.CreateMemberSearchExecution(execution);

            UpdateCriteriaId(search.Id, execution.Criteria.Id);

            // Delete.

            _memberSearchesCommand.DeleteMemberSearch(owner, search.Id);

            Assert.IsNull(_memberSearchesQuery.GetMemberSearch(search.Id));
            AssertExecution(execution, _memberSearchesQuery.GetMemberSearchExecution(execution.Id));
        }
コード例 #2
0
ファイル: SearchApiController.cs プロジェクト: formist/LinkMe
        private void SaveSearch(IHasId <Guid> employer, MemberSearchCriteria criteria, CandidatesResponseModel model, int page)
        {
            try
            {
                var userAgent = HttpContext.Request.UserAgent;

                //never log monitoring calls
                if (!string.IsNullOrEmpty(userAgent) && userAgent.Contains("LinkmeMonitoring"))
                {
                    return;
                }

                var app       = ActivityContext.Channel.App;
                var execution = new MemberSearchExecution
                {
                    Context  = "NewSearch",
                    Criteria = criteria.Clone(),
                    Results  = new MemberSearchResults
                    {
                        MemberIds    = page == 1 ? (from c in model.Candidates select c.Id).ToArray() : new Guid[0],
                        TotalMatches = model.TotalCandidates
                    },
                    SearcherId = employer == null ? (Guid?)null : employer.Id,
                    ChannelId  = app.ChannelId,
                    AppId      = app.Id,
                    StartTime  = DateTime.Now,
                };

                _memberSearchesCommand.CreateMemberSearchExecution(execution);
            }
            catch (Exception)
            {
                // Never fail for this.
            }
        }
コード例 #3
0
ファイル: MemberSearchTests.cs プロジェクト: formist/LinkMe
 protected static void AssertExecution(MemberSearchExecution expectedExecution, MemberSearchExecution execution)
 {
     Assert.AreEqual(expectedExecution.Context, execution.Context);
     Assert.AreEqual(expectedExecution.Criteria, execution.Criteria);
     Assert.AreEqual(expectedExecution.SearcherId, execution.SearcherId);
     Assert.AreEqual(expectedExecution.SearcherIp, execution.SearcherIp);
     Assert.AreEqual(expectedExecution.SearchId, execution.SearchId);
 }
コード例 #4
0
 void IMembersRepository.CreateMemberSearchExecution(MemberSearchExecution execution, int maxResults)
 {
     using (var dc = CreateContext())
     {
         dc.ResumeSearchEntities.InsertOnSubmit(execution.Map(maxResults, _criteriaPersister));
         dc.SubmitChanges();
     }
 }
コード例 #5
0
 public static ResumeSearchEntity Map(this MemberSearchExecution execution, int maxResults, ICriteriaPersister criteriaPersister)
 {
     return(new ResumeSearchEntity
     {
         id = execution.Id,
         context = execution.Context,
         startTime = execution.StartTime == null ? DateTime.Now : execution.StartTime.Value,
         duration = execution.Duration == null ? 0 : execution.Duration.Value.Ticks,
         searcherId = execution.SearcherId,
         savedSearchId = execution.SearchId,
         searcherIp = execution.SearcherIp,
         channelId = execution.ChannelId,
         appId = execution.AppId,
         ResumeSearchCriteriaSetEntity = execution.Criteria.MapTo <ResumeSearchCriteriaSetEntity, ResumeSearchCriteriaEntity, MemberSearchCriteria>(criteriaPersister, true),
         ResumeSearchResultSetEntity = execution.Results.Map(maxResults),
     });
 }
コード例 #6
0
        private void LogSearch()
        {
            var criteria = new MemberSearchCriteria();

            criteria.SetKeywords("test");
            var execution = new MemberSearchExecution
            {
                SearcherId = _employer.Id,
                Criteria   = criteria,
                StartTime  = DateTime.Now.AddMonths(-1),
                Results    = new MemberSearchResults {
                    MemberIds = new Guid[0]
                }
            };

            _memberSearchesCommand.CreateMemberSearchExecution(execution);
        }
コード例 #7
0
        private bool CreateResumeSearchActivity(IEmployer employer)
        {
            var criteria = new MemberSearchCriteria();

            criteria.SetKeywords("test");
            var execution = new MemberSearchExecution
            {
                SearcherId = employer.Id,
                Criteria   = criteria,
                StartTime  = DateTime.Now.AddMonths(-1),
                Results    = new MemberSearchResults {
                    MemberIds = new Guid[0]
                }
            };

            _memberSearchesCommand.CreateMemberSearchExecution(execution);
            return(true);
        }
コード例 #8
0
        public void TestCreateMemberSearchExecution()
        {
            var execution = new MemberSearchExecution
            {
                SearcherId = Guid.NewGuid(),
                Criteria   = CreateAdvancedCriteria(0),
                Results    = new MemberSearchResults
                {
                    MemberIds = new List <Guid> {
                        Guid.NewGuid()
                    },
                    TotalMatches = 1,
                }
            };

            _memberSearchesCommand.CreateMemberSearchExecution(execution);

            AssertExecution(execution, _memberSearchesQuery.GetMemberSearchExecution(execution.Id));
            AssertExecution(execution, _memberSearchesQuery.GetMemberSearchExecutions(execution.SearcherId.Value)[0]);
        }
コード例 #9
0
        public void TestCreateMemberSearchExecutionWithSearchId()
        {
            // Create the search.

            var owner = new Employer {
                Id = Guid.NewGuid()
            };
            var search = new MemberSearch
            {
                Criteria = CreateAdvancedCriteria(0),
                Name     = SearchName,
            };

            _memberSearchesCommand.CreateMemberSearch(owner, search);

            // Create the execution.

            var execution = new MemberSearchExecution
            {
                Criteria   = search.Criteria.Clone(),
                SearcherId = Guid.NewGuid(),
                SearchId   = search.Id,
                Results    = new MemberSearchResults
                {
                    MemberIds = new List <Guid> {
                        Guid.NewGuid()
                    },
                    TotalMatches = 1,
                }
            };

            _memberSearchesCommand.CreateMemberSearchExecution(execution);

            AssertExecution(execution, _memberSearchesQuery.GetMemberSearchExecution(execution.Id));
            AssertExecution(execution, _memberSearchesQuery.GetMemberSearchExecutions(execution.SearcherId.Value)[0]);
        }
コード例 #10
0
        private void SaveSearch(SearchContext context, IHasId <Guid> employer, CandidateListModel searchList, int page, Guid?savedSearchId)
        {
            try
            {
                var userAgent = HttpContext.Request.UserAgent;

                //never log monitoring calls
                if (!string.IsNullOrEmpty(userAgent) && userAgent.Contains("LinkmeMonitoring"))
                {
                    return;
                }

                var app       = ActivityContext.Channel.App;
                var execution = new MemberSearchExecution
                {
                    Context  = context.ToString(),
                    Criteria = searchList.Criteria.Clone(),
                    Results  = new MemberSearchResults
                    {
                        MemberIds    = page == 1 ? searchList.Results.CandidateIds : new Guid[0],
                        TotalMatches = searchList.Results.TotalCandidates
                    },
                    SearcherId = employer == null ? (Guid?)null : employer.Id,
                    SearchId   = savedSearchId,
                    ChannelId  = app.ChannelId,
                    AppId      = app.Id,
                    StartTime  = DateTime.Now,
                };

                _memberSearchesCommand.CreateMemberSearchExecution(execution);
            }
            catch (Exception)
            {
                // Never fail for this.
            }
        }
コード例 #11
0
 void IMemberSearchesCommand.CreateMemberSearchExecution(MemberSearchExecution execution)
 {
     execution.Prepare();
     execution.Validate();
     _repository.CreateMemberSearchExecution(execution, MaxExecutionResults);
 }