public ActionResult GetRepositories() { var dataAdapterDependencies = new PortalConfigurationDataAdapterDependencies(requestContext: Request.RequestContext); var serviceContext = dataAdapterDependencies.GetServiceContext(); var website = dataAdapterDependencies.GetWebsite(); var repositories = serviceContext.CreateQuery("adx_packagerepository") .Where(e => e.GetAttributeValue <string>("adx_name") != null) .Where(e => e.GetAttributeValue <string>("adx_partialurl") != null) .Where(e => e.GetAttributeValue <int?>("statecode") == 0) .Where(e => e.GetAttributeValue <bool?>("adx_hidden").GetValueOrDefault(false) != true) .OrderBy(e => e.GetAttributeValue <int?>("adx_order")) .ThenBy(e => e.GetAttributeValue <string>("adx_name")) .ToArray(); AddCrossOriginAccessHeaders(Response); return(new JObjectResult(new JObject { { "Repositories", new JArray(repositories.Select(e => new JObject { { "Name", e.GetAttributeValue <string>("adx_name") }, { "URL", GetPackageRepositoryUrl(website.Id, e.GetAttributeValue <string>("adx_partialurl")) }, } )) }, })); }
private ActionResult GetData(ViewConfiguration viewConfiguration, string sortExpression, string search, string filter, string metaFilter, int page, int pageSize = DefaultPageSize, bool applyRecordLevelFilters = true, bool applyRelatedRecordFilter = false, string filterRelationshipName = null, string filterEntityName = null, string filterAttributeName = null, Guid?filterValue = null, bool overrideMaxPageSize = false, IDictionary <string, string> customParameters = null) { PaginatedGridData data; //Search criteria with length 4000+ causes Generic SQL error Bug#371907 const int maxSearchLength = 3999; var searchCriteria = search?.Length > maxSearchLength?search.Substring(0, maxSearchLength) : search; using (PerformanceProfiler.Instance.StartMarker(PerformanceMarkerName.EntityGridController, PerformanceMarkerArea.Crm, PerformanceMarkerTagName.GetData)) { if (viewConfiguration == null) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, ResourceManager.GetString("Invalid_Request"))); } if (pageSize < 0) { pageSize = DefaultPageSize; } if (pageSize > DefaultMaxPageSize && !overrideMaxPageSize) { ADXTrace.Instance.TraceInfo(TraceCategory.Application, string.Format( "pageSize={0} is greater than the allowed maximum page size of {1}. Page size has been constrained to {1}.", pageSize, DefaultMaxPageSize)); pageSize = DefaultMaxPageSize; } var dataAdapterDependencies = new PortalConfigurationDataAdapterDependencies(requestContext: Request.RequestContext, portalName: viewConfiguration.PortalName); var website = HttpContext.GetWebsite(); var viewDataAdapter = SetViewDataAdapter(viewConfiguration, sortExpression, searchCriteria, filter, metaFilter, page, applyRecordLevelFilters, applyRelatedRecordFilter, filterRelationshipName, filterEntityName, filterAttributeName, filterValue, customParameters, dataAdapterDependencies, website); var result = viewDataAdapter.FetchEntities(); //If current page doesn't contain any records, but records exist in general, get those records from previous page for further rendering them. if (!result.Records.Any() && result.TotalRecordCount > 0) { viewDataAdapter = SetViewDataAdapter(viewConfiguration, sortExpression, searchCriteria, filter, metaFilter, page - 1, applyRecordLevelFilters, applyRelatedRecordFilter, filterRelationshipName, filterEntityName, filterAttributeName, filterValue, customParameters, dataAdapterDependencies, website); result = viewDataAdapter.FetchEntities(); } if (result.EntityPermissionDenied) { var permissionResult = new EntityPermissionResult(true); return(Json(permissionResult)); } var serviceContext = dataAdapterDependencies.GetServiceContext(); var organizationMoneyFormatInfo = new OrganizationMoneyFormatInfo(dataAdapterDependencies); var crmLcid = HttpContext.GetCrmLcid(); EntityRecord[] records; if (viewConfiguration.EnableEntityPermissions && AdxstudioCrmConfigurationManager.GetCrmSection().ContentMap.Enabled&& viewConfiguration.EntityName != "entitlement") { var crmEntityPermissionProvider = new CrmEntityPermissionProvider(); records = result.Records.Select(e => new EntityRecord(e, serviceContext, crmEntityPermissionProvider, viewDataAdapter.EntityMetadata, true, organizationMoneyFormatInfo: organizationMoneyFormatInfo, crmLcid: crmLcid)).ToArray(); } else { records = result.Records.Select(e => new EntityRecord(e, viewDataAdapter.EntityMetadata, serviceContext, organizationMoneyFormatInfo, crmLcid)).ToArray(); } records = FilterWebsiteRelatedRecords(records, dataAdapterDependencies.GetWebsite()); var totalRecordCount = result.TotalRecordCount; var disabledActionLinks = new List <DisabledItemActionLink>(); // Disable Create Related Record Action Links based on Filter Criteria. disabledActionLinks.AddRange(DisableActionLinksBasedOnFilterCriteria(serviceContext, viewDataAdapter.EntityMetadata, viewConfiguration.CreateRelatedRecordActionLinks, records)); // Disable Item Action Links based on Filter Criteria. disabledActionLinks.AddRange(DisableActionLinksBasedOnFilterCriteria(serviceContext, viewDataAdapter.EntityMetadata, viewConfiguration.ItemActionLinks, records)); data = new PaginatedGridData(records, totalRecordCount, page, pageSize, disabledActionLinks) { CreateActionMetadata = GetCreationActionMetadata(viewConfiguration, dataAdapterDependencies), MoreRecords = result.MoreRecords.GetValueOrDefault() || (totalRecordCount > (page * pageSize)) }; } var json = Json(data); json.MaxJsonLength = int.MaxValue; return(json); }