public DataTable ToDataTable(User user) { List <LpuRR> list = List.Select(item => item as LpuRR).ToList(); list = list.Where(item => !item.IsInList && item.StatusLPU == StatusLPU.Активен).OrderBy(item => item.Name).OrderBy(item => item.RegionRR.Name).ToList(); if (user.RoleSF == RolesSF.Пользователь) { UserRightList userRightList = UserRightList.GetUniqueInstance(); list = list.Where(item => userRightList.IsInList(user, item.RegionRR)).ToList(); } DataTable dt = new DataTable(); dt.Columns.Add("№ ЛПУ-RR"); dt.Columns.Add("Сокр. название ЛПУ-RR"); dt.Columns.Add("Полное название ЛПУ-RR"); dt.Columns.Add("Регион RR"); foreach (LpuRR item in list) { dt.Rows.Add(new object[] { item.ID, item.Name, item.FullName, item.RegionRR.Name }); } dt.Rows.Add(new object[] { 0, "Прочие ЛПУ", "Прочие ЛПУ", "Российская федерация" }); return(dt); }
public DataTable ToDataTableWithSF(User user) { var list = List.Select(item => item as UserLpuRR).ToList(); if (user.RoleSF == RolesSF.Пользователь) { UserRightList userRightList = UserRightList.GetUniqueInstance(); list = list.Where(item => userRightList.IsInList(user, item.LpuRR.RegionRR)).ToList(); RoleList roleList = RoleList.GetUniqueInstance(); Role role = roleList.GetItem(ROLE_RP_ID) as Role; if (user.Role == role) { list = list.Where(item => item.User == user).ToList(); } } //list = list.Where(item => item.YearEnd == DateTime.Today.Year).ToList(); DataTable dt = new DataTable(); dt.Columns.Add("№ ЛПУ-RR", typeof(int)); dt.Columns.Add("ФИО РП"); dt.Columns.Add("Дивизион"); dt.Columns.Add("Начало отчётности"); dt.Columns.Add("Окончание отчётности"); dt.Columns.Add("Сокр. название ЛПУ-RR"); dt.Columns.Add("Полное название ЛПУ-RR"); dt.Columns.Add("Регион RR"); dt.Columns.Add("Статус"); dt.Columns.Add("Сокр. название ЛПУ-SF"); dt.Columns.Add("Регион России"); dt.Columns.Add("Город"); dt.Columns.Add("№ ЛПУ-SF"); LpuList lpuList = new LpuList(); foreach (UserLpuRR item in list) { if ((item.LpuRR == null) || (item.User == null)) { continue; } string lpuSFID = string.Empty; string lpuSFName = string.Empty; string lpuSFRealRegion = string.Empty; string lpuSFCity = string.Empty; LPU lpu = lpuList.GetItem(item.LpuRR); if (lpu != null) { lpuSFID = lpu.ID.ToString(); lpuSFName = lpu.ShortName; lpuSFRealRegion = lpu.RealRegion.Name; lpuSFCity = lpu.City; } dt.Rows.Add(new object[] { item.LpuRR.ID, item.User.Name, item.Sdiv.ToString(), item.YearBegin, item.YearEnd, item.LpuRR.Name, item.LpuRR.FullName, item.LpuRR.RegionRR.Name, item.LpuRR.StatusLPU.ToString(), lpuSFName, lpuSFRealRegion, lpuSFCity, lpuSFID }); } return(dt); }
public DataTable ToDataTableWithLpuSF(User user) { DataTable dt = new DataTable(); dt.Columns.Add("№ ЛПУ-RR", typeof(int)); dt.Columns.Add("Сокр. название ЛПУ-RR"); dt.Columns.Add("Полное название ЛПУ-RR"); dt.Columns.Add("Регион RR"); dt.Columns.Add("Статус"); dt.Columns.Add("Использование"); dt.Columns.Add("Сокр. название ЛПУ-SF"); dt.Columns.Add("Регион России"); dt.Columns.Add("Город"); dt.Columns.Add("№ ЛПУ-SF"); dt.Columns.Add("color"); LpuList lpuList = new LpuList(); List <LpuRR> listNew = new List <LpuRR>(); listNew = List.Select(item => item as LpuRR).ToList(); if (user.RoleSF == RolesSF.Пользователь) { UserRightList userRightList = UserRightList.GetUniqueInstance(); listNew = listNew.Where(item => userRightList.IsInList(user, item.RegionRR)).ToList(); } foreach (LpuRR lpuRR in listNew) { if (lpuRR.ID == 0) { continue; } LPU lpu = lpuList.GetItem(lpuRR); string lpuName = string.Empty; string realRegionName = string.Empty; string cityName = string.Empty; string lpuID = string.Empty; if (lpu != null) { lpuName = lpu.ShortName; realRegionName = (lpu.RealRegion != null) ? lpu.RealRegion.Name : string.Empty; cityName = lpu.City; lpuID = lpu.ID.ToString(); } bool colorWhite = true; if (user.RoleSF == RolesSF.Пользователь) { colorWhite = IsUserLpu(lpuRR, user); } dt.Rows.Add(new object[] { lpuRR.ID, lpuRR.Name, lpuRR.FullName, lpuRR.RegionRR.Name, lpuRR.StatusLPU.ToString(), (IsLpuUsed(lpuRR) ? "Используется" : "Не используется"), lpuName, realRegionName, cityName, lpuID, colorWhite }); } return(dt); }