internal static bool TryGetRecord(OrganizationServiceContext context, FormEntitySourceDefinition definition, out Entity record) { record = context.CreateQuery(definition.LogicalName).FirstOrDefault(o => o.GetAttributeValue <Guid>(definition.PrimaryKeyLogicalName) == definition.ID); return(record != null); }
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; } }