Ejemplo n.º 1
0
    /// <summary>
    /// 檢查個案戶籍是否為組織管轄內
    /// </summary>
    /// <param name="OrgID"></param>
    /// <param name="CaseID"></param>
    /// <returns>true false</returns>
    public static bool IsCaseInOrgRegion(int OrgID, int CaseID)
    {
        CaseUserProfile c     = new CaseUserProfile(CaseID);
        SystemOrgVM     OrgVM = SystemOrg.GetVM(OrgID);

        if (OrgVM.OrgLevel == 4)  //衛生所
        {
            List <SystemOrgRegionVM> RegionList = GetOrgRegion(OrgID);
            if (RegionList.Find(r => r.RegionID == Convert.ToInt32(c.RegionID)) != null)
            {
                return(true);
            }
        }
        else
        if (OrgVM.OrgLevel == 3 || OrgVM.OrgLevel == 2)    //衛生局 管制中心
        {
            List <SystemOrgRegionCountyVM> CountyList = GetOrgRegionCounty(OrgID);

            if (CountyList.Find(rc => rc.CountyID == Convert.ToInt32(c.ResCounty)) != null)
            {
                return(true);
            }
        }
        else if (OrgVM.OrgLevel == 1)      //CDC
        {
            return(true);
        }
        return(false);
    }
Ejemplo n.º 2
0
    /// <summary>
    /// 檢查縣市鄉鎮是否為組織管轄內
    /// </summary>
    /// <param name="OrgID">組織</param>
    /// <param name="CountyID"></param>
    /// <param name="TownID"></param>
    /// <param name="VillageID"></param>
    /// <returns>true false</returns>
    public static bool IsInOrgRegion(int OrgID, int CountyID, int TownID, int VillageID)
    {
        SystemOrgVM OrgVM = SystemOrg.GetVM(OrgID);

        if (OrgVM.OrgLevel == 4)      //衛生所
        {
            List <SystemOrgRegionVM> RegionList = GetOrgRegion(OrgID);

            foreach (SystemOrgRegionVM r in RegionList)
            {
                List <SystemRegionSettingVM> sl = GetOrgRegionSetting(r.RegionID);
                SystemRegionSettingVM        rs = sl.Find(s => (s.CountyID == CountyID) && (s.TownID == TownID) && (s.VillageID == VillageID));
                if (rs != null)
                {
                    return(true);
                }
            }
        }
        else
        if (OrgVM.OrgLevel == 3 || OrgVM.OrgLevel == 2)    //衛生局 管制中心
        {
            List <SystemOrgRegionCountyVM> CountyList = GetOrgRegionCounty(OrgID);

            if (CountyList.Find(rc => rc.CountyID == CountyID) != null)
            {
                return(true);
            }
        }
        else if (OrgVM.OrgLevel == 1)      //CDC
        {
            return(true);
        }
        return(false);
    }
Ejemplo n.º 3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // base.DisableTop(true);

        Session["NewCaseContacts"] = null;
        //清空

        //SystemCode.Update();
        //SystemOrgRegion.IsCaseInOrgRegion(AuthServer.GetLoginUser().OrgID, CaseID);

        if (!Page.IsPostBack)
        {
            Session["UserProfileCaseID"] = CaseID;
            if (CaseID > 0)
            {
                ucCaseRemark1.CaseID = CaseID;
                BindData();
                //SystemOrgRegion.Update();
                //if (SystemOrgRegion.IsCaseInOrgRegion(AuthServer.GetLoginUser().OrgID, CaseID))
                //{
                // Response.Write ("在轄區內")   ;
                //}else
                //    Response.Write("不在轄區內");
            }
        }
        else
        {
            if (Session["UserProfileCaseID"] != null)
            {
                int.TryParse(Session["UserProfileCaseID"].ToString(), out CaseID);
            }
        }
        if (CaseID == 0)
        {
            btnAdd.Visible = true;
            TabDIV.Visible = false;
        }
        else
        {
            DivAgeTip.Visible    = true;
            TabModifyLog.Visible = true;

            int OrgLevel = SystemOrg.GetVM(AuthServer.GetLoginUser().OrgID).OrgLevel;

            if (OrgLevel == 1)
            {//CDC
                btnSave.Visible = true;
            }
            else if (OrgLevel == 4)
            { //衛生所
                btnCheck.Visible = true;
            }
        }
    }
Ejemplo n.º 4
0
    protected new void Page_Load(object sender, EventArgs e)
    {
        base.AllowHttpMethod("POST");

        if (Request.HttpMethod.Equals("POST"))
        {
            PageUrl        = QueryStringEncryptToolS.Decrypt(GetString("p"));
            EncryptPageUrl = QueryStringEncryptToolS.Encrypt(PageUrl);

            HasViewPower = CheckPower(PageUrl, MyPowerEnum.瀏覽);
            if (HasViewPower == false)
            {
                throw new HttpException(404, "Not found");
            }
            HasSearchPower = CheckPower(PageUrl, MyPowerEnum.查詢);


            var all      = SystemOrg.list;
            int minValue = 0;
            int maxValue = 0;
            if (all.Count > 0)
            {
                minValue = all[0].PID;
                maxValue = all[all.Count - 1].PID;
            }
            IEnumerable <SystemOrgVM> conditionList = new List <SystemOrgVM>()
            {
                SystemOrg.GetVM(AuthServer.GetLoginUser().OrgID)
            };
            IEnumerable <SystemOrgVM> queryList = new List <SystemOrgVM>();
            List <SystemOrgVM>        FinalList = new List <SystemOrgVM>()
            {
                SystemOrg.GetVM(AuthServer.GetLoginUser().OrgID)
            };
            do
            {
                queryList = GetChild(all, conditionList, minValue, maxValue);
                FinalList.AddRange(queryList);
                conditionList = queryList;
            } while (queryList.Count() > 0);

            MyTreeData = JsonConvert.SerializeObject(FinalList);
        }
        else
        {
            Response.Write("");
            Response.End();
        }
    }
Ejemplo n.º 5
0
    protected void Page_Load(object sender, EventArgs e)
    {
        UserVM user = AuthServer.GetLoginUser();

        MyLevel = SystemOrg.GetVM(user.OrgID).OrgLevel;

        DataTable dt = new DataTable();

        using (SqlConnection sc = new SqlConnection(WebConfigurationManager.ConnectionStrings["ConnUser"].ToString()))
        {
            using (SqlCommand cmd = new SqlCommand("dbo.usp_PowerM_xGetOrgByOrgID", sc))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@OrgID", user.OrgID);
                using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                {
                    sc.Open();
                    da.Fill(dt);
                }
            }
        }

        List <SystemOrgVM> list = new List <SystemOrgVM>();

        EntityS.FillModel(list, dt);

        if (Convert.ToInt32(WebConfigurationManager.AppSettings["OrgAreaSet"]) == 0)
        {
            OrgArea = false;
            list.RemoveAll(item => item.OrgLevel == 2);
            for (var i = 0; i < list.Count; i++)
            {
                if (list[i].OrgLevel == 3)
                {
                    list[i].PID = 1;
                }
            }
        }

        MyTreeData = JsonConvert.SerializeObject(list.Where(item => item.OrgCateID == Convert.ToInt32(WebConfigurationManager.AppSettings["OrgCateID"])));
    }
Ejemplo n.º 6
0
    /// <summary>
    /// 轄區所屬Village
    /// </summary>
    /// <param name="OrgID"></param>
    /// <param name="TownID"></param>
    /// <returns></returns>
    public static List <SystemAreaCodeVM> GetRegionVillageList(int OrgID, int TownID)
    {
        SystemOrgVM             OrgVM = SystemOrg.GetVM(OrgID);
        List <SystemAreaCodeVM> list  = SystemAreaCode.GetVillageList(TownID);

        if (OrgVM.OrgLevel == 4)  //衛生所
        {
            List <int> RegionVillageIDs = new List <int>();

            List <SystemOrgRegionVM> RegionList = GetOrgRegion(OrgID);
            foreach (SystemOrgRegionVM r in RegionList)
            {
                if (SystemOrgRegion.dictRegionSetting.ContainsKey(r.RegionID))
                {
                    RegionVillageIDs.AddRange(dictRegionSetting[r.RegionID].Select(l => l.VillageID).Distinct());
                }
            }
            list = list.Where(ac => RegionVillageIDs.Contains(ac.ID)).ToList();
        }
        return(list);
    }
Ejemplo n.º 7
0
    /// <summary>
    /// 轄區所屬County
    /// </summary>
    /// <param name="OrgID"></param>
    /// <returns></returns>
    public static List <SystemAreaCodeVM> GetRegionCountyList(int OrgID)
    {
        List <SystemAreaCodeVM> list = SystemAreaCode.GetCountyList();

        SystemOrgVM OrgVM = SystemOrg.GetVM(OrgID);

        //判斷是哪種level
        if (OrgVM.OrgLevel == 4)  //衛生所
        {
            List <int> RegionCountyIDs          = new List <int>();
            List <SystemOrgRegionVM> RegionList = GetOrgRegion(OrgID);

            foreach (SystemOrgRegionVM r in RegionList)
            {
                List <SystemRegionSettingVM> SettingList = GetOrgRegionSetting(r.RegionID);
                foreach (SystemRegionSettingVM s in SettingList)
                {
                    RegionCountyIDs.Add(s.CountyID);
                }
            }

            list = list.Where(ac => RegionCountyIDs.Contains(ac.ID)).ToList();
        }
        else
        if (OrgVM.OrgLevel == 3 || OrgVM.OrgLevel == 2)    //衛生局 管制中心
        {
            List <SystemOrgRegionCountyVM> CountyList = GetOrgRegionCounty(OrgID);
            List <int> RegionCountyIDs = new List <int>();
            foreach (SystemOrgRegionCountyVM rc in CountyList)
            {
                RegionCountyIDs.Add(rc.CountyID);
            }
            list = list.Where(ac => RegionCountyIDs.Contains(ac.ID)).ToList();
        }
        //level 1全部


        return(list);
    }
Ejemplo n.º 8
0
    protected void btnLogin_Click(object sender, EventArgs e)
    {
        string    script      = "";
        string    txtUser     = tbUser.Text.Trim();
        string    txtPassword = tbPassword.Text.Trim();
        string    txtCode     = tbCode.Text.ToLower().Trim();
        int       UserCount   = 0;
        DataTable dt          = new DataTable();

        if (SessionS.GetSessionValue("CheckCode") == null || SessionS.GetSessionValue("CheckCode").ToString().Equals(txtCode) == false)
        {
            tbCode.Text = "";
            script      = "<script>alert('驗證碼錯誤');</script>";
            Page.ClientScript.RegisterClientScriptBlock(this.Page.GetType(), "alert", script, false);
            return;
        }

        EncryptT enc = new EncryptT();

        using (SqlConnection sc = new SqlConnection(WebConfigurationManager.ConnectionStrings["ConnUser"].ToString()))
        {
            using (SqlCommand cmd = new SqlCommand("dbo.usp_SystemM_xCheckLogin", sc))
            {
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("@LoginName", txtUser);
                cmd.Parameters.AddWithValue("@LoginPassword", enc.ToSHA256(txtPassword));
                cmd.Parameters.AddWithValue("@FunctionIndex", Convert.ToInt32(WebConfigurationManager.AppSettings["SystemFunctionIndex"]));
                SqlParameter sp = cmd.Parameters.AddWithValue("@UserCount", UserCount);
                sp.Direction = ParameterDirection.Output;

                sc.Open();
                cmd.ExecuteNonQuery();

                UserCount = (int)sp.Value;
            }
        }

        if (UserCount > 0)
        {
            using (SqlConnection sc = new SqlConnection(WebConfigurationManager.ConnectionStrings["ConnUser"].ToString()))
            {
                using (SqlCommand cmd = new SqlCommand("dbo.usp_SystemM_xGetUserByLoginName", sc))
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.AddWithValue("@LoginName", txtUser);

                    using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                    {
                        sc.Open();
                        da.Fill(dt);
                    }
                }
            }

            UserVM user = new UserVM();
            EntityS.FillModel <UserVM>(user, dt);
            //user.LoginDate = DateTime.Now;

            var org      = SystemOrg.GetVM(user.OrgID);
            var clientIP = IpAddressS.GetIP();
            IpT ipt      = new IpT(clientIP);
            NameValueCollection rRequest = Request.ServerVariables;
            bool yesOrNo = false;

            if (clientIP != null && org != null)
            {
                if (clientIP.Equals("::1") || clientIP.Equals("127.0.0.1") || string.IsNullOrEmpty(org.IpStart) || string.IsNullOrEmpty(org.IpEnd) || org.IpStart.Equals("0.0.0.0") && org.IpEnd.Equals("0.0.0.0"))
                {
                    yesOrNo = true;
                }
                else
                {
                    yesOrNo = ipt.CheckInNowWifi(string.Format("{0}-{1}", org.IpStart, org.IpEnd));
                }
            }
            else if (user.OrgID == 1)
            {
                yesOrNo = true;
            }
            else if (org == null)
            {
                script = "<script>alert('無權限登入');</script>";
                Page.ClientScript.RegisterClientScriptBlock(this.Page.GetType(), "alert", script, false);
                return;
            }

            if (yesOrNo == false)
            {
                script = "<script>alert('非允許IP位置');</script>";
            }
            else
            {
                int Chk = 0;
                using (SqlConnection sc = new SqlConnection(WebConfigurationManager.ConnectionStrings["ConnUser"].ToString()))
                {
                    using (SqlCommand cmd = new SqlCommand("dbo.usp_SystemM_xUpdateLoginDate", sc))
                    {
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.Parameters.AddWithValue("@UserID", user.ID);
                        cmd.Parameters.AddWithValue("@LoginIP", IpAddressS.GetIP());
                        cmd.Parameters.AddWithValue("@SystemPowerCateID", SystemPowerCateID);

                        SqlParameter sp1 = cmd.Parameters.AddWithValue("@LoginDateOut", user.LoginDate);
                        sp1.Direction = ParameterDirection.Output;
                        SqlParameter sp2 = cmd.Parameters.AddWithValue("@Chk", Chk);
                        sp2.Direction = ParameterDirection.Output;

                        sc.Open();
                        cmd.ExecuteNonQuery();

                        user.LoginDate = (DateTime)sp1.Value;
                        Chk            = (int)sp2.Value;
                    }
                }

                if (Chk > 0)
                {
                    //Session.Abandon();
                    //Session.Clear();

                    HttpContext.Current.Session["LoginUser"] = user;

                    string tempUrl = SessionS.GetSessionValue("tempUrl") as string;
                    if (tempUrl != null)
                    {
                        SessionS.RemoveSession("tempUrl");
                        Response.Redirect(tempUrl);
                    }
                    else
                    {
                        Response.Redirect("~/Home.aspx");
                    }
                }
                else
                {
                    script = "<script>alert('帳號密碼錯誤');</script>";
                }
            }
        }
        else
        {
            script = "<script>alert('帳號密碼錯誤');</script>";
        }

        Page.ClientScript.RegisterClientScriptBlock(this.Page.GetType(), "alert", script, false);
    }
Ejemplo n.º 9
0
    protected void Page_Load(object sender, EventArgs e)
    {
        UserVM user = AuthServer.GetLoginUser();

        MyLevel = SystemOrg.GetVM(user.OrgID).OrgLevel;

        int PID      = SystemOrg.GetVM(user.OrgID).PID;
        int OrgLevel = SystemOrg.GetVM(user.OrgID).OrgLevel;

        //DataTable dt = new DataTable();

        //using (SqlConnection sc = new SqlConnection(WebConfigurationManager.ConnectionStrings["ConnUser"].ToString()))
        //{
        //    using (SqlCommand cmd = new SqlCommand("dbo.usp_PowerM_xGetOrgForStockManagementM", sc))
        //    {
        //        cmd.CommandType = CommandType.StoredProcedure;
        //        cmd.Parameters.AddWithValue("@OrgID", user.OrgID);
        //        cmd.Parameters.AddWithValue("@PID", PID);
        //        cmd.Parameters.AddWithValue("@OrgCateID", OrgCateID);
        //        using (SqlDataAdapter da = new SqlDataAdapter(cmd))
        //        {
        //            sc.Open();
        //            da.Fill(dt);
        //        }
        //    }
        //}

        List <SystemOrgVM> list = new List <SystemOrgVM>();

        //EntityS.FillModel(list, dt);
        list.AddRange(SystemOrg.list);

        if (Convert.ToInt32(WebConfigurationManager.AppSettings["OrgAreaSet"]) == 0)
        {
            if (OrgLevel == 1)
            {
                //移除:與登入者平層、下一層以外的單位
                list.RemoveAll(item => !(item.OrgLevel == OrgLevel || item.OrgLevel == OrgLevel + 2));
            }
            else if (OrgLevel == 3)
            {
                //移除:與登入者上一層、平層、下一層以外的單位
                list.RemoveAll(item => !(item.OrgLevel == OrgLevel - 2 || item.OrgLevel == OrgLevel || item.OrgLevel == OrgLevel + 1));
                //移除:與登入者上一層同,卻不是登入者的上層
                list.RemoveAll(item => item.OrgLevel == OrgLevel - 2 && item.ID != PID);
                //移除:與登入者同一層,且直屬單位不同
                list.RemoveAll(item => item.OrgLevel == OrgLevel && item.PID != PID);
                //移除:與登入者下一層,且不屬於登入者下層單位
                list.RemoveAll(item => item.OrgLevel == OrgLevel + 1 && item.PID != user.OrgID);
            }
            else if (OrgLevel == 4)
            {
                //移除:與登入者上一層、平層、下一層以外的單位
                list.RemoveAll(item => !(item.OrgLevel == OrgLevel - 1 || item.OrgLevel == OrgLevel || item.OrgLevel == OrgLevel + 1));
                //移除:與登入者上一層同,卻不是登入者的上層
                list.RemoveAll(item => item.OrgLevel == OrgLevel - 1 && item.ID != PID);
                //移除:與登入者同一層,且直屬單位不同
                list.RemoveAll(item => item.OrgLevel == OrgLevel && item.PID != PID);
                //移除:與登入者下一層,且不屬於登入者下層單位
                list.RemoveAll(item => item.OrgLevel == OrgLevel + 1 && item.PID != user.OrgID);
            }
            else if (OrgLevel == 5)
            {
                //移除:與登入者上一層、平層、下一層以外的單位
                list.RemoveAll(item => !(item.OrgLevel == OrgLevel - 1 || item.OrgLevel == OrgLevel || item.OrgLevel == OrgLevel + 1));
                //移除:與登入者上一層同,卻不是登入者的上層
                list.RemoveAll(item => item.OrgLevel == OrgLevel - 1 && item.ID != PID);
                //移除:與登入者同一層,且直屬單位不同
                list.RemoveAll(item => item.OrgLevel == OrgLevel && item.PID != PID);
                //移除:與登入者下一層,且不屬於登入者下層單位
                list.RemoveAll(item => item.OrgLevel == OrgLevel + 1 && item.PID != user.OrgID);
            }
        }
        else if (Convert.ToInt32(WebConfigurationManager.AppSettings["OrgAreaSet"]) == 1)
        {
            if (OrgLevel == 1)
            {
                //移除:與登入者平層、下一層以外的單位
                list.RemoveAll(item => !(item.OrgLevel == OrgLevel || item.OrgLevel == OrgLevel + 1));
            }
            else if (OrgLevel == 2)
            {
                //移除:與登入者上一層、平層、下一層以外的單位
                list.RemoveAll(item => !(item.OrgLevel == OrgLevel - 1 || item.OrgLevel == OrgLevel || item.OrgLevel == OrgLevel + 1));
                //移除:與登入者上一層同,卻不是登入者的上層
                list.RemoveAll(item => item.OrgLevel == OrgLevel - 1 && item.ID != PID);
                //移除:與登入者同一層,且直屬單位不同
                list.RemoveAll(item => item.OrgLevel == OrgLevel && item.PID != PID);
                //移除:與登入者下一層,且不屬於登入者下層單位
                list.RemoveAll(item => item.OrgLevel == OrgLevel + 1 && item.PID != user.OrgID);
            }
            else if (OrgLevel == 3)
            {
                //移除:與登入者上一層、平層、下一層以外的單位
                list.RemoveAll(item => !(item.OrgLevel == OrgLevel - 1 || item.OrgLevel == OrgLevel || item.OrgLevel == OrgLevel + 1));
                //移除:與登入者上一層同,卻不是登入者的上層
                list.RemoveAll(item => item.OrgLevel == OrgLevel - 1 && item.ID != PID);
                //移除:與登入者同一層,且直屬單位不同
                list.RemoveAll(item => item.OrgLevel == OrgLevel && item.PID != PID);
                //移除:與登入者下一層,且不屬於登入者下層單位
                list.RemoveAll(item => item.OrgLevel == OrgLevel + 1 && item.PID != user.OrgID);
            }
            else if (OrgLevel == 4)
            {
                //移除:與登入者上一層、平層、下一層以外的單位
                list.RemoveAll(item => !(item.OrgLevel == OrgLevel - 1 || item.OrgLevel == OrgLevel || item.OrgLevel == OrgLevel + 1));
                //移除:與登入者上一層同,卻不是登入者的上層
                list.RemoveAll(item => item.OrgLevel == OrgLevel - 1 && item.ID != PID);
                //移除:與登入者同一層,且直屬單位不同
                list.RemoveAll(item => item.OrgLevel == OrgLevel && item.PID != PID);
                //移除:與登入者下一層,且不屬於登入者下層單位
                list.RemoveAll(item => item.OrgLevel == OrgLevel + 1 && item.PID != user.OrgID);
            }
            else if (OrgLevel == 5)
            {
                //移除:與登入者上一層、平層、下一層以外的單位
                list.RemoveAll(item => !(item.OrgLevel == OrgLevel - 1 || item.OrgLevel == OrgLevel || item.OrgLevel == OrgLevel + 1));
                //移除:與登入者上一層同,卻不是登入者的上層
                list.RemoveAll(item => item.OrgLevel == OrgLevel - 1 && item.ID != PID);
                //移除:與登入者同一層,且直屬單位不同
                list.RemoveAll(item => item.OrgLevel == OrgLevel && item.PID != PID);
                //移除:與登入者下一層,且不屬於登入者下層單位
                list.RemoveAll(item => item.OrgLevel == OrgLevel + 1 && item.PID != user.OrgID);
            }
        }

        MyTreeData = JsonConvert.SerializeObject(list.Where(item => item.OrgCateID == Convert.ToInt32(WebConfigurationManager.AppSettings["OrgCateID"])));
        //MyTreeData = SystemOrg.JsonList;
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        UserVM user = AuthServer.GetLoginUser();

        int PID      = SystemOrg.GetVM(user.OrgID).PID;
        int OrgLevel = SystemOrg.GetVM(user.OrgID).OrgLevel;

        List <SystemOrgVM> list = new List <SystemOrgVM>();

        list.AddRange(SystemOrg.list);

        if (Convert.ToInt32(WebConfigurationManager.AppSettings["OrgAreaSet"]) == 0)
        {
            if (OrgLevel == 1)
            {
                //移除:與登入者平層、下一層以外的單位
                list.RemoveAll(item => !(item.OrgLevel == OrgLevel || item.OrgLevel == OrgLevel + 2));
            }
            else if (OrgLevel == 3)
            {
                //移除:與登入者上一層、平層、下一層以外的單位
                list.RemoveAll(item => !(item.OrgLevel == OrgLevel - 2 || item.OrgLevel == OrgLevel || item.OrgLevel == OrgLevel + 1));
                //移除:與登入者上一層同,卻不是登入者的上層
                list.RemoveAll(item => item.OrgLevel == OrgLevel - 2 && item.ID != PID);
                //移除:與登入者同一層,且直屬單位不同
                list.RemoveAll(item => item.OrgLevel == OrgLevel && item.PID != PID);
                //移除:與登入者下一層,且不屬於登入者下層單位
                list.RemoveAll(item => item.OrgLevel == OrgLevel + 1 && item.PID != user.OrgID);
            }
            else if (OrgLevel == 4)
            {
                //移除:與登入者上一層、平層、下一層以外的單位
                list.RemoveAll(item => !(item.OrgLevel == OrgLevel - 1 || item.OrgLevel == OrgLevel || item.OrgLevel == OrgLevel + 1));
                //移除:與登入者上一層同,卻不是登入者的上層
                list.RemoveAll(item => item.OrgLevel == OrgLevel - 1 && item.ID != PID);
                //移除:與登入者同一層,且直屬單位不同
                list.RemoveAll(item => item.OrgLevel == OrgLevel && item.PID != PID);
                //移除:與登入者下一層,且不屬於登入者下層單位
                list.RemoveAll(item => item.OrgLevel == OrgLevel + 1 && item.PID != user.OrgID);
            }
            else if (OrgLevel == 5)
            {
                //移除:與登入者上一層、平層、下一層以外的單位
                list.RemoveAll(item => !(item.OrgLevel == OrgLevel - 1 || item.OrgLevel == OrgLevel || item.OrgLevel == OrgLevel + 1));
                //移除:與登入者上一層同,卻不是登入者的上層
                list.RemoveAll(item => item.OrgLevel == OrgLevel - 1 && item.ID != PID);
                //移除:與登入者同一層,且直屬單位不同
                list.RemoveAll(item => item.OrgLevel == OrgLevel && item.PID != PID);
                //移除:與登入者下一層,且不屬於登入者下層單位
                list.RemoveAll(item => item.OrgLevel == OrgLevel + 1 && item.PID != user.OrgID);
            }
        }
        else if (Convert.ToInt32(WebConfigurationManager.AppSettings["OrgAreaSet"]) == 1)
        {
            if (OrgLevel == 1)
            {
                //移除:與登入者平層、下一層以外的單位
                list.RemoveAll(item => !(item.OrgLevel == OrgLevel || item.OrgLevel == OrgLevel + 1));
            }
            else if (OrgLevel == 2)
            {
                //移除:與登入者上一層、平層、下一層以外的單位
                list.RemoveAll(item => !(item.OrgLevel == OrgLevel - 1 || item.OrgLevel == OrgLevel || item.OrgLevel == OrgLevel + 1));
                //移除:與登入者上一層同,卻不是登入者的上層
                list.RemoveAll(item => item.OrgLevel == OrgLevel - 1 && item.ID != PID);
                //移除:與登入者同一層,且直屬單位不同
                list.RemoveAll(item => item.OrgLevel == OrgLevel && item.PID != PID);
                //移除:與登入者下一層,且不屬於登入者下層單位
                list.RemoveAll(item => item.OrgLevel == OrgLevel + 1 && item.PID != user.OrgID);
            }
            else if (OrgLevel == 3)
            {
                //移除:與登入者上一層、平層、下一層以外的單位
                list.RemoveAll(item => !(item.OrgLevel == OrgLevel - 1 || item.OrgLevel == OrgLevel || item.OrgLevel == OrgLevel + 1));
                //移除:與登入者上一層同,卻不是登入者的上層
                list.RemoveAll(item => item.OrgLevel == OrgLevel - 1 && item.ID != PID);
                //移除:與登入者同一層,且直屬單位不同
                list.RemoveAll(item => item.OrgLevel == OrgLevel && item.PID != PID);
                //移除:與登入者下一層,且不屬於登入者下層單位
                list.RemoveAll(item => item.OrgLevel == OrgLevel + 1 && item.PID != user.OrgID);
            }
            else if (OrgLevel == 4)
            {
                //移除:與登入者上一層、平層、下一層以外的單位
                list.RemoveAll(item => !(item.OrgLevel == OrgLevel - 1 || item.OrgLevel == OrgLevel || item.OrgLevel == OrgLevel + 1));
                //移除:與登入者上一層同,卻不是登入者的上層
                list.RemoveAll(item => item.OrgLevel == OrgLevel - 1 && item.ID != PID);
                //移除:與登入者同一層,且直屬單位不同
                list.RemoveAll(item => item.OrgLevel == OrgLevel && item.PID != PID);
                //移除:與登入者下一層,且不屬於登入者下層單位
                list.RemoveAll(item => item.OrgLevel == OrgLevel + 1 && item.PID != user.OrgID);
            }
            else if (OrgLevel == 5)
            {
                //移除:與登入者上一層、平層、下一層以外的單位
                list.RemoveAll(item => !(item.OrgLevel == OrgLevel - 1 || item.OrgLevel == OrgLevel || item.OrgLevel == OrgLevel + 1));
                //移除:與登入者上一層同,卻不是登入者的上層
                list.RemoveAll(item => item.OrgLevel == OrgLevel - 1 && item.ID != PID);
                //移除:與登入者同一層,且直屬單位不同
                list.RemoveAll(item => item.OrgLevel == OrgLevel && item.PID != PID);
                //移除:與登入者下一層,且不屬於登入者下層單位
                list.RemoveAll(item => item.OrgLevel == OrgLevel + 1 && item.PID != user.OrgID);
            }
        }

        MyTreeData = JsonConvert.SerializeObject(list.Where(item => item.OrgCateID == Convert.ToInt32(WebConfigurationManager.AppSettings["OrgCateID"])));
    }
Ejemplo n.º 11
0
    protected new void Page_Load(object sender, EventArgs e)
    {
        base.AllowHttpMethod("GET", "POST");
        base.DisableTop(false);

        if (Request.HttpMethod.Equals("POST"))
        {
            PageUrl        = QueryStringEncryptToolS.Decrypt(GetString("p"));
            EncryptPageUrl = QueryStringEncryptToolS.Encrypt(PageUrl);

            HasViewPower = CheckPower(PageUrl, MyPowerEnum.瀏覽);
            if (HasViewPower == false)
            {
                throw new HttpException(404, "Not found");
            }
            HasSearchPower = CheckPower(PageUrl, MyPowerEnum.查詢);


            var all = SystemOrg.list;

            //if (Convert.ToInt32(WebConfigurationManager.AppSettings["OrgAreaSet"]) == 0)
            //{
            //    all.RemoveAll(item => item.OrgLevel == 2);
            //    all = all.Select(item =>
            //    {
            //        if (item.OrgLevel == 3)
            //        {
            //            item.PID = 1;
            //        }
            //        return item;
            //    }).ToList<SystemOrgVM>();
            //}

            int minValue = 0;
            int maxValue = 0;
            if (all.Count > 0)
            {
                minValue = all[0].PID;
                maxValue = all[all.Count - 1].PID;
            }
            IEnumerable <SystemOrgVM> conditionList = new List <SystemOrgVM>()
            {
                SystemOrg.GetVM(AuthServer.GetLoginUser().OrgID)
            };
            IEnumerable <SystemOrgVM> queryList = new List <SystemOrgVM>();
            List <SystemOrgVM>        FinalList = new List <SystemOrgVM>()
            {
                SystemOrg.GetVM(AuthServer.GetLoginUser().OrgID)
            };
            do
            {
                queryList = GetChild(all, conditionList, minValue, maxValue);
                FinalList.AddRange(queryList);
                conditionList = queryList;
            } while (queryList.Count() > 0);

            MyTreeData = JsonConvert.SerializeObject(FinalList);
        }
        else
        {
            Response.Write("");
            Response.End();
        }
    }