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