public CswNbtResourceCollection Search(string searchtype, string query) { CswNbtApiSearchRequest Req = new CswNbtApiSearchRequest(query, searchtype); CswNbtResourceCollection Ret = new CswNbtResourceCollection(); //Look for optional params Req.NodeType = _Context.Request.Params["nodetype"] ?? string.Empty; var SvcDriver = new CswWebSvcDriver <CswNbtResourceCollection, CswNbtApiSearchRequest>( CswWebSvcResourceInitializer: new CswWebSvcResourceInitializerNbt(_Context, null), ReturnObj: Ret, WebSvcMethodPtr: CswNbtWebServiceApiSearch.Search, ParamObj: Req ); SvcDriver.run(); WebOperationContext ctx = WebOperationContext.Current; ctx.OutgoingResponse.StatusCode = Ret.Status; if (ctx.OutgoingResponse.StatusCode != HttpStatusCode.OK) { Ret = null; } return(Ret); }
public void Search(CswNbtResourceCollection Return, CswNbtApiSearchRequest SearchRequest) { try { int filter_nt_id = Int32.MinValue; if (false == String.IsNullOrEmpty(SearchRequest.NodeType)) { filter_nt_id = _CswNbtResources.MetaData.getNodeType(SearchRequest.NodeType).NodeTypeId; } CswNbtWebServiceSearch searchService = new CswNbtWebServiceSearch(_CswNbtResources, null); CswNbtSearch search = searchService.getSearch(SearchRequest.Query, SearchRequest.SearchType, filter_nt_id, Int32.MinValue, Int32.MinValue); ICswNbtTree results = search.Results(); for (int i = 0; i < results.getChildNodeCount(); i++) { results.goToNthChild(i); CswNbtNodeKey NodeKey = results.getNodeKeyForCurrentPosition(); string Name = results.getNodeNameForCurrentPosition(); CswNbtMetaDataNodeType nt = _CswNbtResources.MetaData.getNodeType(NodeKey.NodeTypeId); CswNbtMetaDataObjectClass oc = nt.getObjectClass(); CswNbtMetaDataPropertySet propSet = oc.getPropertySet(); string PropSetName = string.Empty; if (null != propSet) { PropSetName = propSet.Name; } Return.Add(Name, NodeKey.NodeId, nt.NodeTypeName, oc.ObjectClassName, PropSetName, BuildURI(nt.NodeTypeName, NodeKey.NodeId.PrimaryKey)); results.goToParentNode(); } Return.Status = HttpStatusCode.OK; } catch (Exception) { Return.Status = HttpStatusCode.InternalServerError; } }
public static void Search(ICswResources CswResources, CswNbtResourceCollection Return, CswNbtApiSearchRequest SearchRequest) { CswNbtWebServiceApiSearch SEARCH = new CswNbtWebServiceApiSearch((CswNbtResources)CswResources); SEARCH.Search(Return, SearchRequest); }