void IVXProtocol_SearchItemResultReceived(SearchItemResult obj) { lock (m_SyncObjSearch) { SearchSession searchSession = GetSearchSession((int)obj.SearchId); if (searchSession == null) { return; } //if (searchSession.SearchPara.DisplayMode != SearchResultDisplayMode.ThumbNailAllSearchItem) //{ // if (obj.TaskUnitId != searchSession.SearchPara.CurrentSearchItem.TaskUnitId) // { // return; // } //} SearchResultSingleSummary result = new SearchResultSingleSummary(); result.IsSimilaritySearch = searchSession.SearchPara.IsSimilaritySearch; result.CurrPageIndex = obj.PageInfo.Index; result.CurrPageTotalCount = obj.PageInfo.CountInCurrentPage; result.SearchResultList = obj.ResultRecords; if (searchSession.SearchPara.SearchType == SearchType.Vehicle) { UpdateSearchResultRecords(result.SearchResultList); } result.SearchSessionID = obj.SearchId; result.TaskUnitID = obj.TaskUnitId; result.TotalCount = obj.PageInfo.TotalCount; result.TotalPage = obj.PageInfo.TotalPage; SearchItem searchItem = searchSession.SearchPara.GetSeachItem(obj.TaskUnitId); lock (searchItem) { searchItem.IsFinished = true; searchItem.ResultSummary = result; MyLog4Net.Container.Instance.Log.InfoFormat("Fire SearchFinishedEvent in VideoSearchService, taskUnitID: {0}", result.TaskUnitID); Framework.Container.Instance.EvtAggregator.GetEvent <SearchFinishedEvent>().Publish(result); } } }
/// <summary> /// /// </summary> /// <param name="action">search</param> /// <param name="functionType"></param> /// <param name="searchText"></param> /// <returns></returns> public SearchItemResult GetItem(string action, string searchText, string functionType) { // 检查是否登录 if (HttpContext.Current.Session[SessionInfo.C_Session_sessioninfo] == null) { SearchItemResult result = new SearchItemResult(); result.apiResult = new ApiResult(); result.apiResult.errorCode = -1; result.apiResult.errorInfo = "尚未登录"; return(result); } SessionInfo sessionInfo = (SessionInfo)HttpContext.Current.Session[SessionInfo.C_Session_sessioninfo]; if (action == "search") { return(ilovelibraryServer.Instance.SearchItem(sessionInfo, functionType, searchText)); } return(null); }