private void RenderCrmEntityFormView(string entityName, string primaryFieldName, Guid trueRecordId, FormViewMode formMode) { var serviceRequestDataSource = CreateDataSource("SeriveRequestDataSource", entityName, primaryFieldName, trueRecordId); var serviceRequestFormView = new CrmEntityFormView() { FormName = "Web Details", Mode = formMode, EntityName = entityName, CssClass = "crmEntityFormView", SubmitButtonCssClass = "btn btn-primary", AutoGenerateSteps = false, ClientIDMode = ClientIDMode.Static, MappingFieldCollection = new MappingFieldMetadataCollection() { } }; var languageCodeSetting = ServiceContext.GetSiteSettingValueByName(Portal.Website, "Language Code"); if (!string.IsNullOrWhiteSpace(languageCodeSetting)) { int languageCode; if (int.TryParse(languageCodeSetting, out languageCode)) { serviceRequestFormView.LanguageCode = languageCode; serviceRequestFormView.ContextName = languageCode.ToString(CultureInfo.InvariantCulture); serviceRequestDataSource.CrmDataContextName = languageCode.ToString(CultureInfo.InvariantCulture); } } CrmEntityFormViewPanel.Controls.Add(serviceRequestFormView); serviceRequestFormView.DataSourceID = serviceRequestDataSource.ID; }
private CrmEntityFormView GetEntityFormView(ControlCollection controls) { CrmEntityFormView formView = null; foreach (Control control in controls) { if (control is CrmEntityFormView) { formView = (CrmEntityFormView)control; break; } else { formView = GetEntityFormView(control.Controls); if (formView != null) { break; } } } return(formView); }
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(); } } } }
protected void Page_Load(object sender, EventArgs e) { Guid entityId; var entityIdValue = HttpContext.Current.Request["entityid"]; var entityName = HttpContext.Current.Request["entityname"]; var entityPrimaryKeyName = HttpContext.Current.Request["entityprimarykeyname"]; var formName = HttpContext.Current.Request["formname"]; var controlId = HttpContext.Current.Request["controlid"]; int languageCode; if (!Guid.TryParse(entityIdValue, out entityId) || string.IsNullOrWhiteSpace(entityName) || string.IsNullOrWhiteSpace(formName) || string.IsNullOrWhiteSpace(controlId)) { return; } if (string.IsNullOrWhiteSpace(entityPrimaryKeyName)) { entityPrimaryKeyName = MetadataHelper.GetEntityPrimaryKeyAttributeLogicalName(ServiceContext, entityName); } if (string.IsNullOrWhiteSpace(entityPrimaryKeyName)) { return; } var fetch = new Fetch { MappingType = MappingType.Logical, Entity = new FetchEntity(entityName) { Attributes = FetchAttribute.All, Filters = new List <Filter> { new Filter { Type = LogicalOperator.And, Conditions = new List <Condition> { new Condition(entityPrimaryKeyName, ConditionOperator.Equal, entityId) } } } } }; var dataSource = new CrmDataSource { ID = string.Format("{0}_datasource", controlId), FetchXml = fetch.ToFetchExpression().Query, }; var formView = new CrmEntityFormView { ID = controlId, CssClass = "crmEntityFormView", DataSourceID = dataSource.ID, DataBindOnPostBack = true, EntityName = entityName, FormName = formName, Mode = FormViewMode.ReadOnly, ClientIDMode = ClientIDMode.Static, }; var languageCodeSetting = HttpContext.Current.Request["languagecode"]; if (!string.IsNullOrWhiteSpace(languageCodeSetting) && int.TryParse(languageCodeSetting, out languageCode)) { var found = false; var portalName = languageCode.ToString(CultureInfo.InvariantCulture); var portals = Microsoft.Xrm.Portal.Configuration.PortalCrmConfigurationManager.GetPortalCrmSection().Portals; formView.LanguageCode = languageCode; if (portals.Count > 0) { foreach (var portal in portals) { var portalContext = portal as PortalContextElement; if (portalContext != null && portalContext.Name == portalName) { found = true; } } if (found) { formView.ContextName = portalName; dataSource.CrmDataContextName = portalName; } } } FormPanel.Controls.Add(dataSource); FormPanel.Controls.Add(formView); }
private void RenderCrmEntityFormView(string entityName, string primaryFieldName, Entity serviceRequestType, Guid trueRecordId, FormViewMode formMode) { var serviceRequestDataSource = CreateDataSource("SeriveRequestDataSource", entityName, primaryFieldName, trueRecordId); Entity entityForm = null; entityForm = (serviceRequestType.GetAttributeValue <EntityReference>("adx_entityformid") != null) ? XrmContext.CreateQuery("adx_entityform").FirstOrDefault(e => e.GetAttributeValue <Guid>("adx_entityformid") == serviceRequestType.GetAttributeValue <EntityReference>("adx_entityformid").Id) : XrmContext.CreateQuery("adx_entityform").FirstOrDefault(ef => ef.GetAttributeValue <string>("adx_name") == "Web Service Request Details" && ef.GetAttributeValue <string>("adx_entityname") == entityName); if (entityForm != null) { var formRecordSourceDefinition = new FormEntitySourceDefinition(entityName, primaryFieldName, trueRecordId); var entityFormControl = new EntityForm(entityForm.ToEntityReference(), formRecordSourceDefinition) { ID = "CustomEntityFormControl", FormCssClass = "crmEntityFormView", PreviousButtonCssClass = "btn btn-default", NextButtonCssClass = "btn btn-primary", SubmitButtonCssClass = "btn btn-primary", ClientIDMode = ClientIDMode.Static /*, * EntityFormReference = entityForm.ToEntityReference(), * EntitySourceDefinition = formRecordSourceDefinition*/ }; var languageCodeSetting = ServiceContext.GetSiteSettingValueByName(Portal.Website, "Language Code"); if (!string.IsNullOrWhiteSpace(languageCodeSetting)) { int languageCode; if (int.TryParse(languageCodeSetting, out languageCode)) { entityFormControl.LanguageCode = languageCode; } } CrmEntityFormViewPanel.Controls.Add(entityFormControl); } else { var mappingFieldCollection = new MappingFieldMetadataCollection() { FormattedLocationFieldName = serviceRequestType.GetAttributeValue <string>("adx_locationfieldname"), LatitudeFieldName = serviceRequestType.GetAttributeValue <string>("adx_latitudefieldname"), LongitudeFieldName = serviceRequestType.GetAttributeValue <string>("adx_longitudefieldname") }; var serviceRequestFormView = new CrmEntityFormView() { FormName = "Web Details", Mode = formMode, EntityName = entityName, CssClass = "crmEntityFormView", SubmitButtonCssClass = "btn btn-primary", AutoGenerateSteps = false, ClientIDMode = ClientIDMode.Static, MappingFieldCollection = mappingFieldCollection }; var languageCodeSetting = ServiceContext.GetSiteSettingValueByName(Portal.Website, "Language Code"); if (!string.IsNullOrWhiteSpace(languageCodeSetting)) { int languageCode; if (int.TryParse(languageCodeSetting, out languageCode)) { serviceRequestFormView.LanguageCode = languageCode; serviceRequestFormView.ContextName = languageCode.ToString(CultureInfo.InvariantCulture); serviceRequestDataSource.CrmDataContextName = languageCode.ToString(CultureInfo.InvariantCulture); } } CrmEntityFormViewPanel.Controls.Add(serviceRequestFormView); serviceRequestFormView.DataSourceID = serviceRequestDataSource.ID; } }