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());
        }
Esempio n. 2
0
        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);
        }
Esempio n. 6
0
        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);
            });
        }