private List <Person> GetUsersList() { var result = new List <Person>(); try { switch (LoginAs) { case Shared.Enums.LoginAs.ADMIN: result = _userService.GetAll().ToList(); break; case Shared.Enums.LoginAs.HOSPITALMANAGER: result = _userService.GetAllForHospital(_hospitalService.GetCurrentHospital().Id).ToList(); break; case Shared.Enums.LoginAs.CLINICMANAGER: result = _userService.GetAllForClinic(_clinicService.GetCurrentClinic().Id).ToList(); break; case Shared.Enums.LoginAs.POLYCLINICMANAGER: case Shared.Enums.LoginAs.BEAUTYCENTERMANAGER: result = _userService.GetAllForPoliClinic(_polyclinicService.GetCurrentShiftCenter().Id).ToList(); break; } } catch { // IGNORED } return(result); }
public async Task <ViewResult> Index(string sortOrder, string currentFilter, string searchString, int?page, int?hospitalId = null) { ViewBag.Lang = Lng; ViewBag.LoginAs = LoginAs.ToString(); if (LoginAs == Shared.Enums.LoginAs.HOSPITALMANAGER) { hospitalId = _hospitalService.GetCurrentHospital()?.Id; } else { ViewBag.Hospitals = await GetHospitalsSelectListAsync(); } ViewBag.HospitalId = hospitalId; ViewBag.CurrentSort = sortOrder; ViewBag.NameSortParam = sortOrder == "Name" ? "name_desc" : "Name"; if (!string.IsNullOrEmpty(searchString)) { page = 1; } else { searchString = currentFilter; } ViewBag.CurrentFilter = searchString; var queryModel = new QueryModel <Clinic> { SearchString = searchString, SearchStringFilterProperties = new List <Expression <Func <Clinic, string> > > { x => x.Name, y => y.Name_Ar, z => z.Name_Ku }, OrderBy = x => Lng == Lang.KU ? x.Name_Ku : x.Name_Ar, IsOrderByDesc = sortOrder == "name_desc" ? true : false }; if (hospitalId != null) { queryModel.Predicates.Add(x => x.HospitalId == hospitalId); } var query = _clinicService.DynamicQuery(queryModel); var clinics = query.Select(x => new List { Id = x.Id, Description = Lng == Lang.AR ? x.Description_Ar : Lng == Lang.KU ? x.Description_Ku : x.Description, Name = Lng == Lang.AR ? x.Name_Ar : Lng == Lang.KU ? x.Name_Ku : x.Name, Hospital = x.HospitalId != null ? Lng == Lang.AR ? x.Hospital.Name_Ar : Lng == Lang.KU ? x.Hospital.Name_Ku : x.Hospital.Name : "", Managers = x.ClinicUsers.Where(c => c.IsManager).Select(m => m.Person.FirstName + " " + m.Person.SecondName + " " + m.Person.ThirdName).ToList() }); var pageSize = 10; var pageNumber = (page ?? 1); var result = clinics.ToPagedList(pageNumber, pageSize); return(View(result)); }