private string getSelectClause(string docClass) { //Build a SELECT clause that includes all properties (fields) for the specified Document Class StringBuilder sb = new StringBuilder("\"DAV:displayname\", \"DAV:href\""); MetaDatas metas = getMetaData(docClass); foreach (MetaData md in metas) { sb.Append(", \"" + XmlConvert.EncodeName(md.Property) + "\""); } return(sb.ToString()); }
public MetaDatas GetMetaData() { // MetaDatas metaData = null; ImagingServiceClient client = null; try { client = new ImagingServiceClient(); metaData = client.GetMetaData(); client.Close(); } catch (TimeoutException te) { client.Abort(); throw new ApplicationException(te.Message); } catch (FaultException <EnterpriseFault> ef) { client.Abort(); throw new ApplicationException(ef.Detail.Message); } catch (FaultException fe) { client.Abort(); throw new ApplicationException(fe.Message); } catch (CommunicationException ce) { client.Abort(); throw new ApplicationException(ce.Message); } return(metaData); }
private MetaDatas getMetaData() { //Retrieve document class metadata MetaDatas metas = null; try { metas = new MetaDatas(); System.Xml.XmlDataDocument xmlMeta = new System.Xml.XmlDataDocument(); xmlMeta.DataSet.ReadXml(System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath + "\\App_Data\\metadata.xml"); for (int i = 0; i < xmlMeta.DataSet.Tables["MetaDataTable"].Rows.Count; i++) { MetaData md = new MetaData(xmlMeta.DataSet.Tables["MetaDataTable"].Rows[i]["ClassName"].ToString(), xmlMeta.DataSet.Tables["MetaDataTable"].Rows[i]["Property"].ToString()); metas.Add(md); } } catch (Exception ex) { throw new ApplicationException(ex.Message, ex); } return(metas); }
private MetaDatas getMetaData(string className) { //Retrieve document class metadata for the specified className MetaDatas metas = null; try { metas = new MetaDatas(); MetaDatas _metas = getMetaData(); foreach (MetaData md in _metas) { if (md.ClassName == className) { metas.Add(md); } } } catch (Exception ex) { throw new ApplicationException(ex.Message, ex); } return(metas); }
public MetaDatas GetMetaData(string className) { //Retrieve document class metadata for the specified className MetaDatas metas = null; try { metas = new MetaDatas(); MetaDatas _metas = GetMetaData(); foreach (MetaData md in _metas) { if (md.ClassName == className) { metas.Add(md); } } } catch (Exception ex) { throw new FaultException <EnterpriseFault>(new EnterpriseFault(ex.Message), "Service Error"); } return(metas); }
public DataSet SearchSharePointImageStore(SearchRequest request) { //Find all documents that match the request DataSet response = new DataSet(); try { using (ClientContext context = new ClientContext(WebConfigurationManager.AppSettings["SP_Url"])) { //Set credentials context.Credentials = getCredentials(); //Create the query KeywordQuery query = new KeywordQuery(context); query.StartRow = 0; query.RowLimit = request.MaxResults; query.EnableStemming = true; query.TrimDuplicates = false; query.QueryText = "scope:\"" + request.ScopeName + "\" AND contentclass:\"STS_ListItem_DocumentLibrary\" AND IsDocument:\"True\" AND "; if (request.PropertyName != null && request.PropertyName.Trim().Length > 0) { query.QueryText += request.PropertyName + ":" + request.PropertyValue; } if (request.PropertyName1 != null && request.PropertyName1.Trim().Length > 0) { query.QueryText += " " + request.Operand1 + " " + request.PropertyName1 + ":" + request.PropertyValue1; } if (request.PropertyName2 != null && request.PropertyName2.Trim().Length > 0) { query.QueryText += " " + request.Operand2 + " " + request.PropertyName2 + ":" + request.PropertyValue2; } if (request.PropertyName3 != null && request.PropertyName3.Trim().Length > 0) { query.QueryText += " " + request.Operand3 + " " + request.PropertyName3 + ":" + request.PropertyValue3; } query.SelectProperties.Add("scope"); query.SelectProperties.Add("contentclass"); query.SelectProperties.Add("IsDocument"); query.SelectProperties.Add("Title"); query.SelectProperties.Add("Path"); query.SelectProperties.Add("Description"); query.SelectProperties.Add("Size"); MetaDatas metas = GetMetaData(request.DocumentClass); foreach (MetaData md in metas) { query.SelectProperties.Add(md.Value); } //Create the dataset schema response.Tables.Add("ClientResultTable"); response.Tables["ClientResultTable"].Columns.Add("scope"); response.Tables["ClientResultTable"].Columns.Add("contentclass"); response.Tables["ClientResultTable"].Columns.Add("IsDocument"); response.Tables["ClientResultTable"].Columns.Add("Title"); response.Tables["ClientResultTable"].Columns.Add("Path"); response.Tables["ClientResultTable"].Columns.Add("Description"); response.Tables["ClientResultTable"].Columns.Add("Size"); //Create a field wth the metadata property (friendly) field foreach (MetaData md in metas) { response.Tables["ClientResultTable"].Columns.Add(md.Property); } response.AcceptChanges(); ClientResult <ResultTableCollection> results = new SearchExecutor(context).ExecuteQuery(query); context.ExecuteQuery(); foreach (IDictionary result in results.Value[0].ResultRows) { //Populate the dataset with a row for each result DataRow row = response.Tables["ClientResultTable"].NewRow(); row["scope"] = result["scope"]; row["contentclass"] = result["contentclass"]; row["IsDocument"] = result["IsDocument"]; row["Title"] = result["Title"]; string path = result["Path"].ToString(); row["Path"] = path.Substring(path.Length - 1, 1) == "/" ? path.Substring(0, path.Length - 1) : path; row["Description"] = result["Description"]; row["Size"] = result["Size"]; foreach (MetaData md in metas) { row[md.Property] = result[md.Value]; } response.Tables["ClientResultTable"].Rows.Add(row); } } } catch (Exception ex) { throw new FaultException <EnterpriseFault>(new EnterpriseFault(ex.Message), "Service Error"); } return(response); }