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/RMourik/bassol.nl/CMS/App_Code/CMSModules/ProjectManagement/ProjectFormExtender.cs
using System;

using CMS;
using CMS.ExtendedControls;
using CMS.FormControls;
using CMS.ProjectManagement;


[assembly: RegisterCustomClass("ProjectFormExtender", typeof(ProjectFormExtender))]

/// <summary>
/// Extends form for creating/editing Project.
/// </summary>
public class ProjectFormExtender : ControlExtender<UIForm>
{

    #region "Properties"

    /// <summary>
    /// Gets the project.
    /// </summary>
    private ProjectInfo Project
    {
        get
        {
            return Control.EditedObject as ProjectInfo;
        }
    }

    #endregion


    #region "Public methods"

    public override void OnInit()
    {
        Control.OnAfterDataLoad += Control_OnAfterDataLoad;
        Control.OnUploadFile += (s, e) => { TouchProjectInfo(); };
        Control.OnDeleteFile += (s, e) => { TouchProjectInfo(); };
    }

    #endregion


    #region "Private methods"

    void Control_OnAfterDataLoad(object sender, EventArgs e)
    {
        if (Project == null)
        {
            return;
        }

        if (Project.ProjectID != 0)
        {
            // Load progress
            int progress = ProjectInfoProvider.GetProjectProgress(Project.ProjectID);
            Control.FieldControls["ProjectProgress"].Text = ProjectTaskInfoProvider.GenerateProgressHtml(progress, true);
            
        }
        else
        {
            Control.FieldsToHide.Add("ProjectProgress");
            Control.FieldsToHide.Add("ProjectAttachments");
        }
    }


    /// <summary>
    /// Updates curent Project info after uploader events (upload and delete).
    /// </summary>
    private void TouchProjectInfo()
    {
        ProjectInfoProvider.SetProjectInfo(Project);
    }

    #endregion

}