Ejemplo n.º 1
0
        public static void ActionModalWindows(this HtmlHelper html, TagBuilder container, DeleteActionLink deleteActionLink,
                                              QualifyLeadActionLink qualifyLeadActionLink, CloseIncidentActionLink closeCaseActionLink,
                                              ResolveCaseActionLink resolveCaseActionLink, ReopenCaseActionLink reopenCaseActionLink,
                                              CancelCaseActionLink cancelCaseActionLink, ConvertQuoteToOrderActionLink convertQuoteActionLink,
                                              ConvertOrderToInvoiceActionLink convertOrderActionLink, CalculateOpportunityActionLink calculateOpportunityActionLink,
                                              DeactivateActionLink deactivateActionLink, ActivateActionLink activateActionLink,
                                              ActivateQuoteActionLink activateQuoteActionLink, SetOpportunityOnHoldActionLink opportunityOnHoldActionLink,
                                              ReopenOpportunityActionLink reopenOpportunityActionLink, WinOpportunityActionLink winOpportunityActionLink,
                                              LoseOpportunityActionLink loseOpportunityActionLink,
                                              GenerateQuoteFromOpportunityActionLink generateQuoteFromOpportunityActionLink,
                                              UpdatePipelinePhaseActionLink updatePipelinePhaseAction, WorkflowActionLink firstWorkflow,
                                              DisassociateActionLink disassociateAction, CreateRelatedRecordActionLink createRelatedRecordAction)
        {
            if (deleteActionLink.Enabled)
            {
                container.InnerHtml += html.DeleteModal(deleteActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default,
                                                        deleteActionLink.Modal.CssClass, deleteActionLink.Modal.Title.GetValueOrDefault(DefaultModalDeleteTitle),
                                                        deleteActionLink.Confirmation.GetValueOrDefault(DefaultModalDeleteBody),
                                                        deleteActionLink.Modal.DismissButtonSrText.GetValueOrDefault(DefaultModalDismissButtonSrText),
                                                        deleteActionLink.Modal.PrimaryButtonText.GetValueOrDefault(DefaultModalDeletePrimaryButtonText),
                                                        deleteActionLink.Modal.CloseButtonText.GetValueOrDefault(DefaultModalDeleteCancelButtonText),
                                                        deleteActionLink.Modal.TitleCssClass, deleteActionLink.Modal.PrimaryButtonCssClass,
                                                        deleteActionLink.Modal.CloseButtonCssClass);
            }

            if (qualifyLeadActionLink.Enabled && (qualifyLeadActionLink.ShowModal == ShowModal.Yes))
            {
                container.InnerHtml +=
                    html.QualifyLeadModal(qualifyLeadActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default,
                                          qualifyLeadActionLink.Modal.CssClass, qualifyLeadActionLink.Modal.Title, qualifyLeadActionLink.Confirmation,
                                          qualifyLeadActionLink.Modal.DismissButtonSrText, qualifyLeadActionLink.Modal.PrimaryButtonText,
                                          qualifyLeadActionLink.Modal.CloseButtonText, qualifyLeadActionLink.Modal.TitleCssClass,
                                          qualifyLeadActionLink.Modal.PrimaryButtonCssClass, qualifyLeadActionLink.Modal.CloseButtonCssClass);
            }

            if (closeCaseActionLink.Enabled && (closeCaseActionLink.ShowModal == ShowModal.Yes))
            {
                container.InnerHtml +=
                    html.CloseCaseModal(closeCaseActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default,
                                        closeCaseActionLink.Modal.CssClass, closeCaseActionLink.Modal.Title, closeCaseActionLink.Confirmation,
                                        null, null, closeCaseActionLink.Modal.DismissButtonSrText, closeCaseActionLink.Modal.PrimaryButtonText,
                                        closeCaseActionLink.Modal.CloseButtonText, closeCaseActionLink.Modal.TitleCssClass,
                                        closeCaseActionLink.Modal.PrimaryButtonCssClass, closeCaseActionLink.Modal.CloseButtonCssClass);
            }

            if (resolveCaseActionLink.Enabled)
            {
                container.InnerHtml +=
                    html.ResolveCaseModal(resolveCaseActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default,
                                          resolveCaseActionLink.Modal.CssClass, resolveCaseActionLink.Modal.Title, resolveCaseActionLink.Confirmation,
                                          resolveCaseActionLink.SubjectLabel, resolveCaseActionLink.DescriptionLabel,
                                          resolveCaseActionLink.Modal.DismissButtonSrText, resolveCaseActionLink.Modal.PrimaryButtonText,
                                          resolveCaseActionLink.Modal.CloseButtonText, resolveCaseActionLink.Modal.TitleCssClass,
                                          resolveCaseActionLink.Modal.PrimaryButtonCssClass, resolveCaseActionLink.Modal.CloseButtonCssClass);
            }

            if (reopenCaseActionLink.Enabled && (reopenCaseActionLink.ShowModal == ShowModal.Yes))
            {
                container.InnerHtml +=
                    html.ReopenCaseModal(reopenCaseActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default,
                                         reopenCaseActionLink.Modal.CssClass, reopenCaseActionLink.Modal.Title, reopenCaseActionLink.Confirmation,
                                         null, null, reopenCaseActionLink.Modal.DismissButtonSrText, reopenCaseActionLink.Modal.PrimaryButtonText,
                                         reopenCaseActionLink.Modal.CloseButtonText, reopenCaseActionLink.Modal.TitleCssClass,
                                         reopenCaseActionLink.Modal.PrimaryButtonCssClass, reopenCaseActionLink.Modal.CloseButtonCssClass);
            }

            if (cancelCaseActionLink.Enabled && (cancelCaseActionLink.ShowModal == ShowModal.Yes))
            {
                container.InnerHtml +=
                    html.CancelCaseModal(cancelCaseActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default,
                                         cancelCaseActionLink.Modal.CssClass, cancelCaseActionLink.Modal.Title, cancelCaseActionLink.Confirmation,
                                         null, null, cancelCaseActionLink.Modal.DismissButtonSrText, cancelCaseActionLink.Modal.PrimaryButtonText,
                                         cancelCaseActionLink.Modal.CloseButtonText, cancelCaseActionLink.Modal.TitleCssClass,
                                         cancelCaseActionLink.Modal.PrimaryButtonCssClass, cancelCaseActionLink.Modal.CloseButtonCssClass);
            }

            if (convertQuoteActionLink.Enabled && (convertQuoteActionLink.ShowModal == ShowModal.Yes))
            {
                container.InnerHtml +=
                    html.ConvertQuoteModal(convertQuoteActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default,
                                           convertQuoteActionLink.Modal.CssClass, convertQuoteActionLink.Modal.Title, convertQuoteActionLink.Confirmation,
                                           convertQuoteActionLink.Modal.DismissButtonSrText, convertQuoteActionLink.Modal.PrimaryButtonText,
                                           convertQuoteActionLink.Modal.CloseButtonText, convertQuoteActionLink.Modal.TitleCssClass,
                                           convertQuoteActionLink.Modal.PrimaryButtonCssClass, convertQuoteActionLink.Modal.CloseButtonCssClass);
            }

            if (convertOrderActionLink.Enabled && (convertOrderActionLink.ShowModal == ShowModal.Yes))
            {
                container.InnerHtml +=
                    html.ConvertOrderModal(closeCaseActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default,
                                           convertOrderActionLink.Modal.CssClass, convertOrderActionLink.Modal.Title, convertOrderActionLink.Confirmation,
                                           convertOrderActionLink.Modal.DismissButtonSrText, convertOrderActionLink.Modal.PrimaryButtonText,
                                           convertOrderActionLink.Modal.CloseButtonText, convertOrderActionLink.Modal.TitleCssClass,
                                           convertOrderActionLink.Modal.PrimaryButtonCssClass, convertOrderActionLink.Modal.CloseButtonCssClass);
            }

            if (calculateOpportunityActionLink.Enabled && (calculateOpportunityActionLink.ShowModal == ShowModal.Yes))
            {
                container.InnerHtml +=
                    html.CalculateOpportunityModal(
                        calculateOpportunityActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default,
                        calculateOpportunityActionLink.Modal.CssClass, calculateOpportunityActionLink.Modal.Title,
                        calculateOpportunityActionLink.Confirmation, calculateOpportunityActionLink.Modal.DismissButtonSrText,
                        calculateOpportunityActionLink.Modal.PrimaryButtonText, calculateOpportunityActionLink.Modal.CloseButtonText,
                        calculateOpportunityActionLink.Modal.TitleCssClass, calculateOpportunityActionLink.Modal.PrimaryButtonCssClass,
                        calculateOpportunityActionLink.Modal.CloseButtonCssClass);
            }

            if (deactivateActionLink.Enabled && (deactivateActionLink.ShowModal == ShowModal.Yes))
            {
                container.InnerHtml +=
                    html.DeactivateModal(deactivateActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default,
                                         deactivateActionLink.Modal.CssClass, deactivateActionLink.Modal.Title, deactivateActionLink.Confirmation,
                                         deactivateActionLink.Modal.DismissButtonSrText, deactivateActionLink.Modal.PrimaryButtonText,
                                         deactivateActionLink.Modal.CloseButtonText,
                                         deactivateActionLink.Modal.TitleCssClass, deactivateActionLink.Modal.PrimaryButtonCssClass,
                                         deactivateActionLink.Modal.CloseButtonCssClass);
            }

            if (activateActionLink.Enabled && (activateActionLink.ShowModal == ShowModal.Yes))
            {
                container.InnerHtml +=
                    html.ActivateModal(activateActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default,
                                       activateActionLink.Modal.CssClass, activateActionLink.Modal.Title, activateActionLink.Confirmation,
                                       activateActionLink.Modal.DismissButtonSrText, activateActionLink.Modal.PrimaryButtonText,
                                       activateActionLink.Modal.CloseButtonText,
                                       activateActionLink.Modal.TitleCssClass, activateActionLink.Modal.PrimaryButtonCssClass,
                                       activateActionLink.Modal.CloseButtonCssClass);
            }

            if (activateQuoteActionLink.Enabled && (activateQuoteActionLink.ShowModal == ShowModal.Yes))
            {
                container.InnerHtml +=
                    html.ActivateQuoteModal(activateQuoteActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default,
                                            activateQuoteActionLink.Modal.CssClass, activateQuoteActionLink.Modal.Title, activateQuoteActionLink.Confirmation,
                                            activateQuoteActionLink.Modal.DismissButtonSrText, activateQuoteActionLink.Modal.PrimaryButtonText,
                                            activateQuoteActionLink.Modal.CloseButtonText,
                                            activateQuoteActionLink.Modal.TitleCssClass, activateQuoteActionLink.Modal.PrimaryButtonCssClass,
                                            activateQuoteActionLink.Modal.CloseButtonCssClass);
            }

            if (opportunityOnHoldActionLink.Enabled && (opportunityOnHoldActionLink.ShowModal == ShowModal.Yes))
            {
                container.InnerHtml +=
                    html.SetOpportunityOnHoldModal(
                        opportunityOnHoldActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default,
                        opportunityOnHoldActionLink.Modal.CssClass, opportunityOnHoldActionLink.Modal.Title,
                        opportunityOnHoldActionLink.Confirmation, opportunityOnHoldActionLink.Modal.DismissButtonSrText,
                        opportunityOnHoldActionLink.Modal.PrimaryButtonText, opportunityOnHoldActionLink.Modal.CloseButtonText,
                        opportunityOnHoldActionLink.Modal.TitleCssClass, opportunityOnHoldActionLink.Modal.PrimaryButtonCssClass,
                        opportunityOnHoldActionLink.Modal.CloseButtonCssClass);
            }

            if (reopenOpportunityActionLink.Enabled && (reopenOpportunityActionLink.ShowModal == ShowModal.Yes))
            {
                container.InnerHtml +=
                    html.ReopenOpportunityModal(reopenOpportunityActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default,
                                                reopenOpportunityActionLink.Modal.CssClass, reopenOpportunityActionLink.Modal.Title,
                                                reopenOpportunityActionLink.Confirmation, reopenOpportunityActionLink.Modal.DismissButtonSrText,
                                                reopenOpportunityActionLink.Modal.PrimaryButtonText, reopenOpportunityActionLink.Modal.CloseButtonText,
                                                reopenOpportunityActionLink.Modal.TitleCssClass, reopenOpportunityActionLink.Modal.PrimaryButtonCssClass,
                                                reopenOpportunityActionLink.Modal.CloseButtonCssClass);
            }

            if (winOpportunityActionLink.Enabled && (winOpportunityActionLink.ShowModal == ShowModal.Yes))
            {
                container.InnerHtml +=
                    html.WinOpportunityModal(winOpportunityActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default,
                                             winOpportunityActionLink.Modal.CssClass, winOpportunityActionLink.Modal.Title, winOpportunityActionLink.Confirmation,
                                             winOpportunityActionLink.Modal.DismissButtonSrText, winOpportunityActionLink.Modal.PrimaryButtonText,
                                             winOpportunityActionLink.Modal.CloseButtonText,
                                             winOpportunityActionLink.Modal.TitleCssClass, winOpportunityActionLink.Modal.PrimaryButtonCssClass,
                                             winOpportunityActionLink.Modal.CloseButtonCssClass);
            }

            if (loseOpportunityActionLink.Enabled && (loseOpportunityActionLink.ShowModal == ShowModal.Yes))
            {
                container.InnerHtml +=
                    html.LoseOpportunityModal(loseOpportunityActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default,
                                              loseOpportunityActionLink.Modal.CssClass, loseOpportunityActionLink.Modal.Title,
                                              loseOpportunityActionLink.Confirmation, loseOpportunityActionLink.Modal.DismissButtonSrText,
                                              loseOpportunityActionLink.Modal.PrimaryButtonText, loseOpportunityActionLink.Modal.CloseButtonText,
                                              loseOpportunityActionLink.Modal.TitleCssClass, loseOpportunityActionLink.Modal.PrimaryButtonCssClass,
                                              loseOpportunityActionLink.Modal.CloseButtonCssClass);
            }

            if (generateQuoteFromOpportunityActionLink.Enabled &&
                (generateQuoteFromOpportunityActionLink.ShowModal == ShowModal.Yes))
            {
                container.InnerHtml +=
                    html.GenerateQuoteFromOpportunityModal(
                        generateQuoteFromOpportunityActionLink.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default,
                        generateQuoteFromOpportunityActionLink.Modal.CssClass, generateQuoteFromOpportunityActionLink.Modal.Title,
                        generateQuoteFromOpportunityActionLink.Confirmation,
                        generateQuoteFromOpportunityActionLink.Modal.DismissButtonSrText,
                        generateQuoteFromOpportunityActionLink.Modal.PrimaryButtonText,
                        generateQuoteFromOpportunityActionLink.Modal.CloseButtonText,
                        generateQuoteFromOpportunityActionLink.Modal.TitleCssClass,
                        generateQuoteFromOpportunityActionLink.Modal.PrimaryButtonCssClass,
                        generateQuoteFromOpportunityActionLink.Modal.CloseButtonCssClass);
            }

            if (updatePipelinePhaseAction.Enabled)
            {
                container.InnerHtml += html.UpdatePipelinePhaseModal(GetPipelinePhases(),
                                                                     updatePipelinePhaseAction.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default,
                                                                     updatePipelinePhaseAction.Modal.CssClass, updatePipelinePhaseAction.Modal.Title,
                                                                     updatePipelinePhaseAction.Confirmation,
                                                                     updatePipelinePhaseAction.PipelinePhaseLabel, updatePipelinePhaseAction.DescriptionLabel,
                                                                     updatePipelinePhaseAction.Modal.DismissButtonSrText, updatePipelinePhaseAction.Modal.PrimaryButtonText,
                                                                     updatePipelinePhaseAction.Modal.CloseButtonText, updatePipelinePhaseAction.Modal.TitleCssClass,
                                                                     updatePipelinePhaseAction.Modal.PrimaryButtonCssClass, updatePipelinePhaseAction.Modal.CloseButtonCssClass);
            }

            if (firstWorkflow != null && firstWorkflow.Enabled)
            {
                container.InnerHtml += html.WorkflowModal(firstWorkflow.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default,
                                                          firstWorkflow.Modal.CssClass, firstWorkflow.Modal.Title, firstWorkflow.Confirmation,
                                                          firstWorkflow.Modal.DismissButtonSrText, firstWorkflow.Modal.PrimaryButtonText, firstWorkflow.Modal.CloseButtonText,
                                                          firstWorkflow.Modal.TitleCssClass, firstWorkflow.Modal.PrimaryButtonCssClass, firstWorkflow.Modal.CloseButtonCssClass);
            }

            if (disassociateAction != null && disassociateAction.Enabled)
            {
                container.InnerHtml +=
                    html.DissassociateModal(disassociateAction.Modal.Size ?? BootstrapExtensions.BootstrapModalSize.Default,
                                            disassociateAction.Modal.CssClass, disassociateAction.Modal.Title, disassociateAction.Confirmation,
                                            disassociateAction.Modal.DismissButtonSrText, disassociateAction.Modal.PrimaryButtonText,
                                            disassociateAction.Modal.CloseButtonText, disassociateAction.Modal.TitleCssClass,
                                            disassociateAction.Modal.PrimaryButtonCssClass, disassociateAction.Modal.CloseButtonCssClass);
            }
        }
Ejemplo n.º 2
0
        private void SetFormActions(IPortalContext portalContext, FormActionMetadata formActionMetadata, int languageCode, string portalName = null,
                                    bool addSubmitButton = false, bool addNextPrevious = false)
        {
            var actions = formActionMetadata.Actions.OrderBy(a => a.ActionIndex).ToList();

            if (addSubmitButton)
            {
                var submitActions = actions.Where(a => a is SubmitAction);

                if (!(submitActions.Any()))
                {
                    var newSubmitAction = new SubmitAction()
                    {
                        ActionButtonAlignment = JsonConfiguration.ActionButtonAlignment.Left,
                        ActionButtonPlacement = JsonConfiguration.ActionButtonPlacement.BelowForm,
                        ActionButtonStyle     = JsonConfiguration.ActionButtonStyle.ButtonGroup,
                        ActionIndex           = -1,
                        ButtonCssClass        = "btn-primary"
                    };

                    actions.Insert(0, newSubmitAction);
                }
            }

            if (addNextPrevious && AutoGenerateSteps)
            {
                var nextActions = actions.Where(a => a is NextAction);

                if (!(nextActions.Any()))
                {
                    var newNextAction = new NextAction()
                    {
                        ActionButtonAlignment = JsonConfiguration.ActionButtonAlignment.Left,
                        ActionButtonPlacement = JsonConfiguration.ActionButtonPlacement.BelowForm,
                        ActionButtonStyle     = JsonConfiguration.ActionButtonStyle.ButtonGroup,
                        ActionIndex           = -1,
                        ButtonCssClass        = "btn btn-primary navbar-btn button next next-btn"
                    };

                    actions.Insert(0, newNextAction);
                }

                var previousActions = actions.Where(a => a is PreviousAction);

                if (!(previousActions.Any()))
                {
                    var newPreviousAction = new PreviousAction()
                    {
                        ActionButtonAlignment = JsonConfiguration.ActionButtonAlignment.Left,
                        ActionButtonPlacement = JsonConfiguration.ActionButtonPlacement.BelowForm,
                        ActionButtonStyle     = JsonConfiguration.ActionButtonStyle.ButtonGroup,
                        ActionIndex           = -2,
                        ButtonCssClass        = "btn btn-default navbar-btn button previous previous-btn"
                    };

                    actions.Insert(0, newPreviousAction);
                }
            }

            var topItemActionLinks    = new List <ViewActionLink>();
            var bottomItemActionLinks = new List <ViewActionLink>();

            foreach (var action in actions)
            {
                if (action is WorkflowAction)
                {
                    var workflowAction = (WorkflowAction)action;

                    if (!workflowAction.IsConfigurationValid())
                    {
                        continue;
                    }

                    var workflowActionLink = new WorkflowActionLink(portalContext, new EntityReference("workflow", workflowAction.WorkflowId), formActionMetadata, languageCode, workflowAction, true, null, portalName);

                    AddActionLinkToSet(topItemActionLinks, bottomItemActionLinks, workflowActionLink);
                }

                if (action is DeleteAction)
                {
                    var deleteAction = (DeleteAction)action;

                    if (!deleteAction.IsConfigurationValid())
                    {
                        continue;
                    }

                    var deleteActionLink = new DeleteActionLink(portalContext, formActionMetadata, languageCode, deleteAction, true, null, portalName);

                    DeleteActionLink = deleteActionLink;

                    AddActionLinkToSet(topItemActionLinks, bottomItemActionLinks, deleteActionLink);
                }

                if (action is SubmitAction)
                {
                    var submitAction = (SubmitAction)action;

                    if (!submitAction.IsConfigurationValid())
                    {
                        continue;
                    }

                    var submitActionLink = new SubmitActionLink(portalContext, languageCode, submitAction, true, null, portalName);

                    SubmitActionLink = submitActionLink;

                    AddActionLinkToSet(topItemActionLinks, bottomItemActionLinks, submitActionLink);
                }

                if (action is PreviousAction)
                {
                    var previousAction = (PreviousAction)action;

                    if (!previousAction.IsConfigurationValid())
                    {
                        continue;
                    }

                    var previousActionLink = new PreviousActionLink(portalContext, languageCode, previousAction, true, null, portalName);

                    PreviousActionLink = previousActionLink;

                    AddActionLinkToSet(topItemActionLinks, bottomItemActionLinks, previousActionLink);
                }

                if (action is NextAction)
                {
                    var nextAction = (NextAction)action;

                    if (!nextAction.IsConfigurationValid())
                    {
                        continue;
                    }

                    var nextActionLink = new NextActionLink(portalContext, languageCode, nextAction, true, null, portalName);

                    NextActionLink = nextActionLink;

                    AddActionLinkToSet(topItemActionLinks, bottomItemActionLinks, nextActionLink);
                }

                if (action is CreateRelatedRecordAction)
                {
                    var createRelatedRecordAction = (CreateRelatedRecordAction)action;

                    if (!createRelatedRecordAction.IsConfigurationValid())
                    {
                        continue;
                    }

                    var createRelatedRecordActionLink = new CreateRelatedRecordActionLink(portalContext, formActionMetadata, languageCode, createRelatedRecordAction, true, portalName);

                    CreateRelatedRecordActionLink = createRelatedRecordActionLink;

                    AddActionLinkToSet(topItemActionLinks, bottomItemActionLinks, createRelatedRecordActionLink);
                }

                SetSpecialMessageActions(portalContext, formActionMetadata, languageCode, action, topItemActionLinks, bottomItemActionLinks, portalName);
            }

            TopFormActionLinks    = topItemActionLinks;
            BottomFormActionLinks = bottomItemActionLinks;
        }
Ejemplo n.º 3
0
        public static TagBuilder FormActions(this HtmlHelper html, FormConfiguration formConfiguration, TagBuilder container)
        {
            var deleteActionLink                       = formConfiguration.DeleteActionLink;
            var closeCaseActionLink                    = formConfiguration.CloseIncidentActionLink;
            var resolveCaseActionLink                  = formConfiguration.ResolveCaseActionLink;
            var reopenCaseActionLink                   = formConfiguration.ReopenCaseActionLink;
            var cancelCaseActionLink                   = formConfiguration.CancelCaseActionLink;
            var qualifyLeadActionLink                  = formConfiguration.QualifyLeadActionLink;
            var convertQuoteActionLink                 = formConfiguration.ConvertQuoteToOrderActionLink;
            var convertOrderActionLink                 = formConfiguration.ConvertOrderToInvoiceActionLink;
            var calculateOpportunityActionLink         = formConfiguration.CalculateOpportunityActionLink;
            var deactivateActionLink                   = formConfiguration.DeactivateActionLink;
            var activateActionLink                     = formConfiguration.ActivateActionLink;
            var activateQuoteActionLink                = formConfiguration.ActivateQuoteActionLink;
            var opportunityOnHoldActionLink            = formConfiguration.SetOpportunityOnHoldActionLink;
            var reopenOpportunityActionLink            = formConfiguration.ReopenOpportunityActionLink;
            var winOpportunityActionLink               = formConfiguration.WinOpportunityActionLink;
            var loseOpportunityActionLink              = formConfiguration.LoseOpportunityActionLink;
            var generateQuoteFromOpportunityActionLink = formConfiguration.GenerateQuoteFromOpportunityActionLink;
            var updatePipelinePhaseAction              = formConfiguration.UpdatePipelinePhaseActionLink;
            var createRelatedRecordAction              = formConfiguration.CreateRelatedRecordActionLink;

            DisassociateActionLink disassociateAction = null;
            WorkflowActionLink     firstWorkflow      = null;


            List <string> actionLinks = new List <string> {
            };

            foreach (var action in formConfiguration.TopFormActionLinks)
            {
                if (action is DeleteActionLink && deleteActionLink.Enabled)
                {
                    var deleteHtml = html.FormActionLinkListItem(deleteActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(deleteHtml.ToString());
                }

                if (action is CloseIncidentActionLink && closeCaseActionLink.Enabled)
                {
                    var closeCaseHtml = html.FormActionLinkListItem(closeCaseActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(closeCaseHtml.ToString());
                }

                if (action is ResolveCaseActionLink && resolveCaseActionLink.Enabled)
                {
                    var resolveCaseHtml = html.FormActionLinkListItem(resolveCaseActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(resolveCaseHtml.ToString());
                }

                if (action is ReopenCaseActionLink && reopenCaseActionLink.Enabled)
                {
                    var reopenCaseHtml = html.FormActionLinkListItem(reopenCaseActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(reopenCaseHtml.ToString());
                }

                if (action is CancelCaseActionLink && cancelCaseActionLink.Enabled)
                {
                    var cancelCaseHtml = html.FormActionLinkListItem(cancelCaseActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(cancelCaseHtml.ToString());
                }

                if (action is QualifyLeadActionLink && qualifyLeadActionLink.Enabled)
                {
                    var qualifyLeadHtml = html.FormActionLinkListItem(qualifyLeadActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(qualifyLeadHtml.ToString());
                }

                if (action is ConvertQuoteToOrderActionLink && convertQuoteActionLink.Enabled)
                {
                    var convertQuoteActionHtml = html.FormActionLinkListItem(convertQuoteActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(convertQuoteActionHtml.ToString());
                }

                if (action is ConvertOrderToInvoiceActionLink && convertOrderActionLink.Enabled)
                {
                    var convertOrderHtml = html.FormActionLinkListItem(convertOrderActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(convertOrderHtml.ToString());
                }

                if (action is CalculateOpportunityActionLink && calculateOpportunityActionLink.Enabled)
                {
                    var calculateOpportunityHtml = html.FormActionLinkListItem(calculateOpportunityActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(calculateOpportunityHtml.ToString());
                }

                if (action is DeactivateActionLink && deactivateActionLink.Enabled)
                {
                    var deactivateHtml = html.FormActionLinkListItem(deactivateActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(deactivateHtml.ToString());
                }

                if (action is ActivateActionLink && activateActionLink.Enabled)
                {
                    var activateHtml = html.FormActionLinkListItem(activateActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(activateHtml.ToString());
                }

                if (action is ActivateQuoteActionLink && activateQuoteActionLink.Enabled)
                {
                    var activateQuoteHtml = html.FormActionLinkListItem(activateQuoteActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(activateQuoteHtml.ToString());
                }

                if (action is SetOpportunityOnHoldActionLink && opportunityOnHoldActionLink.Enabled)
                {
                    var setOpportunityOnHoldHtml = html.FormActionLinkListItem(opportunityOnHoldActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(setOpportunityOnHoldHtml.ToString());
                }

                if (action is ReopenOpportunityActionLink && reopenOpportunityActionLink.Enabled)
                {
                    var reopenOpportunityHtml = html.FormActionLinkListItem(reopenOpportunityActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(reopenOpportunityHtml.ToString());
                }

                if (action is WinOpportunityActionLink && winOpportunityActionLink.Enabled)
                {
                    var winOpportunityHtml = html.FormActionLinkListItem(winOpportunityActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(winOpportunityHtml.ToString());
                }

                if (action is LoseOpportunityActionLink && loseOpportunityActionLink.Enabled)
                {
                    var resolveCaseHtml = html.FormActionLinkListItem(loseOpportunityActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(resolveCaseHtml.ToString());
                }

                if (action is GenerateQuoteFromOpportunityActionLink && generateQuoteFromOpportunityActionLink.Enabled)
                {
                    var generateQuoteFromOpportunityHtml = html.FormActionLinkListItem(generateQuoteFromOpportunityActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(generateQuoteFromOpportunityHtml.ToString());
                }

                if (action is UpdatePipelinePhaseActionLink && updatePipelinePhaseAction.Enabled)
                {
                    var updatePipelinePhaseHtml = html.FormActionLinkListItem(updatePipelinePhaseAction, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(updatePipelinePhaseHtml.ToString());
                }

                if (action is WorkflowActionLink && action.Enabled)
                {
                    var workflowHtml = html.FormActionLinkListItem(action as WorkflowActionLink, formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(workflowHtml.ToString());

                    firstWorkflow = action as WorkflowActionLink;
                }

                if (action is DisassociateActionLink && action.Enabled)
                {
                    disassociateAction = action as DisassociateActionLink;
                    var disassociateHtml = html.FormActionLinkListItem(disassociateAction,
                                                                       formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(disassociateHtml.ToString());
                }

                if (action is CreateRelatedRecordActionLink && action.Enabled)
                {
                    var createRelatedRecordHtml = html.FormActionLinkListItem(createRelatedRecordAction,
                                                                              formConfiguration.ActionButtonStyle ?? ActionButtonStyle.DropDown);
                    actionLinks.Add(createRelatedRecordHtml.ToString());
                }
            }

            if (formConfiguration.ActionButtonStyle == ActionButtonStyle.ButtonGroup)
            {
                foreach (var link in actionLinks)
                {
                    container.InnerHtml += link;
                }
            }
            else             //if (formConfiguration.ActionButtonStyle == ActionButtonStyle.DropDown)
            {
                //Create the links  as a dropdownmenu
                var dropDownMenu = html.FormActionDropDownMenu();

                foreach (var link in actionLinks)
                {
                    dropDownMenu.InnerHtml += link;
                }

                //the meat of the dropdown
                var dropDown = html.FormActionDropDown(formConfiguration);

                //add the items to the dropdown
                dropDown.InnerHtml += dropDownMenu.ToString();

                //add the dropdown to the container
                container.InnerHtml += dropDown;
            }

            html.ActionModalWindows(container, deleteActionLink, qualifyLeadActionLink, closeCaseActionLink, resolveCaseActionLink, reopenCaseActionLink,
                                    cancelCaseActionLink, convertQuoteActionLink, convertOrderActionLink, calculateOpportunityActionLink, deactivateActionLink,
                                    activateActionLink, activateQuoteActionLink, opportunityOnHoldActionLink, reopenOpportunityActionLink, winOpportunityActionLink,
                                    loseOpportunityActionLink, generateQuoteFromOpportunityActionLink, updatePipelinePhaseAction, firstWorkflow, disassociateAction, createRelatedRecordAction);

            return(container);
        }