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/Messaging/Controls/ViewMessage.ascx.cs
using System;
using System.Web.UI;

using CMS.Helpers;
using CMS.Messaging;
using CMS.Base;
using CMS.SiteProvider;
using CMS.Membership;
using CMS.UIControls;
using CMS.ExtendedControls;

using TimeZoneInfo = CMS.Globalization.TimeZoneInfo;
using CMS.Globalization;
using CMS.DataEngine;

public partial class CMSModules_Messaging_Controls_ViewMessage : CMSUserControl
{
    #region "Variables"

    private MessageModeEnum mMessageMode = MessageModeEnum.Inbox;
    protected MessageInfo mMessage = null;
    protected UserInfo currentUserInfo = null;
    protected UserInfo messageUserInfo = null;
    private CMSModules_Messaging_Controls_MessageUserButtons mMessageUserButtonsControl;
    private CMSAdminControls_UI_UserPicture mUserPictureControl;

    #endregion


    #region "Private properties"

    /// <summary>
    /// Gets Message user buttons control
    /// </summary>
    private CMSModules_Messaging_Controls_MessageUserButtons MessageUserButtonsControl
    {
        get
        {
            if (mMessageUserButtonsControl == null)
            {
                mMessageUserButtonsControl = (CMSModules_Messaging_Controls_MessageUserButtons)LoadControl("~/CMSModules/Messaging/Controls/MessageUserButtons.ascx");
            }
            return mMessageUserButtonsControl;
        }
    }


    /// <summary>
    /// Gets User picture control
    /// </summary>
    private CMSAdminControls_UI_UserPicture UserPictureControl
    {
        get
        {
            if (mUserPictureControl == null)
            {
                mUserPictureControl = (CMSAdminControls_UI_UserPicture)LoadControl("~/CMSAdminControls/UI/UserPicture.ascx");
                mUserPictureControl.Height = 60;
                mUserPictureControl.Width = 60;
                mUserPictureControl.KeepAspectRatio = true;
                mUserPictureControl.UseDefaultAvatar = true;
            }
            return mUserPictureControl;
        }
    }

    #endregion


    #region "Public properties"

    /// <summary>
    /// Messages placeholder
    /// </summary>
    public override MessagesPlaceHolder MessagesPlaceHolder
    {
        get
        {
            return plcMess;
        }
    }


    /// <summary>
    /// Indicates if control is used on live site.
    /// </summary>
    public override bool IsLiveSite
    {
        get
        {
            return base.IsLiveSite;
        }
        set
        {
            plcMess.IsLiveSite = value;
            base.IsLiveSite = value;
        }
    }


    /// <summary>
    /// Message ID.
    /// </summary>
    public int MessageId
    {
        get
        {
            return ValidationHelper.GetInteger(ViewState["MessageId"], 0);
        }
        set
        {
            ViewState["MessageId"] = value;
            if (value <= 0)
            {
                mMessage = null;
            }
        }
    }


    /// <summary>
    /// Message.
    /// </summary>
    public MessageInfo Message
    {
        get
        {
            if ((mMessage == null) && (MessageId > 0))
            {
                mMessage = MessageInfoProvider.GetMessageInfo(MessageId);
            }
            return mMessage;
        }
        set
        {
            mMessage = value;
            if (mMessage != null)
            {
                ViewState["MessageId"] = mMessage.MessageID;
            }
        }
    }


    /// <summary>
    /// Message mode.
    /// </summary>
    public MessageModeEnum MessageMode
    {
        get
        {
            return mMessageMode;
        }
        set
        {
            mMessageMode = value;
        }
    }


    /// <summary>
    /// Information text.
    /// </summary>
    public string InformationText
    {
        get
        {
            return MessageUserButtonsControl.InformationText;
        }
    }


    /// <summary>
    /// Error text.
    /// </summary>
    public string ErrorText
    {
        get
        {
            return MessageUserButtonsControl.ErrorText;
        }
    }

    #endregion


    #region "Page events"

    /// <summary>
    /// Page init.
    /// </summary>
    protected void Page_Init(object sender, EventArgs e)
    {
        plcUserPicture.Controls.Add(UserPictureControl);
        plcMessageUserButtons.Controls.Add(MessageUserButtonsControl);
    }


    /// <summary>
    /// Page load.
    /// </summary>
    protected void Page_Load(object sender, EventArgs e)
    {
        // Message id is set, display message details
        if (Message != null)
        {
            // Find postback invoker
            string invokerName = Page.Request.Params.Get(Page.postEventSourceID);
            // If postback was caused by user buttons
            if (invokerName.Contains(MessageUserButtonsControl.UniqueID))
            {
                StopProcessing = false;
            }
            ReloadData();
        }
    }

    #endregion


    #region "Other methods"

    public void ReloadData()
    {
        if (StopProcessing)
        {
            // Do nothing
            MessageUserButtonsControl.StopProcessing = true;
            UserPictureControl.StopProcessing = true;
        }
        else
        {
            MessageUserButtonsControl.StopProcessing = false;
            UserPictureControl.StopProcessing = false;

            if (Message != null)
            {
                // Get current user info
                currentUserInfo = MembershipContext.AuthenticatedUser;
                // Get message user info
                if (MessageMode == MessageModeEnum.Inbox)
                {
                    messageUserInfo = UserInfoProvider.GetUserInfo(Message.MessageSenderUserID);
                }
                else
                {
                    messageUserInfo = UserInfoProvider.GetUserInfo(Message.MessageRecipientUserID);
                }

                // Display only to authorized user
                if ((currentUserInfo.UserID == Message.MessageRecipientUserID) || (currentUserInfo.UserID == Message.MessageSenderUserID) || currentUserInfo.IsGlobalAdministrator)
                {
                    pnlViewMessage.Visible = true;
                    lblDateCaption.Text = GetString("Messaging.Date");
                    lblSubjectCaption.Text = GetString("general.subject");
                    lblFromCaption.Text = (MessageMode == MessageModeEnum.Inbox) ? GetString("Messaging.From") : GetString("Messaging.To");

                    // Sender exists
                    if (messageUserInfo != null)
                    {
                        UserPictureControl.Visible = true;
                        UserPictureControl.UserID = messageUserInfo.UserID;

                        // Gravatar support
                        string avType = SettingsKeyInfoProvider.GetValue(SiteContext.CurrentSiteName + ".CMSAvatarType");
                        if (avType == AvatarInfoProvider.USERCHOICE)
                        {
                           avType = messageUserInfo.UserSettings.UserAvatarType;
                        }

                        UserPictureControl.UserAvatarType = avType;
                        
                        // Disable message user buttons on live site for hidden or disabled users
                        if (IsLiveSite && !currentUserInfo.IsGlobalAdministrator && (messageUserInfo.UserIsDisabledManually || messageUserInfo.UserIsHidden))
                        {
                            MessageUserButtonsControl.RelatedUserId = 0;
                        }
                        else
                        {
                            MessageUserButtonsControl.RelatedUserId = messageUserInfo.UserID;
                        }
                        lblFrom.Text = HTMLHelper.HTMLEncode(Functions.GetFormattedUserName(messageUserInfo.UserName, messageUserInfo.FullName, messageUserInfo.UserNickName, IsLiveSite));
                    }
                    else
                    {
                        MessageUserButtonsControl.RelatedUserId = 0;
                        lblFrom.Text = HTMLHelper.HTMLEncode(Message.MessageSenderNickName);
                    }
                    string body = Message.MessageBody;
                    // Resolve macros
                    DiscussionMacroResolver dmh = new DiscussionMacroResolver();
                    body = dmh.ResolveMacros(body);

                    lblSubject.Text = HTMLHelper.HTMLEncodeLineBreaks(Message.MessageSubject);
                    if (IsLiveSite)
                    {
                        lblDate.Text = TimeZoneMethods.ConvertDateTime(Message.MessageSent, this).ToString();
                    }
                    else
                    {
                        lblDate.Text = TimeZoneHelper.ConvertToUserTimeZone(Message.MessageSent, true, currentUserInfo, SiteContext.CurrentSite);
                    }
                    lblBody.Text = body;
                }
            }
            else
            {
                ShowError(GetString("Messaging.MessageDoesntExist"));
            }
        }
    }

    #endregion
}