/// <summary> /// Gets the first entity that matches the query expression. An exception is thrown if none are found. /// </summary> /// <typeparam name="T">The Entity Type.</typeparam> /// <param name="service">The service.</param> /// <param name="qe">The query expression.</param> /// <returns></returns> public static T GetFirst <T>(this IOrganizationService service, TypedQueryExpression <T> qe) where T : Entity { var entity = service.GetFirstOrDefault(qe); AssertExists(entity, qe); return(entity); }
private static void AddAssemblyFilter(string assemblyName, TypedQueryExpression <PluginType> qe) { if (!string.IsNullOrWhiteSpace(assemblyName)) { qe.WhereEqual(PluginType.Fields.AssemblyName, assemblyName); } }
/// <summary> /// Creates the specified settings. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="settings">The settings.</param> /// <returns></returns> public static TypedQueryExpression <T> Create <T>(QuerySettings <T> settings) where T : Entity { var qe = new TypedQueryExpression <T>(new QueryExpression { EntityName = settings.LogicalName ?? EntityHelper.GetEntityLogicalName <T>(), ColumnSet = settings.Columns, Criteria = { FilterOperator = settings.CriteriaOperator }, }); if (settings.First) { qe.First(); } if (settings.LogicalName != null) { // Late Bound Entity if (settings.ActiveOnly) { qe.Query.ActiveOnly(settings.LogicalName); } } else { if (settings.ActiveOnly) { qe.ActiveOnly(); } } return(qe); }
private static void AddHiddenFilter(PluginSettings settings, TypedQueryExpression <PluginType> qe) { if (settings.SkipHiddenSteps) { qe.LinkEntities.First(e => e.LinkToEntityName == SdkMessageProcessingStep.EntityLogicalName) .WhereEqual(SdkMessageProcessingStep.Fields.IsHidden, false); } }
private static void AddSolutionFilter(string solutionName, TypedQueryExpression <PluginType> qe) { if (!string.IsNullOrWhiteSpace(solutionName)) { qe.LinkEntities.First(l => l.LinkToEntityName == SdkMessageProcessingStep.EntityLogicalName) .AddLink <SolutionComponent>(SdkMessageProcessingStep.Fields.Id, SolutionComponent.Fields.ObjectId) .WhereEqual(SolutionComponent.Fields.ComponentType, (int)ComponentType.SDKMessageProcessingStep) .AddLink <Solution>(Solution.Fields.Id) .WhereEqual(Solution.Fields.UniqueName, solutionName); } }
/// <summary> /// Gets the first entity that matches the query expression. Null is returned if none are found. /// </summary> /// <typeparam name="T">The Entity Type.</typeparam> /// <param name="service">The service.</param> /// <param name="qe">The query expression.</param> /// <returns></returns> public static T GetFirstOrDefault <T>(this IOrganizationService service, TypedQueryExpression <T> qe) where T : Entity { return(service.GetFirstOrDefault <T>(qe.Query)); }
/// <summary> /// Returns first 5000 entities using the Query Expression /// </summary> /// <typeparam name="T">Type of Entity List to return</typeparam> /// <param name="service">The service.</param> /// <param name="qe">Query Expression to Execute.</param> /// <returns></returns> public static List <T> GetEntities <T>(this IOrganizationService service, TypedQueryExpression <T> qe) where T : Entity { return(service.RetrieveMultiple(qe).ToEntityList <T>()); }
/// <summary> /// Gets all entities using the Query Expression /// </summary> /// <typeparam name="T">Type of Entity List to return</typeparam> /// <param name="service">The service.</param> /// <param name="qe">Query Expression to Execute.</param> /// <param name="maxCount">The maximum number of entities to retrieve. Use null for default.</param> /// <param name="pageSize">Number of records to return in each fetch. Use null for default.</param> /// <returns></returns> public static IEnumerable <T> GetAllEntities <T>(this IOrganizationService service, TypedQueryExpression <T> qe, int?maxCount = null, int?pageSize = null) where T : Entity { return(RetrieveAllEntities <T> .GetAllEntities(service, qe, maxCount, pageSize)); }
/// <summary> /// Gets all entities using the Query Expression /// </summary> /// <typeparam name="T">Type of Entity List to return</typeparam> /// <param name="service">The service.</param> /// <param name="qe">Query Expression to Execute.</param> /// <param name="maxCount">The maximum number of entities to retrieve. Use null for default.</param> /// <param name="pageSize">Number of records to return in each fetch. Use null for default.</param> /// /// <param name="token">Cancellation Token</param> /// <returns></returns> public static IAsyncEnumerable <T> GetAllEntitiesAsync <T>(this IOrganizationServiceAsync2 service, TypedQueryExpression <T> qe, int?maxCount = null, int?pageSize = null, CancellationToken token = default) where T : Entity { return(RetrieveAllEntitiesAsync <T> .GetAllEntities(service, qe, maxCount, pageSize, token)); }