HomeGuidesAPI ReferenceChangelogDiscussions
GuidesiMIS ProfessionaliMIS EnterpriseClient SupportLog In
Guides
These docs are for v20.3.44. Click to read the latest docs for v20.3.192.

Simple IQA query

Example of getting IQA results via SOA.

using Asi.Soa.ClientServices;
using Asi.Soa.Core.DataContracts;

EntityManager entityManager = new EntityManager();

string queryPath = "$/Common/Queries/Search/Contact/All";

var queryData = new QueryData("IQA");
queryData.AddCriteria(CriteriaData.Equal("QueryName", queryPath));
FindResultsData findResultsData = entityManager.Find(queryData);

if (findResultsData.Result.Count > 0)
{
  GenericEntityData genericEntityData = findResultsData.Result[0] as GenericEntityData;
  if (genericEntityData != null)
    Console.WriteLine("First results name: {0}", genericEntityData.Properties[2].Value);
}
else
{
  Console.WriteLine("No results found");
}
using System;

const string queryPath = "$/Common/Queries/Search/Contact/All";

HttpClient client = new HttpClient();

/*
Add proper authorization header to new HttpClient above 
before making below request, see 
https://developer.imis.com/v0.1/docs/accessing-the-rest-api#section-direct-access-oauth-20 
for an example of how to perform this in C# project
*/

var queryResult = client.GetAsync($"api/iqa?QueryName={queryPath}").Result;

if (queryResult != null && queryResult.IsSuccessStatusCode)
{
  Console.WriteLine("Query results: {0}", queryResult.Content.ReadAsStringAsync().Result);
}

Simple IQA query using a document version key

Example of getting IQA results via SOA using the query's document version key instead of the path.

using Asi.Soa.ClientServices;
using Asi.Soa.Core.DataContracts;

EntityManager entityManager = new EntityManager();

// Query DocumentVersionKey
string documentVersionKey = "5DE3FE0D-565C-4BB7-90F0-F8AC4C921422";

var queryData = new QueryData("IQA");
queryData.AddCriteria(CriteriaData.Equal("QueryDocumentVersionKey", documentVersionKey));
FindResultsData findResultsData = entityManager.Find(queryData);

if (findResultsData.Result.Count > 0)
{
  GenericEntityData genericEntityData = findResultsData.Result[0] as GenericEntityData;
  if (genericEntityData != null) Console.WriteLine("Name: {0}", genericEntityData.Properties[1].Value);
}
else
{
  Console.WriteLine("No results found");
}
using System;

const string documentVersionKey = "5DE3FE0D-565C-4BB7-90F0-F8AC4C921422"; // Query DocumentVersionKey

HttpClient client = new HttpClient();

/*
Add proper authorization header to new HttpClient above 
before making below request, see 
https://developer.imis.com/v0.1/docs/accessing-the-rest-api#section-direct-access-oauth-20 
for an example of how to perform this in C# project
*/

var queryResult = client
  .GetAsync($"api/iqa?QueryDocumentVersionKey={documentVersionKey}").Result;

if (queryResult != null && queryResult.IsSuccessStatusCode)
{
  Console.WriteLine("Query results: {0}", queryResult.Content.ReadAsStringAsync().Result);
}

IQA query with required parameter

Example for setting optional or required IQA query filters when getting IQA results.

using Asi.Soa.ClientServices;
using Asi.Soa.Core.DataContracts;

EntityManager entityManager = new EntityManager();

string queryPath = "$/ContactManagement/DefaultSystem/Queries/Advanced/Contact/LastName";

var queryData = new QueryData("IQA");
queryData.AddCriteria(CriteriaData.Equal("QueryName", queryPath));

// Any optional or required parameters can be defined in order
queryData.AddCriteria(CriteriaData.Equal("Parameter", "Baker"));

// If this query had a second optional or required filter for first name add another criteria like
queryData.AddCriteria(CriteriaData.Equal("Parameter", "Chris"));

// All filters set here need to have a CriteriaData of Equal, 
// but the comparison operator defined in the query will be used (e.g. Starts With, Contains, etc.)

FindResultsData findResultsData = entityManager.Find(queryData);
if (findResultsData.Result.Count > 0)
{
  GenericEntityData genericEntityData = findResultsData.Result[0] as GenericEntityData;
  if (genericEntityData != null)
  {
    Console.WriteLine("Full Name: {0}", genericEntityData.Properties[2].Value);
  }
}
else
{
  Console.WriteLine("No results found");
}
using System;

const string queryPath = "$/Common/Queries/Search/Contact";
const string requiredParameter = "Last Name&parameter=eq:smith";

HttpClient client = new HttpClient();

/*
Add proper authorization header to new HttpClient above 
before making below request, see 
https://developer.imis.com/v0.1/docs/accessing-the-rest-api#section-direct-access-oauth-20 
for an example of how to perform this in C# project
*/

var queryResult = client
  .GetAsync($"api/iqa?QueryName={queryPath}/{requiredParameter}").Result;

if (queryResult != null && queryResult.IsSuccessStatusCode)
{
  Console.WriteLine("Query results: {0}", queryResult.Content.ReadAsStringAsync().Result);
}

Contact us
Copyright © Advanced Solutions International, All rights reserved.