示例#1
0
        public override ICrmEntity[] GetEntities(string logicalName, CrmPagingInfo pagingInfo,
                                                 CrmOrderExpression[] orderExpressions, bool onlyActive)
        {
            FilterExpression expression = new FilterExpression
            {
                FilterOperator = LogicalOperator.And
            };

            if (onlyActive)
            {
                expression.AddCondition(new ConditionExpression("statecode", ConditionOperator.Equal,
                                                                new object[] { "Active" }));
            }
            QueryExpression query = new QueryExpression
            {
                EntityName = logicalName,
                ColumnSet  = new ColumnSet(true),
                PageInfo   = (PagingInfo)pagingInfo,
                Criteria   = expression
            };

            query.Orders.AddRange(orderExpressions.Cast <OrderExpression>());
            return
                (this._organizationService.RetrieveMultiple(query)
                 .Entities.Select(e => new CrmEntityAdapter(this, e)).Cast <ICrmEntity>().ToArray());

            //        Select<Entity, CrmEntityAdapter>(new Func<Entity, CrmEntityAdapter>(this, (IntPtr) this. <
            //                                                   GetEntities > b__7)).
            //ToArray<CrmEntityAdapter>();
        }
        /// <summary>
        /// Gets the entities.
        /// </summary>
        /// <param name="entityName">The type.</param>
        /// <param name="pageInfo">The page info.</param>
        /// <param name="expression">The filter expression.</param>
        /// <param name="sortCriteria">The sort criteria.</param>
        /// <returns></returns>
        public override IEnumerable <BusinessEntity> GetEntities(string entityName,
                                                                 CrmPagingInfo pageInfo,
                                                                 FilterExpression expression,
                                                                 CrmOrderExpression[] sortCriteria)
        {
            Assert.ArgumentNotNullOrEmpty(entityName, "entityName");

            var retrieveMultipleReq = new RetrieveMultipleRequest
            {
                Query =
                    new QueryExpression
                {
                    ColumnSet  = new AllColumns(),
                    EntityName = entityName,
                    PageInfo   = pageInfo,
                    Criteria   = expression,
                    Orders     = sortCriteria
                },
                ReturnDynamicEntities = true
            };

            var retrieveMultipleRes = (RetrieveMultipleResponse)CrmRemoteSettings.CrmService.Execute(retrieveMultipleReq);

            return(retrieveMultipleRes.BusinessEntityCollection.BusinessEntities);
        }
示例#3
0
        /// <summary>
        /// Gets the entities.
        /// </summary>
        /// <param name="logicalName">Name of the logical.</param>
        /// <param name="pagingInfo">The paging information.</param>
        /// <param name="orderExpressions">The order expressions.</param>
        /// <param name="filteredFields">The filtered fields.</param>
        /// <param name="onlyActive">if set to <c>true</c> [only active].</param>
        /// <returns></returns>
        public override ICrmEntity[] GetEntities(string logicalName, CrmPagingInfo pagingInfo, CrmOrderExpression[] orderExpressions, Dictionary <string, string> filteredFields, bool onlyActive)
        {
            var queryExpression = new QueryExpression
            {
                EntityName = logicalName,
                ColumnSet  = new ColumnSet(true),
                PageInfo   = pagingInfo,
                Criteria   = this.GetFilterExpression(filteredFields, onlyActive)
            };

            queryExpression.Orders.AddRange(orderExpressions.Cast <OrderExpression>());

            var response = this.organizationServiceCache.GetOrganizationService().RetrieveMultiple(queryExpression);

            return(response.Entities.Select(e => new CrmEntityAdapter(this, e)).ToArray());
        }
        /// <summary>
        /// Gets the entities.
        /// </summary>
        /// <param name="logicalName">Name of the logical.</param>
        /// <param name="pagingInfo">The paging information.</param>
        /// <param name="orderExpressions">The order expressions.</param>
        /// <param name="filteredFields">The filtered fields.</param>
        /// <param name="onlyActive">if set to <c>true</c> [only active].</param>
        /// <returns></returns>
        public override ICrmEntity[] GetEntities(string logicalName, CrmPagingInfo pagingInfo, CrmOrderExpression[] orderExpressions, Dictionary <string, string> filteredFields, bool onlyActive)
        {
            var request = new RetrieveMultipleRequest
            {
                Query =
                    new QueryExpression
                {
                    ColumnSet  = new AllColumns(),
                    EntityName = logicalName,
                    PageInfo   = pagingInfo,
                    Orders     = orderExpressions.Cast <OrderExpression>().ToArray(),
                    Criteria   = this.GetFilterExpression(filteredFields, onlyActive)
                },
                ReturnDynamicEntities = true
            };

            var response = (RetrieveMultipleResponse)this.crmService.Execute(request);

            return(response.BusinessEntityCollection.BusinessEntities.OfType <DynamicEntity>().Select(e => new CrmEntityAdapter(this, e)).ToArray());
        }
示例#5
0
 /// <summary>
 /// Gets the entities.
 /// </summary>
 /// <param name="logicalName">Name of the logical.</param>
 /// <param name="pagingInfo">The paging info.</param>
 /// <param name="orderExpressions">The order expressions.</param>
 /// <param name="onlyActive">The only Active.</param>
 /// <returns>
 /// The <see cref="CrmEntityMetadata" /> array.
 /// </returns>
 public override ICrmEntity[] GetEntities(string logicalName, CrmPagingInfo pagingInfo, CrmOrderExpression[] orderExpressions, bool onlyActive)
 {
     return(GetEntities(logicalName, pagingInfo, orderExpressions, null, onlyActive));
 }
示例#6
0
 /// <summary>
 /// Gets the entities.
 /// </summary>
 /// <param name="logicalName">Name of the logical.</param>
 /// <param name="pagingInfo">The paging information.</param>
 /// <param name="orderExpressions">The order expressions.</param>
 /// <param name="filteredFields">The filtered fields.</param>
 /// <param name="onlyActive">if set to <c>true</c> [only active].</param>
 /// <returns></returns>
 public abstract ICrmEntity[] GetEntities(string logicalName, CrmPagingInfo pagingInfo, CrmOrderExpression[] orderExpressions,
                                          Dictionary <string, string> filteredFields, bool onlyActive);
示例#7
0
 /// <summary>
 /// Gets the entities.
 /// </summary>
 /// <param name="logicalName">Name of the logical.</param>
 /// <param name="pagingInfo">The paging info.</param>
 /// <param name="orderExpressions">The order expressions.</param>
 /// <param name="onlyActive">The only Active.</param>
 /// <returns>Crm entities array</returns>
 public abstract ICrmEntity[] GetEntities(string logicalName, CrmPagingInfo pagingInfo, CrmOrderExpression[] orderExpressions, bool onlyActive);
 /// <summary>
 /// Gets the entities.
 /// </summary>
 /// <param name="entityName">The entity name.</param>
 /// <param name="pageInfo">The page info.</param>
 /// <param name="expression">The filter expression.</param>
 /// <param name="sortCriteria">The sort criteria.</param>
 /// <returns></returns>
 public virtual IEnumerable <BusinessEntity> GetEntities(
     string entityName, CrmPagingInfo pageInfo, FilterExpression expression, CrmOrderExpression[] sortCriteria)
 {
     return(new List <BusinessEntity>());
 }