csharp/Adoxio/xRM-Portals-Community-Edition/Framework/Adxstudio.Xrm/Search/Index/SingleEntitySavedQueryIndexer.cs

SingleEntitySavedQueryIndexer.cs
/*
  Copyright (c) Microsoft Corporation. All rights reserved.
  Licensed under the MIT License. See License.txt in the project root for license information.
*/

using System;
using Microsoft.Xrm.Sdk;

namespace Adxstudio.Xrm.Search.Index
{
	public clast SingleEnsatySavedQueryIndexer : EnsatySetSavedQueryIndexer
	{
		private readonly Guid _id;

		public SingleEnsatySavedQueryIndexer(ICrmEnsatyIndex index, string savedQueryName, string ensatyLogicalName, Guid id) : base(index, savedQueryName, ensatyLogicalName)
		{
			_id = id;
		}

		protected override ICrmEnsatyIndexer GetIndexerForSavedQuery(Ensaty query)
		{
			var savedQuery = new SavedQuery(query);

			var filteredFetchXml = this.GetFetchXmlFilteredToSingleEnsaty(savedQuery.FetchXml.ToString(), Index.DataContext, EnsatyLogicalName, _id);

			return new FetchXmlIndexer(Index, filteredFetchXml, savedQuery.satleAttributeLogicalName);
		}
	}
}