private ViewDataAdapter.FetchResult GetData(string base64SecureConfiguration, string sortExpression, IDictionary <string, string> customParameters) { var viewConfiguration = ConvertSecureStringToViewConfiguration(base64SecureConfiguration); var dataAdapterDependencies = new PortalConfigurationDataAdapterDependencies(requestContext: Request.RequestContext, portalName: viewConfiguration.PortalName); var viewDataAdapter = new ViewDataAdapter(viewConfiguration, dataAdapterDependencies, 1, null, sortExpression, null, null, customParameters: customParameters); return(viewDataAdapter.FetchEntities()); }
public ViewDataAdapter.FetchResult CustomFetchEntities(ViewConfiguration viewConfiguration) { CustomFetchXml converter = new CustomFetchXml(_serviceContext, new XrmConnection()); viewConfiguration = converter.CustomFilterViews(viewConfiguration); OrganizationServiceContext serviceContext = this.Dependencies.GetServiceContext(); Fetch fetch = FilterGlobalRecords(viewConfiguration); fetch = FilterSharedEntityScope(fetch, viewConfiguration); this.AddSelectableFilterToFetchEntity(fetch.Entity, this.Configuration, this.Filter); this.AddWebsiteFilterToFetchEntity(fetch.Entity, this.Configuration); this.AddOrderToFetch(fetch.Entity, this.Order); Fetch fetch2 = fetch; bool? dataPagerEnabled = this.Configuration.DataPagerEnabled; int num1 = dataPagerEnabled.HasValue ? (dataPagerEnabled.GetValueOrDefault() ? 1 : 0) : 1; string pagingCookie = fetch.PagingCookie; int page = this.Page; int pageSize = this.Configuration.PageSize; int num2 = 1; this.AddPaginationToFetch(fetch2, num1 != 0, pagingCookie, page, pageSize, num2 != 0); this.AddSearchFilterToFetchEntity(fetch.Entity, this.Configuration, this.Search, (IEnumerable <string>)null); this.AddMetadataFilterToFetch(fetch, this.Configuration, base.MetaFilter); if (this.ApplyRecordLevelFilters) { this.AddRecordLevelFiltersToFetch(fetch, this.Configuration, CrmEntityPermissionRight.Read); } else { this.TryAssert(fetch, this.Configuration, CrmEntityPermissionRight.Read); } if (this.ApplyRelatedRecordFilter) { this.AddRelatedRecordFilterToFetch(fetch, this.FilterRelationshipName, this.FilterEntityName, this.FilterValue); } if (((IEnumerable <AttributeMetadata>) this.EntityMetadata.Attributes).Any <AttributeMetadata>((Func <AttributeMetadata, bool>)(a => a.LogicalName == "statecode"))) { ViewDataAdapter.AddAttributesToFetchEntity(fetch.Entity, (IEnumerable <string>) new List <string>() { "statecode" }); if (((IEnumerable <AttributeMetadata>) this.EntityMetadata.Attributes).Any <AttributeMetadata>((Func <AttributeMetadata, bool>)(a => a.LogicalName == "statuscode"))) { ViewDataAdapter.AddAttributesToFetchEntity(fetch.Entity, (IEnumerable <string>) new List <string>() { "statuscode" }); } } return(base.FetchEntities(_dependencies.GetServiceContext(), fetch)); // return records; }
public DataTable Select(int startRowIndex, int maximumRows = -1, Configuration configuration = null) { if (configuration == null) { throw new ApplicationException("Invalid ViewObjectDataSource configuration. Please set the Configuration property"); } if (configuration.ViewConfigurations == null || !configuration.ViewConfigurations.Any()) { throw new ApplicationException("Invalid ViewObjectDataSource configuration. Please set the Configuration property"); } var serviceContext = PortalCrmConfigurationManager.CreateServiceContext(configuration.PortalName); var viewParameterValue = HttpContext.Current.Request[configuration.ViewQueryStringParameterName]; Guid selectedViewId; Guid.TryParse(viewParameterValue ?? string.Empty, out selectedViewId); var currentViewConfiguration = GetCurrentViewConfiguration(configuration, selectedViewId); var view = currentViewConfiguration.GetEntityView(configuration.Views); var pageParameterValue = HttpContext.Current.Request[currentViewConfiguration.PageQueryStringParameterName]; var searchParameterValue = HttpContext.Current.Request[currentViewConfiguration.Search.SearchQueryStringParameterName]; var sortParameterValue = HttpContext.Current.Request[currentViewConfiguration.SortQueryStringParameterName]; var filterParameterValue = HttpContext.Current.Request[currentViewConfiguration.FilterQueryStringParameterName]; var metadataFilterParameterValue = HttpContext.Current.Request[currentViewConfiguration.FilterSettings.FilterQueryStringParameterName]; var pageNumber = 1; if (!string.IsNullOrEmpty(pageParameterValue)) { int.TryParse(pageParameterValue, out pageNumber); } var viewDataAdapter = new ViewDataAdapter(currentViewConfiguration, new PortalConfigurationDataAdapterDependencies(configuration.PortalName), pageNumber, searchParameterValue, sortParameterValue, filterParameterValue, metadataFilterParameterValue); var result = viewDataAdapter.FetchEntities(); var records = result.Records; TotalRecordCount = result.TotalRecordCount; return(records.ToDataTable(serviceContext, view.SavedQuery, false, "r", CultureInfo.InvariantCulture)); }
private IActivityCollection FetchActivities(EntityReference regarding, int page = 1, int pageSize = DefaultMaxPageSize, EntityMetadata entityMetadata = null) { var viewConfiguration = new ViewConfiguration("activitypointer", "savedqueryid", PortalTimelineSavedQueryId, pageSize); viewConfiguration.EnableEntityPermissions = true; var viewAdapter = new ViewDataAdapter(viewConfiguration, _dependencies, page, filter: regarding.Id.ToString(), regarding: regarding); viewAdapter.FilterCollection.Add(new Filter { Type = LogicalOperator.And, Conditions = new List <Condition> { new Condition("regardingobjectid", ConditionOperator.Equal, regarding.Id) } }); var activityPointerCollection = viewAdapter.FetchEntities(); var activities = activityPointerCollection.Records.Select(activityPointer => new Activity(activityPointer, regarding)); return(new ActivityCollection(activities, activityPointerCollection.TotalRecordCount)); }
public EntityViewDrop(IPortalLiquidContext portalLiquidContext, ViewConfiguration viewConfiguration, ViewDataAdapter viewDataAdapter, Lazy <EntityListViewDrop> view) : base(portalLiquidContext) { if (viewConfiguration == null) { throw new ArgumentNullException("viewConfiguration"); } if (viewDataAdapter == null) { throw new ArgumentNullException("viewDataAdapter"); } if (view == null) { throw new ArgumentNullException("view"); } ViewConfiguration = viewConfiguration; ViewDataAdapter = viewDataAdapter; FetchResult = new Lazy <ViewDataAdapter.FetchResult>(viewDataAdapter.FetchEntities, LazyThreadSafetyMode.None); View = view; var languageCode = new Lazy <int>(() => LanguageCode, LazyThreadSafetyMode.None); _entities = new Lazy <EntityDrop[]>(() => FetchResult.Value.Records.Select(e => new EntityDrop(this, e, languageCode, view)).ToArray(), LazyThreadSafetyMode.None); }
public override void Render(Context context, TextWriter result) { IPortalLiquidContext portalLiquidContext; if (!context.TryGetPortalLiquidContext(out portalLiquidContext)) { return; } var portalViewContext = portalLiquidContext.PortalViewContext; var viewConfiguration = GetViewConfiguration(portalViewContext, context); if (viewConfiguration == null) { return; } string pageSize; int parsedPageSize; if ((TryGetAttributeValue(context, "pagesize", out pageSize) || TryGetAttributeValue(context, "page_size", out pageSize)) && int.TryParse(pageSize, out parsedPageSize)) { viewConfiguration.Item1.PageSize = Math.Max(1, parsedPageSize); } var viewDataAdapter = new ViewDataAdapter(viewConfiguration.Item1, new PortalConfigurationDataAdapterDependencies(portalViewContext.PortalName)); string filter; if (TryGetAttributeValue(context, "filter", out filter)) { viewDataAdapter.Filter = filter; } string metaFilter; if (TryGetAttributeValue(context, "metafilter", out metaFilter)) { viewDataAdapter.MetaFilter = metaFilter; } string order; if (TryGetAttributeValue(context, "order", out order)) { viewDataAdapter.Order = order; } string page; int parsedPage; if (TryGetAttributeValue(context, "page", out page) && int.TryParse(page, out parsedPage)) { viewDataAdapter.Page = Math.Max(1, parsedPage); } string search; if (TryGetAttributeValue(context, "search", out search)) { viewDataAdapter.Search = search; } context.Stack(() => { context[string.IsNullOrEmpty(_variableName) ? "entityview" : _variableName] = new EntityViewDrop( portalLiquidContext, viewConfiguration.Item1, viewDataAdapter, new Lazy <EntityListViewDrop>(() => new EntityListViewDrop(portalLiquidContext, viewConfiguration.Item1.GetEntityView(portalViewContext.CreateServiceContext(), viewConfiguration.Item2)), LazyThreadSafetyMode.None)); RenderAll(NodeList, context, result); }); }