Exemplo n.º 1
0
    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);

        if (StopProcessing)
        {
            uniSelector.StopProcessing = true;
        }
        else
        {
            if (!RequestHelper.IsPostBack())
            {
                drpClassType.Items.Clear();
                drpClassType.Items.Add(new ListItem(ResHelper.GetString("general.documenttype"), DOCUMENT_TYPE));

                if (ShowCustomTableClasses && CustomTableHelper.GetCustomTableClasses(SiteContext.CurrentSiteID).HasResults())
                {
                    drpClassType.Items.Add(new ListItem(ResHelper.GetString("queryselection.classtype.customtables"), CUSTOM_TABLE));
                }

                Initialize();
            }

            SetupSelector();

            WhereCondition = GenerateWhereCondition();
        }
    }
Exemplo n.º 2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (StopProcessing)
        {
            uniSelector.StopProcessing = true;
        }
        else
        {
            if (!RequestHelper.IsPostBack())
            {
                drpClassType.Items.Clear();
                drpClassType.Items.Add(new ListItem(ResHelper.GetString("general.documenttype"), "doctype"));

                if (ShowCustomTableClasses && CustomTableHelper.GetCustomTableClasses(SiteContext.CurrentSiteID).HasResults())
                {
                    drpClassType.Items.Add(new ListItem(ResHelper.GetString("queryselection.classtype.customtables"), "customtables"));
                }

                lblDocType.ResourceString = "queryselection.lbldoctypes";

                Initialize();
            }

            ReloadData();

            WhereCondition = GenerateWhereCondition();
        }
    }
Exemplo n.º 3
0
    private string GetAllTasksWhere(out bool classesFound)
    {
        string where = BASE_TASK_WHERE;
        string classWhere = string.Empty;

        classesFound = false;

        // Ensure only data task selection
        if (string.IsNullOrEmpty(objectType))
        {
            DataSet dsTables = CustomTableHelper.GetCustomTableClasses(CurrentSiteID).Column("ClassName");
            if (!DataHelper.DataSourceIsEmpty(dsTables))
            {
                foreach (DataRow dr in dsTables.Tables[0].Rows)
                {
                    classWhere += "N'" + SqlHelper.EscapeQuotes(CustomTableItemProvider.GetObjectType(dr["ClassName"].ToString())) + "',";
                }

                classWhere   = classWhere.TrimEnd(',');
                classesFound = true;
            }

            where = SqlHelper.AddWhereCondition(where, "TaskObjectType IN (" + classWhere + ")");
        }

        return(where);
    }
Exemplo n.º 4
0
    /// <summary>
    /// Resolves backward compatibility issue.
    /// </summary>
    private void GetOlderValues()
    {
        DataSet data;

        switch (ClassType)
        {
        // Custom tables
        case 0:
        {
            data = CustomTableHelper.GetCustomTableClasses(SiteContext.CurrentSiteID)
                   .Column("ClassName");
        }
        break;

        // System tables
        case 2:
        {
            data = DataClassInfoProvider.GetClasses()
                   .WhereTrue("ClassShowAsSystemTable")
                   .Column("ClassName");
            break;
        }

        // Document types
        default:
        {
            data = DataClassInfoProvider.GetClasses()
                   .OnSite(SiteContext.CurrentSiteID)
                   .WhereTrue("ClassIsDocumentType")
                   .WhereTrue("ClassIsCoupledClass")
                   .Column("ClassName");
            break;
        }
        }

        // Get GUID
        string[] values = mValue.Split('|');
        Guid     guid   = new Guid(values[0]);

        // Go thru selected classes and try find right field
        foreach (DataRow row in data.Tables[0].Rows)
        {
            string className = row["ClassName"].ToString();
            var    fi        = FormHelper.GetFormInfo(className, false);

            if (fi != null)
            {
                // Find field with given GUID
                var ffi = fi.GetFields(true, true).FirstOrDefault(f => f.Guid == guid);
                if (ffi != null)
                {
                    // Column found, preselect class name and column in drop down lists
                    selectionElem.DropDownSingleSelect.SelectedValue = className;
                    LoadFields(false);
                    drpFields.SelectedValue = guid.ToString();
                    return;
                }
            }
        }
    }
    /// <summary>
    /// Creates tree view.
    /// </summary>
    private void CreateTreeView()
    {
        objectTree.Nodes.Clear();

        // Fill in the custom tables
        TreeNode rootNode = new TreeNode();

        rootNode.Text        = "<span class=\"ContentTreeSelectedItem\" id=\"treeSelectedNode\" onclick=\"SelectNode('##ALL##', this); \"><span class=\"Name\">" + GetString("DataStaging.RootNodeText") + "</span></span>";
        rootNode.Expanded    = true;
        rootNode.NavigateUrl = "#";
        objectTree.Nodes.Add(rootNode);

        string objectType = null;

        if (Request.Params["objectType"] != null)
        {
            objectType = ValidationHelper.GetString(Request.Params["objectType"], null);
        }
        // Initialize tree view with custom tables
        bool tableSelected = false;

        DataSet dsTables = CustomTableHelper.GetCustomTableClasses(SiteContext.CurrentSiteID).Columns("ClassID", "ClassDisplayName", "ClassName");

        if (!DataHelper.DataSourceIsEmpty(dsTables))
        {
            DataTable table = dsTables.Tables[0];

            foreach (DataRow dr in table.Rows)
            {
                string tableDisplayName = ResHelper.LocalizeString(dr["ClassDisplayName"].ToString());

                TreeNode tableNode = new TreeNode();

                string currentObjectType = CustomTableItemProvider.GetObjectType(dr["ClassName"].ToString());
                if (currentObjectType == objectType)
                {
                    tableNode.Text = "<span class=\"ContentTreeSelectedItem\" id=\"treeSelectedNode\" onclick=\"SelectNode('" + currentObjectType + "', this); \"><span class=\"Name\">" + HTMLHelper.HTMLEncode(tableDisplayName) + "</span></span>";
                    tableSelected  = true;
                }
                else
                {
                    tableNode.Text = "<span class=\"ContentTreeItem\" onclick=\"SelectNode('" + currentObjectType + "', this); \"><span class=\"Name\">" + HTMLHelper.HTMLEncode(tableDisplayName) + "</span></span>";
                }
                tableNode.Value       = currentObjectType;
                tableNode.NavigateUrl = "#";

                objectTree.Nodes[0].ChildNodes.Add(tableNode);
            }
        }

        string script = "var currentNode = document.getElementById('treeSelectedNode');\n";

        if ((objectType != null) && tableSelected)
        {
            script += " \t SelectNode('" + objectType + "');\n";
        }

        ScriptHelper.RegisterStartupScript(Page, typeof(string), "RefreshScript", ScriptHelper.GetScript(script));
    }
Exemplo n.º 6
0
    /// <summary>
    /// Resolves backward compatibility issue.
    /// </summary>
    private string GetObsoleteSelectedClassName(Guid guid)
    {
        DataSet data;

        switch (ClassType)
        {
        // Custom tables
        case 0:
        {
            data = CustomTableHelper.GetCustomTableClasses(SiteContext.CurrentSiteID)
                   .Column("ClassName");
        }
        break;

        // System tables
        case 2:
        {
            data = DataClassInfoProvider.GetClasses()
                   .WhereTrue("ClassShowAsSystemTable")
                   .Column("ClassName");
            break;
        }

        // Document types
        default:
        {
            data = DataClassInfoProvider.GetClasses()
                   .OnSite(SiteContext.CurrentSiteID)
                   .WhereTrue("ClassIsDocumentType")
                   .WhereTrue("ClassIsCoupledClass")
                   .Column("ClassName");
            break;
        }
        }

        // Go through selected classes and try find right field
        foreach (DataRow row in data.Tables[0].Rows)
        {
            string className = row["ClassName"].ToString();
            var    fi        = FormHelper.GetFormInfo(className, false);

            if (fi != null)
            {
                // Find field with given GUID
                var ffi = fi.GetFields(true, true).FirstOrDefault(f => f.Guid == guid);
                if (ffi != null)
                {
                    return(className);
                }
            }
        }

        return(null);
    }
Exemplo n.º 7
0
    /// <summary>
    /// Initialize permission type drop down list.
    /// </summary>
    private void InitializeDropDownListPermissionType()
    {
        // Initialize drop down list with types
        drpPermissionType.Items.Clear();
        drpPermissionType.Items.Add(new ListItem(GetString("objecttype.cms_resource"), PermissionTypes.Module.ToString()));
        drpPermissionType.Items.Add(new ListItem(GetString("general.documenttype"), PermissionTypes.DocumentType.ToString()));

        // Check if any custom table available under site
        if (CustomTableHelper.GetCustomTableClasses(SiteID).HasResults() ||
            (ValidationHelper.GetString(siteSelector.Value, String.Empty) == siteSelector.GlobalRecordValue) ||
            (globalRecord && MembershipContext.AuthenticatedUser.CheckPrivilegeLevel(UserPrivilegeLevelEnum.GlobalAdmin)))
        {
            drpPermissionType.Items.Add(new ListItem(GetString("general.customtable"), PermissionTypes.CustomTable.ToString()));
        }
    }
Exemplo n.º 8
0
    private List <string> GetObjectTypes()
    {
        // Get custom tables object types
        var objectTypes = new List <string>();

        DataSet dsTables = CustomTableHelper.GetCustomTableClasses(CurrentSiteID).Column("ClassName");

        if (!DataHelper.DataSourceIsEmpty(dsTables))
        {
            DataTable table = dsTables.Tables[0];
            foreach (DataRow dr in table.Rows)
            {
                objectTypes.Add(CustomTableItemProvider.GetObjectType(dr["ClassName"].ToString()));
            }
        }

        return(objectTypes);
    }
Exemplo n.º 9
0
    protected DataSet gridTasks_OnDataReload(string completeWhere, string currentOrder, int currentTopN, string columns, int currentOffset, int currentPageSize, ref int totalRecords)
    {
        // Get the tasks
        string where = "TaskSiteID IS NULL";
        string classWhere = string.Empty;

        // Ensure only data task selection
        if (string.IsNullOrEmpty(objectType))
        {
            DataSet dsTables = CustomTableHelper.GetCustomTableClasses(currentSiteId).Column("ClassName");
            if (!DataHelper.DataSourceIsEmpty(dsTables))
            {
                foreach (DataRow dr in dsTables.Tables[0].Rows)
                {
                    classWhere += "N'" + SqlHelper.EscapeQuotes(CustomTableItemProvider.GetObjectType(dr["ClassName"].ToString())) + "',";
                }
                classWhere = classWhere.TrimEnd(new [] { ',' });
            }
            where = SqlHelper.AddWhereCondition(where, "TaskObjectType IN (" + classWhere + ")");
        }

        DataSet ds = null;

        // There are some custom tables assigned to the site, get the data
        if (!string.IsNullOrEmpty(classWhere) || !string.IsNullOrEmpty(objectType))
        {
            ds = StagingTaskInfoProvider.SelectObjectTaskList(currentSiteId, serverId, objectType, where, currentOrder, 0, columns, currentOffset, currentPageSize, ref totalRecords);
        }
        else
        {
            totalRecords = -1;
        }

        pnlFooter.Visible = (totalRecords > 0);
        return(ds);
    }
Exemplo n.º 10
0
    /// <summary>
    /// Deletes all tasks.
    /// </summary>
    protected void DeleteAll(object parameter)
    {
        eventCode      = "DELETEALLDATA";
        CanceledString = GetString("Tasks.DeletionCanceled");
        try
        {
            AddLog(GetString("Synchronization.DeletingTasks"));

            string where = "TaskSiteID IS NULL";
            string classWhere = string.Empty;

            // Ensure only data task selection
            if (string.IsNullOrEmpty(objectType))
            {
                DataSet dsTables = CustomTableHelper.GetCustomTableClasses(currentSiteId).Column("ClassName");
                if (!DataHelper.DataSourceIsEmpty(dsTables))
                {
                    foreach (DataRow dr in dsTables.Tables[0].Rows)
                    {
                        classWhere += "N'" + SqlHelper.EscapeQuotes(CustomTableItemProvider.GetObjectType(dr["ClassName"].ToString())) + "',";
                    }
                    classWhere = classWhere.TrimEnd(new char[] { ',' });
                }
                where = SqlHelper.AddWhereCondition(where, "TaskObjectType IN (" + classWhere + ")");
            }

            // Get the tasks
            DataSet ds = StagingTaskInfoProvider.SelectObjectTaskList(currentSiteId, serverId, objectType, where, "TaskID", 0, "TaskID, TaskTitle");
            if (!DataHelper.DataSourceIsEmpty(ds))
            {
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    int taskId = ValidationHelper.GetInteger(row["TaskID"], 0);
                    if (taskId > 0)
                    {
                        string taskTitle = ValidationHelper.GetString(row["TaskTitle"], null);
                        AddLog(string.Format(ResHelper.GetAPIString("deletion.running", "Deleting '{0}' task"), HTMLHelper.HTMLEncode(taskTitle)));
                        // Delete synchronization
                        SynchronizationInfoProvider.DeleteSynchronizationInfo(taskId, serverId, currentSiteId);
                    }
                }
            }

            CurrentInfo = GetString("Tasks.DeleteOK");
            AddLog(CurrentInfo);
        }
        catch (ThreadAbortException ex)
        {
            string state = ValidationHelper.GetString(ex.ExceptionState, string.Empty);
            if (state == CMSThread.ABORT_REASON_STOP)
            {
                // Canceled by user
                CurrentInfo = CanceledString;
                AddLog(CurrentInfo);
            }
            else
            {
                CurrentError = GetString("Tasks.DeletionFailed");
                AddErrorLog(CurrentError);
            }
        }
        catch (Exception ex)
        {
            CurrentError = GetString("Tasks.DeletionFailed") + ": " + ex.Message;
            AddErrorLog(CurrentError);
        }
        finally
        {
            // Finalize log context
            FinalizeContext();
        }
    }
Exemplo n.º 11
0
    /// <summary>
    /// All items synchronization.
    /// </summary>
    protected void SynchronizeAll(object parameter)
    {
        string result = string.Empty;

        eventCode      = "SYNCALLDATA";
        CanceledString = GetString("Tasks.SynchronizationCanceled");
        try
        {
            string where = "TaskSiteID IS NULL";
            string classWhere = string.Empty;

            AddLog(GetString("Synchronization.RunningTasks"));

            // Ensure only data task selection
            if (string.IsNullOrEmpty(objectType))
            {
                DataSet dsTables = CustomTableHelper.GetCustomTableClasses(currentSiteId).Column("ClassName");
                if (!DataHelper.DataSourceIsEmpty(dsTables))
                {
                    foreach (DataRow dr in dsTables.Tables[0].Rows)
                    {
                        classWhere += "N'" + SqlHelper.EscapeQuotes(CustomTableItemProvider.GetObjectType(dr["ClassName"].ToString())) + "',";
                    }
                    classWhere = classWhere.TrimEnd(new [] { ',' });
                }
                where = SqlHelper.AddWhereCondition(where, "TaskObjectType IN (" + classWhere + ")");
            }

            // Get the tasks
            DataSet ds = StagingTaskInfoProvider.SelectObjectTaskList(currentSiteId, serverId, objectType, where, "TaskID", -1, "TaskID,TaskTitle");

            // Run the synchronization
            result = StagingHelper.RunSynchronization(ds, serverId, true, currentSiteId, AddLog);

            // Log possible error
            if (result != string.Empty)
            {
                CurrentError = GetString("Tasks.SynchronizationFailed");
                AddErrorLog(CurrentError, null);
            }
            else
            {
                CurrentInfo = GetString("Tasks.SynchronizationOK");
                AddLog(CurrentInfo);
            }
        }
        catch (ThreadAbortException ex)
        {
            string state = ValidationHelper.GetString(ex.ExceptionState, string.Empty);
            if (state == CMSThread.ABORT_REASON_STOP)
            {
                // Canceled by user
                CurrentInfo = CanceledString;
                AddLog(CurrentInfo);
            }
            else
            {
                CurrentError = GetString("Tasks.SynchronizationFailed");
                AddErrorLog(CurrentError, result);
            }
        }
        catch (Exception ex)
        {
            CurrentError = GetString("Tasks.SynchronizationFailed") + ": " + ex.Message;
            AddErrorLog(CurrentError);
        }
        finally
        {
            // Finalize log context
            FinalizeContext();
        }
    }
Exemplo n.º 12
0
    /// <summary>
    /// Complete synchronization.
    /// </summary>
    public void SynchronizeComplete(object parameter)
    {
        string result = null;

        eventCode      = "SYNCCOMPLETEDATA";
        CanceledString = GetString("Tasks.SynchronizationCanceled");
        try
        {
            int sid = serverId;
            if (sid <= 0)
            {
                sid = SynchronizationInfoProvider.ENABLED_SERVERS;
            }

            AddLog(GetString("Synchronization.LoggingTasks"));

            // Get custom tables object types
            string  objectTypes = string.Empty;
            DataSet dsTables    = CustomTableHelper.GetCustomTableClasses(currentSiteId).Column("ClassName");
            if (!DataHelper.DataSourceIsEmpty(dsTables))
            {
                DataTable table = dsTables.Tables[0];
                foreach (DataRow dr in table.Rows)
                {
                    objectTypes += CustomTableItemProvider.GetObjectType(dr["ClassName"].ToString()) + ";";
                }
            }

            // Get the tasks
            List <ISynchronizationTask> tasks = SynchronizationHelper.LogObjectChange(objectTypes.Trim(';'), 0, DateTimeHelper.ZERO_TIME, TaskTypeEnum.UpdateObject, true, false, false, false, false, currentSiteId, sid);

            AddLog(GetString("Synchronization.RunningTasks"));

            // Run the synchronization
            result = StagingHelper.RunSynchronization(tasks, serverId, true, currentSiteId, AddLog);

            // Log possible errors
            if (!string.IsNullOrEmpty(result))
            {
                CurrentError = GetString("Tasks.SynchronizationFailed");
                AddErrorLog(CurrentError, null);
            }
            else
            {
                CurrentInfo = GetString("Tasks.SynchronizationOK");
                AddLog(CurrentInfo);
            }
        }
        catch (ThreadAbortException ex)
        {
            string state = ValidationHelper.GetString(ex.ExceptionState, string.Empty);
            if (state == CMSThread.ABORT_REASON_STOP)
            {
                // Canceled by user
                CurrentInfo = CanceledString;
                AddLog(CurrentInfo);
            }
            else
            {
                CurrentError = GetString("Tasks.SynchronizationFailed");
                AddErrorLog(CurrentError, result);
            }
        }
        catch (Exception ex)
        {
            CurrentError = GetString("Tasks.SynchronizationFailed") + ": " + ex.Message;
            AddErrorLog(CurrentError);
        }
        finally
        {
            // Finalize log context
            FinalizeContext();
        }
    }