/// <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); }
/// <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); }
/// <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); }
/// <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); }