private CalculateOpportunityActionLink(IPortalContext portalContext, int languageCode,
                                               CalculateOpportunityAction action, bool enabled = true, UrlBuilder url = null, string portalName = null)
            : base(portalContext, languageCode, action, LinkActionType.CalculateOpportunity, enabled, url, portalName, DefaultButtonLabel, DefaultButtonTooltip)
        {
            Modal = new ViewCalculateOpportunityModal();

            URL = EntityListFunctions.BuildControllerActionUrl("CalculateActualValueOfOpportunity", "EntityAction", new { area = "Portal", __portalScopeId__ = portalContext.Website.Id });
        }
Esempio n. 2
0
        private DeactivateActionLink(IPortalContext portalContext, int languageCode, DeactivateAction action, bool enabled = true, UrlBuilder url = null, string portalName = null)
            : base(portalContext, languageCode, action, LinkActionType.Deactivate, enabled, url, portalName, DefaultButtonLabel, DefaultButtonTooltip)
        {
            Modal = new ViewDeactivateModal();

            if (url == null)
            {
                URL = EntityListFunctions.BuildControllerActionUrl("Deactivate", "EntityAction",
                                                                   new { area = "Portal", __portalScopeId__ = portalContext.Website.Id });
            }
        }
        /// <summary>
        /// Constructor used by ViewConfiguration class
        /// </summary>
        public AssociateActionLink(IEnumerable <ViewConfiguration> viewConfigurations, Relationship relationship,
                                   IPortalContext portalContext, AssociateAction action, int languageCode, bool enabled = false, UrlBuilder url = null,
                                   string portalName = null, string label = null, string tooltip = null)
            : base(portalContext, languageCode, action, LinkActionType.Associate, enabled, url, portalName, label, tooltip)
        {
            Relationship = relationship;

            if (url == null)
            {
                URL = EntityListFunctions.BuildControllerActionUrl("Associate", "EntityGrid",
                                                                   new { area = "Portal", __portalScopeId__ = portalContext.Website.Id });
            }

            ViewConfigurations = viewConfigurations ?? Enumerable.Empty <ViewConfiguration>();
        }
        public DownloadActionLink(IPortalContext portalContext, int languageCode, DownloadAction action, bool enabled = true, UrlBuilder url = null, string portalName = null)
            : base(portalContext, languageCode, action, LinkActionType.Download, enabled, url, portalName, DefaultButtonLabel, DefaultButtonTooltip)
        {
            var allPagesLabel    = Localization.GetLocalizedString(action.AllPagesLabel, languageCode);
            var currentPageLabel = Localization.GetLocalizedString(action.CurrentPageLabel, languageCode);

            AllPagesLabel    = !string.IsNullOrWhiteSpace(allPagesLabel) ? allPagesLabel : DefaultAllPagesLabel;
            CurrentPageLabel = !string.IsNullOrWhiteSpace(currentPageLabel) ? currentPageLabel : DefaultCurrentPageLabel;
            Format           = FormatType.Excel;
            Type             = LinkActionType.Download;

            if (url == null)
            {
                URL = EntityListFunctions.BuildControllerActionUrl("DownloadAsExcel", "EntityGrid",
                                                                   new { area = "Portal", __portalScopeId__ = portalContext.Website.Id });
            }
        }
Esempio n. 5
0
        public WorkflowActionLink(IPortalContext portalContext, EntityReference workflow, int languageCode,
                                  WorkflowAction action, bool enabled = true, UrlBuilder url = null, string portalName = null)
            : base(portalContext, languageCode, action, LinkActionType.Workflow, enabled, url, portalName, DefaultButtonLabel, DefaultButtonLabel)
        {
            Modal = new ViewWorkflowModal();

            CustomizeModal = action.WorkflowDialogTitle != null || action.WorkflowDialogPrimaryButtonText != null || action.WorkflowDialogCloseButtonText != null;

            Workflow = workflow;

            if (url == null)
            {
                URL = EntityListFunctions.BuildControllerActionUrl("ExecuteWorkflow", "EntityGrid",
                                                                   new { area = "Portal", __portalScopeId__ = portalContext.Website.Id });
            }

            var buttonLabel   = action.ButtonLabel.GetLocalizedString(languageCode);
            var buttonTooltip = action.ButtonTooltip.GetLocalizedString(languageCode);

            if (!string.IsNullOrWhiteSpace(buttonLabel) && !string.IsNullOrWhiteSpace(buttonTooltip) && action.WorkflowId != Guid.Empty)
            {
                return;
            }

            var wrkflow = portalContext.ServiceContext.CreateQuery("workflow")
                          .FirstOrDefault(w => w.GetAttributeValue <Guid>("workflowid") == action.WorkflowId);

            if (wrkflow == null)
            {
                return;
            }

            if (string.IsNullOrWhiteSpace(buttonLabel))
            {
                Label = DefaultButtonLabel;
            }

            // Try to extract the text only if the label has HTML
            string nohtmlLabel = Regex.Replace(Label, @"<[^>]*>", string.Empty);

            if (string.IsNullOrWhiteSpace(buttonTooltip))
            {
                Tooltip = nohtmlLabel;
            }
        }
        public DeleteActionLink(IPortalContext portalContext, int languageCode, DeleteAction action,
                                bool enabled = true, UrlBuilder url = null, string portalName = null)
            : base(
                portalContext, languageCode, action, LinkActionType.Delete, enabled, url, portalName, DefaultButtonLabel,
                DefaultButtonTooltip)
        {
            if (string.IsNullOrWhiteSpace(Confirmation))
            {
                Confirmation = DefaultConfirmation;
            }

            Modal = new ViewDeleteModal();

            if (url == null)
            {
                URL = EntityListFunctions.BuildControllerActionUrl("Delete", "EntityGrid",
                                                                   new { area = "Portal", __portalScopeId__ = portalContext.Website.Id });
            }
        }
        private ResolveCaseActionLink(IPortalContext portalContext, int languageCode, ResolveCaseAction action,
                                      bool enabled = true, UrlBuilder url = null, string portalName = null)
            : base(portalContext, languageCode, action, LinkActionType.ResolveCase, enabled, url, portalName,
                   DefaultButtonLabel, DefaultButtonTooltip)
        {
            Modal = new ViewResolveCaseModal();

            if (url == null)
            {
                URL = EntityListFunctions.BuildControllerActionUrl("ResolveCase", "EntityAction",
                                                                   new { area = "Portal", __portalScopeId__ = portalContext.Website.Id });
            }

            var subjectLabel     = action.SubjectLabel.GetLocalizedString(languageCode);
            var descriptionLabel = action.DescriptionLabel.GetLocalizedString(languageCode);

            SubjectLabel     = !string.IsNullOrWhiteSpace(subjectLabel) ? subjectLabel : DefaultSubjectLabel;
            DescriptionLabel = !string.IsNullOrWhiteSpace(descriptionLabel) ? descriptionLabel : DefaultDescriptionLabel;
        }
        private CloseIncidentActionLink(IPortalContext portalContext, int languageCode, CloseIncidentAction action,
                                        bool enabled = true, UrlBuilder url = null, string portalName = null)
            : base(
                portalContext, languageCode, action, LinkActionType.CloseIncident, enabled, url, portalName, DefaultButtonLabel,
                DefaultButtonTooltip)
        {
            Modal = new ViewCloseIncidentModal();

            if (url == null)
            {
                URL = EntityListFunctions.BuildControllerActionUrl("CloseCase", "EntityAction",
                                                                   new { area = "Portal", __portalScopeId__ = portalContext.Website.Id });
            }

            var defaultResolution            = action.DefaultResolution;
            var defaultResolutionDescription = action.DefaultResolutionDescription;

            DefaultResolution            = !string.IsNullOrWhiteSpace(defaultResolution) ? defaultResolution : DefaultResolutionLabel;
            DefaultResolutionDescription = !string.IsNullOrWhiteSpace(defaultResolutionDescription) ? defaultResolutionDescription : DefaultResolutionDescriptionLabel;
        }
        /// <summary>
        /// Creates the HTML to render a subgrid listing of records defined by the associated view
        /// </summary>
        protected virtual IHtmlString BuildGrid(HtmlControl container, OrganizationServiceContext context, Guid[] viewGuids,
                                                Guid viewId, Guid entityId, Entity user)
        {
            var portalContext = PortalCrmConfigurationManager.CreatePortalContext(Metadata.FormView.ContextName);
            var html          = Mvc.Html.EntityExtensions.GetHtmlHelper(Metadata.FormView.ContextName, container.Page.Request.RequestContext, container.Page.Response);
            var source        = new EntityReference(Metadata.TargetEntityName, entityId);
            var relationship  = new Relationship(Metadata.ViewRelationshipName);

            var metadataManyToMany    = EntityMetadata.ManyToManyRelationships.FirstOrDefault(r => r.SchemaName == Metadata.ViewRelationshipName);
            var relationshipManyToOne = EntityMetadata.ManyToOneRelationships.FirstOrDefault(r => r.SchemaName == Metadata.ViewRelationshipName);
            var relationshipOneToMany = EntityMetadata.OneToManyRelationships.FirstOrDefault(r => r.SchemaName == Metadata.ViewRelationshipName);

            if (relationshipManyToOne != null && relationshipOneToMany != null)             // self referential
            {
                relationship.PrimaryEntityRole = EntityRole.Referenced;
            }
            else if (metadataManyToMany != null && metadataManyToMany.Entity1LogicalName == metadataManyToMany.Entity2LogicalName)
            {
                relationship.PrimaryEntityRole = EntityRole.Referencing;
            }

            var settings = Metadata.SubgridSettings;

            var viewConfigurations = new List <ViewConfiguration>();

            var cssClass             = (settings != null) ? settings.CssClass : null;
            var gridCssClass         = (settings != null) ? settings.GridCssClass : null;
            var gridColumnWidthStyle = (settings != null && settings.GridColumnWidthStyle != null) ? settings.GridColumnWidthStyle.GetValueOrDefault(EntityGridExtensions.GridColumnWidthStyle.Percent) : EntityGridExtensions.GridColumnWidthStyle.Percent;

            var accessDeniedMessage = (settings != null) ? Localization.GetLocalizedString(settings.AccessDeniedMessage, Metadata.LanguageCode) : null;
            var errorMessage        = (settings != null) ? Localization.GetLocalizedString(settings.ErrorMessage, Metadata.LanguageCode) : null;
            var loadingMessage      = (settings != null) ? Localization.GetLocalizedString(settings.LoadingMessage, Metadata.LanguageCode) : null;
            var emptyMessage        = (settings != null) ? Localization.GetLocalizedString(settings.EmptyMessage, Metadata.LanguageCode) : null;

            var modalLookup = (settings != null) ? settings.LookupDialog : null;

            var modalLookupSelectedRecordsTitle = modalLookup == null ? null : Localization.GetLocalizedString(modalLookup.SelectRecordsTitle, Metadata.LanguageCode);
            var modalLookupCssClass             = modalLookup == null ? null : modalLookup.CssClass;
            var modalLookupTitle                   = modalLookup == null ? null : Localization.GetLocalizedString(modalLookup.Title, Metadata.LanguageCode);
            var modalLookupTitleCssClass           = modalLookup == null ? null : modalLookup.TitleCssClass;
            var modalLookupPrimaryButtonText       = modalLookup == null ? null : Localization.GetLocalizedString(modalLookup.PrimaryButtonText, Metadata.LanguageCode);
            var modalLookupDismissButtonSrText     = modalLookup == null ? null : Localization.GetLocalizedString(modalLookup.DismissButtonSrText, Metadata.LanguageCode);
            var modalLookupCloseButtonText         = modalLookup == null ? null : Localization.GetLocalizedString(modalLookup.CloseButtonText, Metadata.LanguageCode);
            var modalLookupPrimaryButtonCssClass   = modalLookup == null ? null : modalLookup.PrimaryButtonCssClass;
            var modalLookupCloseButtonCssClass     = modalLookup == null ? null : modalLookup.CloseButtonCssClass;
            var modalLookupGridContainerCssClass   = modalLookup == null ? null : modalLookup.GridSettings == null ? null : modalLookup.GridSettings.CssClass;
            var modalLookupGridCssClass            = modalLookup == null ? null : modalLookup.GridSettings == null ? null : modalLookup.GridSettings.GridCssClass;
            var modalLookupGridLoadingMessage      = modalLookup == null ? null : modalLookup.GridSettings == null ? null : Localization.GetLocalizedString(modalLookup.GridSettings.LoadingMessage, Metadata.LanguageCode);
            var modalLookupGridErrorMessage        = modalLookup == null ? null : modalLookup.GridSettings == null ? null : Localization.GetLocalizedString(modalLookup.GridSettings.ErrorMessage, Metadata.LanguageCode);
            var modalLookupGridAccessDeniedMessage = modalLookup == null ? null : modalLookup.GridSettings == null ? null : Localization.GetLocalizedString(modalLookup.GridSettings.AccessDeniedMessage, Metadata.LanguageCode);
            var modalLookupGridEmptyMessage        = modalLookup == null ? null : modalLookup.GridSettings == null ? null : Localization.GetLocalizedString(modalLookup.GridSettings.EmptyMessage, Metadata.LanguageCode);
            var modalLookupDefaultErrorMessage     = modalLookup == null ? null : Localization.GetLocalizedString(modalLookup.DefaultErrorMessage, Metadata.LanguageCode);

            var modalDetailsForm                    = (settings != null) ? settings.DetailsFormDialog : null;
            var modalDetailsFormCssClass            = modalDetailsForm == null ? null : modalDetailsForm.CssClass;
            var modalDetailsFormTitle               = modalDetailsForm == null ? null : Localization.GetLocalizedString(modalDetailsForm.Title, Metadata.LanguageCode);
            var modalDetailsFormTitleCssClass       = modalDetailsForm == null ? null : modalDetailsForm.TitleCssClass;
            var modalDetailsFormLoadingMessage      = modalDetailsForm == null ? null : Localization.GetLocalizedString(modalDetailsForm.LoadingMessage, Metadata.LanguageCode);
            var modalDetailsFormDismissButtonSrText = modalDetailsForm == null ? null : Localization.GetLocalizedString(modalDetailsForm.DismissButtonSrText, Metadata.LanguageCode);
            var modalDetailsFormSize                = (modalDetailsForm != null && modalDetailsForm.Size != null) ? modalDetailsForm.Size.GetValueOrDefault(BootstrapExtensions.BootstrapModalSize.Large) : BootstrapExtensions.BootstrapModalSize.Large;

            var modalEditForm                    = (settings != null) ? settings.EditFormDialog : null;
            var modalEditFormCssClass            = modalEditForm == null ? null : modalEditForm.CssClass;
            var modalEditFormTitle               = modalEditForm == null ? null : Localization.GetLocalizedString(modalEditForm.Title, Metadata.LanguageCode);
            var modalEditFormTitleCssClass       = modalEditForm == null ? null : modalEditForm.TitleCssClass;
            var modalEditFormLoadingMessage      = modalEditForm == null ? null : Localization.GetLocalizedString(modalEditForm.LoadingMessage, Metadata.LanguageCode);
            var modalEditFormDismissButtonSrText = modalEditForm == null ? null : Localization.GetLocalizedString(modalEditForm.DismissButtonSrText, Metadata.LanguageCode);
            var modalEditFormSize                = (modalEditForm != null && modalEditForm.Size != null) ? modalEditForm.Size.GetValueOrDefault(BootstrapExtensions.BootstrapModalSize.Large) : BootstrapExtensions.BootstrapModalSize.Large;

            var modalCreateForm                    = (settings != null) ? settings.CreateFormDialog : null;
            var modalCreateFormCssClass            = modalCreateForm == null ? null : modalCreateForm.CssClass;
            var modalCreateFormTitle               = modalCreateForm == null ? null : Localization.GetLocalizedString(modalCreateForm.Title, Metadata.LanguageCode);
            var modalCreateFormTitleCssClass       = modalCreateForm == null ? null : modalCreateForm.TitleCssClass;
            var modalCreateFormLoadingMessage      = modalCreateForm == null ? null : Localization.GetLocalizedString(modalCreateForm.LoadingMessage, Metadata.LanguageCode);
            var modalCreateFormDismissButtonSrText = modalCreateForm == null ? null : Localization.GetLocalizedString(modalCreateForm.DismissButtonSrText, Metadata.LanguageCode);
            var modalCreateFormSize                = (modalCreateForm != null && modalCreateForm.Size != null) ? modalCreateForm.Size.GetValueOrDefault(BootstrapExtensions.BootstrapModalSize.Large) : BootstrapExtensions.BootstrapModalSize.Large;


            var modalDelete                    = (settings != null) ? settings.DeleteDialog : null;
            var modalDeleteCssClass            = modalDelete == null ? null : modalDelete.CssClass;
            var modalDeleteTitle               = modalDelete == null ? null : Localization.GetLocalizedString(modalDelete.Title, Metadata.LanguageCode);
            var modalDeleteTitleCssClass       = modalDelete == null ? null : modalDelete.TitleCssClass;
            var modalDeletePrimaryButtonText   = modalDelete == null ? null : Localization.GetLocalizedString(modalDelete.PrimaryButtonText, Metadata.LanguageCode);
            var modalDeleteCloseButtonText     = modalDelete == null ? null : Localization.GetLocalizedString(modalDelete.CloseButtonText, Metadata.LanguageCode);
            var modalDeleteDismissButtonSrText = modalDelete == null ? null : Localization.GetLocalizedString(modalDelete.DismissButtonSrText, Metadata.LanguageCode);
            var modalDeleteSize                = (modalDelete != null && modalDelete.Size != null) ? modalDelete.Size.GetValueOrDefault(BootstrapExtensions.BootstrapModalSize.Default) : BootstrapExtensions.BootstrapModalSize.Default;
            var modalDeleteBody                = modalDelete == null ? null : Localization.GetLocalizedString(modalDelete.Confirmation, Metadata.LanguageCode);

            var modalError                    = (settings != null) ? settings.ErrorDialog : null;
            var modalErrorSize                = (modalError != null && modalError.Size != null) ? modalError.Size.GetValueOrDefault(BootstrapExtensions.BootstrapModalSize.Default) : BootstrapExtensions.BootstrapModalSize.Default;
            var modalErrorCssClass            = modalError == null ? null : modalError.CssClass;
            var modalErrorTitle               = modalError == null ? null : Localization.GetLocalizedString(modalError.Title, Metadata.LanguageCode);
            var modalErrorTitleCssClass       = modalError == null ? null : modalError.TitleCssClass;
            var modalErrorDismissButtonSrText = modalError == null ? null : Localization.GetLocalizedString(modalError.DismissButtonSrText, Metadata.LanguageCode);
            var modalErrorCloseButtonText     = modalError == null ? null : Localization.GetLocalizedString(modalError.CloseButtonText, Metadata.LanguageCode);
            var modalErrorBody                = modalError == null ? null : Localization.GetLocalizedString(modalError.Body, Metadata.LanguageCode);

            var modalLookupGridPageSize = html.IntegerSetting("Portal/Lookup/Modal/Grid/PageSize") ?? 10;
            var modalLookupSizeSetting  = html.Setting("Portal/Lookup/Modal/Size");
            var modalLookupSize         = BootstrapExtensions.BootstrapModalSize.Large;

            if (modalLookupSizeSetting != null && modalLookupSizeSetting.ToLower() == "default")
            {
                modalLookupSize = BootstrapExtensions.BootstrapModalSize.Default;
            }
            if (modalLookupSizeSetting != null && modalLookupSizeSetting.ToLower() == "small")
            {
                modalLookupSize = BootstrapExtensions.BootstrapModalSize.Small;
            }

            var modalCreateRelatedRecord                    = (settings != null) ? settings.CreateRelatedRecordDialog : null;
            var modalCreateRelatedRecordCssClass            = modalCreateRelatedRecord == null ? null : modalCreateRelatedRecord.CssClass;
            var modalCreateRelatedRecordTitle               = modalCreateRelatedRecord == null ? null : Localization.GetLocalizedString(modalCreateRelatedRecord.Title, Metadata.LanguageCode);
            var modalCreateRelatedRecordTitleCssClass       = modalCreateRelatedRecord == null ? null : modalCreateRelatedRecord.TitleCssClass;
            var modalCreateRelatedRecordLoadingMessage      = modalCreateRelatedRecord == null ? null : Localization.GetLocalizedString(modalCreateRelatedRecord.LoadingMessage, Metadata.LanguageCode);
            var modalCreateRelatedRecordDismissButtonSrText = modalCreateRelatedRecord == null ? null : Localization.GetLocalizedString(modalCreateRelatedRecord.DismissButtonSrText, Metadata.LanguageCode);
            var modalCreateRelatedRecordSize                = (modalCreateRelatedRecord != null && modalCreateRelatedRecord.Size != null) ? modalCreateRelatedRecord.Size.GetValueOrDefault(BootstrapExtensions.BootstrapModalSize.Large) : BootstrapExtensions.BootstrapModalSize.Large;

            foreach (var viewGuid in viewGuids)
            {
                var savedQueryView = new SavedQueryView(context, viewGuid, Metadata.LanguageCode);

                if (savedQueryView.FetchXml == null)
                {
                    continue;
                }

                var fetch = Fetch.Parse(savedQueryView.FetchXml);

                AddFiltersToFetch(context, fetch, entityId.ToString());

                var viewConfiguration = new ViewConfiguration(portalContext, savedQueryView, Metadata.ViewRecordsPerPage ?? 0,
                                                              fetch.ToXml().ToString(), new ViewSearch(Metadata.ViewEnableQuickFind), Metadata.FormView.EnableEntityPermissions,
                                                              settings, Metadata.LanguageCode, ContextName, Metadata.ViewRelationshipName, Metadata.ViewTargetEntityType, viewGuid,
                                                              modalLookupGridPageSize)
                {
                    SubgridFormEntityId          = entityId,
                    SubgridFormEntityLogicalName = Metadata.TargetEntityName
                };

                viewConfigurations.Add(viewConfiguration);
            }

            return(!string.IsNullOrWhiteSpace(Metadata.ViewRelationshipName)
                                ? html.EntitySubGrid(source, relationship, viewConfigurations,
                                                     EntityListFunctions.BuildControllerActionUrl("GetSubgridData", "EntityGrid", new { area = "Portal", __portalScopeId__ = portalContext.Website.Id }), user,
                                                     string.Join(" ", new[] { CssClass, cssClass }).TrimEnd(' '),
                                                     string.Join(" ", new[] { "table-striped", gridCssClass }).TrimEnd(' '),
                                                     gridColumnWidthStyle, EntityGridExtensions.GridSelectMode.None, null, loadingMessage,
                                                     errorMessage, accessDeniedMessage, emptyMessage, Metadata.FormView.ContextName, Metadata.LanguageCode, false, true,
                                                     modalDetailsFormSize, modalDetailsFormCssClass, modalDetailsFormTitle, modalDetailsFormLoadingMessage, modalDetailsFormDismissButtonSrText,
                                                     modalDetailsFormTitleCssClass, modalCreateFormSize, modalCreateFormCssClass, modalCreateFormTitle,
                                                     modalCreateFormLoadingMessage, modalCreateFormDismissButtonSrText, modalCreateFormTitleCssClass, modalEditFormSize,
                                                     modalEditFormCssClass, modalEditFormTitle, modalEditFormLoadingMessage, modalEditFormDismissButtonSrText,
                                                     modalEditFormTitleCssClass, modalDeleteSize, modalDeleteCssClass, modalDeleteTitle, modalDeleteBody,
                                                     modalDeletePrimaryButtonText, modalDeleteCloseButtonText, modalDeleteDismissButtonSrText, modalDeleteTitleCssClass,
                                                     modalErrorSize, modalErrorCssClass, modalErrorTitle, modalErrorBody, modalErrorDismissButtonSrText,
                                                     modalErrorCloseButtonText, modalErrorTitleCssClass, modalLookupCssClass,
                                                     modalLookupTitle, modalLookupSelectedRecordsTitle, modalLookupPrimaryButtonText, modalLookupCloseButtonText,
                                                     modalLookupDismissButtonSrText, modalLookupTitleCssClass, modalLookupPrimaryButtonCssClass,
                                                     modalLookupCloseButtonCssClass, modalLookupGridContainerCssClass, modalLookupGridCssClass,
                                                     modalLookupGridLoadingMessage, modalLookupGridErrorMessage, modalLookupGridAccessDeniedMessage,
                                                     modalLookupGridEmptyMessage, modalLookupDefaultErrorMessage, modalLookupSize, modalCreateRelatedRecordSize, modalCreateRelatedRecordCssClass, modalCreateRelatedRecordTitle, modalCreateRelatedRecordLoadingMessage,
                                                     modalCreateRelatedRecordDismissButtonSrText, modalCreateRelatedRecordTitleCssClass)
                                : html.EntitySubGrid(viewConfigurations,
                                                     EntityListFunctions.BuildControllerActionUrl("GetSubgridData", "EntityGrid", new { area = "Portal", __portalScopeId__ = portalContext.Website.Id }), user,
                                                     string.Join(" ", new[] { CssClass, cssClass }).TrimEnd(' '),
                                                     string.Join(" ", new[] { "table-striped", gridCssClass }).TrimEnd(' '), gridColumnWidthStyle,
                                                     EntityGridExtensions.GridSelectMode.None, null, loadingMessage, errorMessage, accessDeniedMessage, emptyMessage,
                                                     Metadata.FormView.ContextName, Metadata.LanguageCode, false, true, modalDetailsFormSize, modalDetailsFormCssClass,
                                                     modalDetailsFormTitle, modalDetailsFormLoadingMessage, modalDetailsFormDismissButtonSrText,
                                                     modalDetailsFormTitleCssClass, modalCreateFormSize, modalCreateFormCssClass, modalCreateFormTitle,
                                                     modalCreateFormLoadingMessage, modalCreateFormDismissButtonSrText, modalCreateFormTitleCssClass, modalEditFormSize,
                                                     modalEditFormCssClass, modalEditFormTitle, modalEditFormLoadingMessage, modalEditFormDismissButtonSrText,
                                                     modalEditFormTitleCssClass, modalDeleteSize, modalDeleteCssClass, modalDeleteTitle, modalDeleteBody,
                                                     modalDeletePrimaryButtonText, modalDeleteCloseButtonText, modalDeleteDismissButtonSrText, modalDeleteTitleCssClass,
                                                     modalErrorSize, modalErrorCssClass, modalErrorTitle, modalErrorBody, modalErrorDismissButtonSrText,
                                                     modalErrorCloseButtonText, modalErrorTitleCssClass, modalCreateRelatedRecordSize, modalCreateRelatedRecordCssClass, modalCreateRelatedRecordTitle, modalCreateRelatedRecordLoadingMessage,
                                                     modalCreateRelatedRecordDismissButtonSrText, modalCreateRelatedRecordTitleCssClass));
        }
        /// <summary>
        /// Constructor used by The ViewConfiguration Class
        /// </summary>
        public CalendarConfiguration(OrganizationServiceContext serviceContext, bool calendarEnabled,
                                     string calendarInitialDateString, OptionSetValue calendarInitialView,
                                     OptionSetValue calendarStyle, OptionSetValue calendarTimeZoneDisplayMode,
                                     int?calendarDisplayTimeZone, string calendarStartDateFieldName,
                                     string calendarEndDateFieldName, string calendarSummaryFieldName,
                                     string calendarDescriptionFieldName, string calendarOrganizerFieldName,
                                     string calendarLocationFieldName, string calendarAllDayFieldName)
        {
            Enabled = calendarEnabled;

            if (!string.IsNullOrWhiteSpace(calendarInitialDateString))
            {
                InitialDateString = calendarInitialDateString;
            }

            if (calendarInitialView != null)
            {
                if (Enum.IsDefined(typeof(CalendarView), calendarInitialView.Value))
                {
                    InitialView = (CalendarView)calendarInitialView.Value;
                }
                else
                {
                    ADXTrace.Instance.TraceInfo(TraceCategory.Application, string.Format("Calendar Initial View value '{0}' is not a valid value defined by CalendarConfiguration.CalendarView class.", calendarInitialView.Value));
                }
            }

            if (calendarStyle != null)
            {
                if (Enum.IsDefined(typeof(CalendarStyle), calendarStyle.Value))
                {
                    Style = (CalendarStyle)calendarStyle.Value;
                }
                else
                {
                    ADXTrace.Instance.TraceInfo(TraceCategory.Application, string.Format("Calendar Style value '{0}' is not a valid value defined by CalendarConfiguration.CalendarStyle class.", calendarStyle.Value));
                    Style = CalendarStyle.Full;
                }
            }

            if (calendarTimeZoneDisplayMode != null)
            {
                if (Enum.IsDefined(typeof(TimeZoneDisplayMode), calendarTimeZoneDisplayMode.Value))
                {
                    TimeZoneDisplay = (TimeZoneDisplayMode)calendarTimeZoneDisplayMode.Value;
                }
                else
                {
                    TimeZoneDisplay = TimeZoneDisplayMode.UserLocalTimeZone;
                }
            }

            if (calendarDisplayTimeZone != null)
            {
                var calendarDisplayTimeZoneStandardName = EntityListFunctions.GetTimeZoneStandardName(serviceContext, calendarDisplayTimeZone.Value);

                if (!string.IsNullOrWhiteSpace(calendarDisplayTimeZoneStandardName))
                {
                    TimeZoneStandardName = calendarDisplayTimeZoneStandardName;
                }
            }

            if (!string.IsNullOrWhiteSpace(calendarStartDateFieldName))
            {
                StartDateFieldName = calendarStartDateFieldName;
            }

            if (!string.IsNullOrWhiteSpace(calendarEndDateFieldName))
            {
                EndDateFieldName = calendarEndDateFieldName;
            }

            if (!string.IsNullOrWhiteSpace(calendarSummaryFieldName))
            {
                SummaryFieldName = calendarSummaryFieldName;
            }

            if (!string.IsNullOrWhiteSpace(calendarDescriptionFieldName))
            {
                DescriptionFieldName = calendarDescriptionFieldName;
            }

            if (!string.IsNullOrWhiteSpace(calendarOrganizerFieldName))
            {
                OrganizerFieldName = calendarOrganizerFieldName;
            }

            if (!string.IsNullOrWhiteSpace(calendarLocationFieldName))
            {
                LocationFieldName = calendarLocationFieldName;
            }

            if (!string.IsNullOrWhiteSpace(calendarAllDayFieldName))
            {
                IsAllDayFieldName = calendarAllDayFieldName;
            }
        }