using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;

public partial class AdminMaster : System.Web.UI.MasterPage
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["UserName"] != null)
        {
            Lbl_Welcom.Text = "کاربر محترم " + Session["NameSname"].ToString() + " خوش آمدید. ";
            if (int.Parse(Session["UserTypeID"].ToString().Trim()) == 1)
            {
                UDF_GetAdminLinks();
            }
            else if (int.Parse(Session["UserTypeID"].ToString().Trim()) == 2 || int.Parse(Session["UserTypeID"].ToString().Trim()) == 3)
            {
                UDF_GetOperatorLinks();
            }
            else if (int.Parse(Session["UserTypeID"].ToString().Trim()) > 3)
            {
                UDF_GetOtherUsersLinks();
            }

        }
        else
        {
            Lbl_Welcom.Text = "خوش آمدید";
            UDF_GetCommonLinks();

        }
        UDF_SaveLogs();
        
    }

    private void UDF_SaveLogs()
    {
        Class_LogRegister Cls_SaveLog = new Class_LogRegister("Page Loaded.", Request.Url.ToString());
        Cls_SaveLog.UDF_SaveLogs();
    }

    // نمایش لینک کاربرانی که لاگین ننموده اند
    private void UDF_GetCommonLinks()
    {
        TrVi_MainLinks.Nodes.Clear();
        LSC_WareHouseDataContext db = new LSC_WareHouseDataContext();
        var Query = from Row in db.tblPagePermisions
                    where Row.NoteLogedOK == true
                    orderby Row.SortPermID
                    select new
                    {
                        Row.PageID,
                        Row.PageName,
                        Row.PageTitle
                    };

        TreeNode trn = new TreeNode("Default.aspx");
        trn.NavigateUrl = "Default.aspx";
        trn.Text = "صفحه اصلی";
        TrVi_MainLinks.Nodes.Add(trn);
        

        foreach (var Row in Query)
        {
            TreeNode trn5 = new TreeNode();
            trn5.NavigateUrl = Row.PageName;
            trn5.Text = Row.PageTitle;
            TrVi_MainLinks.Nodes[0].ChildNodes.Add(trn5);
        }
        TrVi_MainLinks.DataBind();
    }

    // نمایش کاربرانی که با عنوان مدیر ارشد لاگین نموده اند
    private void UDF_GetAdminLinks()
    {
        TrVi_MainLinks.Nodes.Clear();
        LSC_WareHouseDataContext db = new LSC_WareHouseDataContext();
        var Query = from Row in db.tblPagePermisions
                    where Row.IsAdmin == true
                    orderby Row.SortPermID
                    select new
                    {
                        Row.PageID,
                        Row.PageName,
                        Row.PageTitle
                    };

        TreeNode trn = new TreeNode("Default.aspx");
        trn.NavigateUrl = "Default.aspx";
        trn.Text = "صفحه اصلی";
        TrVi_MainLinks.Nodes.Add(trn);


        foreach (var Row in Query)
        {
            TreeNode trn5 = new TreeNode();
            trn5.NavigateUrl = Row.PageName;
            trn5.Text = Row.PageTitle;
            TrVi_MainLinks.Nodes[0].ChildNodes.Add(trn5);
        }
        TrVi_MainLinks.DataBind();
    }

    // نمایش کاربرانی که با عنوان اپراتور لاگین نموده اند
    private void UDF_GetOperatorLinks()
    {
        TrVi_MainLinks.Nodes.Clear();
        LSC_WareHouseDataContext db = new LSC_WareHouseDataContext();
        var Query = from Row in db.tblPagePermisions
                    where Row.IsOperator == true
                    orderby Row.SortPermID
                    select new
                    {
                        Row.PageID,
                        Row.PageName,
                        Row.PageTitle
                    };

        TreeNode trn = new TreeNode("Default.aspx");
        trn.NavigateUrl = "Default.aspx";
        trn.Text = "صفحه اصلی";
        TrVi_MainLinks.Nodes.Add(trn);


        foreach (var Row in Query)
        {
            TreeNode trn5 = new TreeNode();
            trn5.NavigateUrl = Row.PageName;
            trn5.Text = Row.PageTitle;
            TrVi_MainLinks.Nodes[0].ChildNodes.Add(trn5);
        }
        TrVi_MainLinks.DataBind();
    }

    // نمایش کاربرانی که با عنوان کاربر عادی لاگین نموده اند
    private void UDF_GetOtherUsersLinks()
    {
        TrVi_MainLinks.Nodes.Clear();
        LSC_WareHouseDataContext db = new LSC_WareHouseDataContext();
        var Query = from Row in db.tblPagePermisions
                    where Row.IsOdderUser == true
                    orderby Row.SortPermID
                    select new
                    {
                        Row.PageID,
                        Row.PageName,
                        Row.PageTitle
                    };

        TreeNode trn = new TreeNode("Default.aspx");
        trn.NavigateUrl = "Default.aspx";
        trn.Text = "صفحه اصلی";
        TrVi_MainLinks.Nodes.Add(trn);


        foreach (var Row in Query)
        {
            TreeNode trn5 = new TreeNode();
            trn5.NavigateUrl = Row.PageName;
            trn5.Text = Row.PageTitle;
            TrVi_MainLinks.Nodes[0].ChildNodes.Add(trn5);
        }
        TrVi_MainLinks.DataBind();
    }
}
