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); }
/// <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()); }
/// <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)); }
/// <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);
/// <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>()); }