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);
        }
Esempio n. 2
0
        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));
        }