Example #1
0
        /// <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);
     }
 }
Example #6
0
 /// <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));
 }
Example #7
0
 /// <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>());
 }
Example #8
0
 /// <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));
 }
Example #9
0
 /// <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));
 }