protected string GetPageTemplatePath(OrganizationServiceContext context, Entity entity, Entity website, out string webTemplateId) { webTemplateId = null; if (entity == null) { throw new ArgumentNullException("entity"); } if (entity.LogicalName != "adx_event") { throw new ArgumentException("Entity {0} ({1}) is not of a type supported by this provider.".FormatWith(entity.Id, entity.GetType().FullName), "entity"); } var pageTemplate = entity.GetRelatedEntity(context, "adx_pagetemplate_event"); if (pageTemplate == null) { return(OrganizationServiceContextExtensions.GetSiteSettingValueByName(context, website, "events/event/templatepath") ?? "~/Pages/Event.aspx"); } if (TryGetWebTemplateId(pageTemplate, out webTemplateId)) { return(pageTemplate.GetAttributeValue <bool?>("adx_usewebsiteheaderandfooter").GetValueOrDefault(true) ? "~/Pages/WebTemplate.aspx" : "~/Pages/WebTemplateNoMaster.aspx"); } return(pageTemplate.GetAttributeValue <string>("adx_rewriteurl") ?? "~/Pages/Event.aspx"); }
protected void Page_Load(object sender, EventArgs e) { var reference = Entity.GetAttributeValue <EntityReference>("adx_entityform"); var entityFormRecord = XrmContext.CreateQuery("adx_entityform").FirstOrDefault(ef => ef.GetAttributeValue <Guid>("adx_entityformid") == reference.Id); if (entityFormRecord != null) { var recordEntityLogicalName = entityFormRecord.GetAttributeValue <string>("adx_entityname"); Guid recordId; if (Guid.TryParse(Request["id"], out recordId)) { var metadataRequest = new RetrieveEntityRequest { LogicalName = recordEntityLogicalName, EntityFilters = EntityFilters.Attributes }; var metadataResponse = (RetrieveEntityResponse)XrmContext.Execute(metadataRequest); var primaryFieldLogicalName = metadataResponse.EntityMetadata.PrimaryIdAttribute; var permitRecord = XrmContext.CreateQuery(recordEntityLogicalName).FirstOrDefault(r => r.GetAttributeValue <Guid>(primaryFieldLogicalName) == recordId); var permitTypeReference = permitRecord.GetAttributeValue <EntityReference>("adx_permittype"); var permitType = XrmContext.CreateQuery("adx_permittype").FirstOrDefault( srt => srt.GetAttributeValue <Guid>("adx_permittypeid") == permitTypeReference.Id); var entityName = permitType.GetAttributeValue <string>("adx_entityname"); RegardingContactFieldName = permitType.GetAttributeValue <string>("adx_regardingcontactfieldname"); var trueMetadataRequest = new RetrieveEntityRequest { LogicalName = entityName, EntityFilters = EntityFilters.Attributes }; var trueMetadataResponse = (RetrieveEntityResponse)XrmContext.Execute(trueMetadataRequest); var primaryFieldName = trueMetadataResponse.EntityMetadata.PrimaryIdAttribute; var entityId = permitRecord.GetAttributeValue <string>("adx_entityid"); var trueRecordId = Guid.Parse(entityId); var trueRecord = XrmContext.CreateQuery(entityName).FirstOrDefault(r => r.GetAttributeValue <Guid>(primaryFieldName) == trueRecordId); Permit = trueRecord; var permitDataSource = CreateDataSource("PermitDataSource", entityName, primaryFieldName, trueRecordId); var permitFormView = new CrmEntityFormView() { FormName = "Details Form", Mode = FormViewMode.Edit, EntityName = entityName, CssClass = "crmEntityFormView", AutoGenerateSteps = false }; var languageCodeSetting = OrganizationServiceContextExtensions.GetSiteSettingValueByName(ServiceContext, Portal.Website, "Language Code"); if (!string.IsNullOrWhiteSpace(languageCodeSetting)) { int languageCode; if (int.TryParse(languageCodeSetting, out languageCode)) { permitFormView.LanguageCode = languageCode; permitFormView.ContextName = languageCode.ToString(CultureInfo.InvariantCulture); permitDataSource.CrmDataContextName = languageCode.ToString(CultureInfo.InvariantCulture); } } CrmEntityFormViewPanel.Controls.Add(permitFormView); permitFormView.DataSourceID = permitDataSource.ID; var regardingContact = Permit.GetAttributeValue <EntityReference>(RegardingContactFieldName); if (regardingContact == null || Contact == null || regardingContact.Id != Contact.Id) { PermitControls.Enabled = false; PermitControls.Visible = false; AddNoteInline.Visible = false; AddNoteInline.Enabled = false; } else { var dataAdapterDependencies = new PortalConfigurationDataAdapterDependencies(requestContext: Request.RequestContext, portalName: PortalName); var dataAdapter = new AnnotationDataAdapter(dataAdapterDependencies); var annotations = dataAdapter.GetAnnotations(Permit.ToEntityReference(), new List <Order> { new Order("createdon") }, respectPermissions: false); NotesList.DataSource = annotations; NotesList.DataBind(); } } } }