HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/TDijk1/erp-apps.eu/wwwroot/CMSModules/Automation/Controls/Process/Edit.ascx.cs
using System;
using System.Data;
using System.Web.UI.WebControls;
using System.Collections.Generic;

using CMS.Automation;
using CMS.Helpers;
using CMS.Base;
using CMS.SiteProvider;
using CMS.Membership;
using CMS.UIControls;
using CMS.WorkflowEngine;
using CMS.FormControls;
using CMS.ExtendedControls;
using CMS.Globalization;
using CMS.DataEngine;

public partial class CMSModules_Automation_Controls_Process_Edit : CMSUserControl
{
    #region "Private variables"

    private CMSAutomationManager mAutomationManager = null;

    #endregion


    #region "Properties"

    /// <summary>
    /// Object instance
    /// </summary>
    public BaseInfo InfoObject
    {
        get
        {
            return AutomationManager.InfoObject;
        }
    }


    /// <summary>
    /// State object
    /// </summary>
    public AutomationStateInfo StateObject
    {
        get
        {
            return AutomationManager.StateObject;
        }
    }


    /// <summary>
    /// Automation manager
    /// </summary>
    public AutomationManager Manager
    {
        get
        {
            return AutomationManager.Manager;
        }
    }


    /// <summary>
    /// Automation manager control
    /// </summary>
    public CMSAutomationManager AutomationManager
    {
        get
        {
            if (mAutomationManager == null)
            {
                mAutomationManager = ControlsHelper.GetChildControl(Page, typeof(CMSAutomationManager)) as CMSAutomationManager;
                if (mAutomationManager == null)
                {
                    throw new Exception("[AutomationMenu.AutomationManager]: Missing automation manager.");
                }
            }

            return mAutomationManager;
        }
    }

    #endregion


    #region "Page events"

    protected void Page_Load(object sender, EventArgs e)
    {
        ReloadData();
    }


    protected override void OnPreRender(EventArgs e)
    {
        base.OnPreRender(e);

        if (RequestHelper.IsPostBack())
        {
            ReloadData();
        }
    }

    #endregion


    #region "Grid events"

    /// <summary>
    /// External history binding.
    /// </summary>
    protected object gridHistory_OnExternalDataBound(object sender, string sourceName, object parameter)
    {
        DataRowView drv = null;
        switch (sourceName.ToLowerCSafe())
        {
            case "action":
                drv = (DataRowView)parameter;
                bool wasrejected = ValidationHelper.GetBoolean(drv["HistoryWasRejected"], false);

                // Get type of the steps
                WorkflowStepTypeEnum stepType = (WorkflowStepTypeEnum)ValidationHelper.GetInteger(DataHelper.GetDataRowViewValue(drv, "HistoryStepType"), 0);
                WorkflowStepTypeEnum targetStepType = (WorkflowStepTypeEnum)ValidationHelper.GetInteger(DataHelper.GetDataRowViewValue(drv, "HistoryTargetStepType"), 0);
                WorkflowTransitionTypeEnum transitionType = (WorkflowTransitionTypeEnum)ValidationHelper.GetInteger(DataHelper.GetDataRowViewValue(drv, "HistoryTransitionType"), 0);

                if (!wasrejected)
                {
                    bool isAutomatic = (transitionType == WorkflowTransitionTypeEnum.Automatic);
                    string actionString = isAutomatic ? GetString("WorfklowProperties.Automatic") + " ({0})" : "{0}";
                    // Return correct step title
                    switch (targetStepType)
                    {
                        case WorkflowStepTypeEnum.Finished:
                            actionString = string.Format(actionString, GetString("ma.finished"));
                            break;

                        default:
                            if (stepType == WorkflowStepTypeEnum.Start)
                            {
                                actionString = string.Format(actionString, GetString("ma.started"));
                            }
                            else
                            {
                                actionString = isAutomatic ? GetString("WorfklowProperties.Automatic") : GetString("ma.movedtonextstep");
                            }
                            break;
                    }

                    return actionString;
                }
                else
                {
                    return GetString("ma.movedtopreviousstep");
                }

            case "stepname":
                drv = (DataRowView)parameter;
                string step = ValidationHelper.GetString(DataHelper.GetDataRowViewValue(drv, "HistoryStepDisplayName"), String.Empty);
                string targetStep = ValidationHelper.GetString(DataHelper.GetDataRowViewValue(drv, "HistoryTargetStepDisplayName"), String.Empty);
                if (!string.IsNullOrEmpty(targetStep))
                {
                    step += " -> " + targetStep;
                }
                return HTMLHelper.HTMLEncode(ResHelper.LocalizeString(step));
        }
        return parameter;
    }

    #endregion


    #region "Protected methods"

    /// <summary>
    /// Reloads the page data.
    /// </summary>
    protected void ReloadData()
    {
        if (InfoObject != null)
        {
            var workflow = AutomationManager.Process;
            if (workflow != null)
            {
                ucDesigner.WorkflowID = workflow.WorkflowID;
                ucDesigner.SelectedStepID = StateObject.StateStepID;
                ucDesigner.WorkflowType = WorkflowTypeEnum.Automation;

                // Initialize grids
                gridHistory.OnExternalDataBound += gridHistory_OnExternalDataBound;
                gridHistory.ZeroRowsText = string.Format(GetString("ma.nohistoryyet"), TypeHelper.GetNiceObjectTypeName(InfoObject.TypeInfo.ObjectType).ToLowerCSafe());
            }
        }
        else
        {
            pnlWorkflow.Visible = false;
        }

        gridHistory.WhereCondition = "HistoryStateID=" + AutomationManager.StateObjectID;
        gridHistory.ReloadData();
    }

    #endregion
}