示例#1
0
        public ActionResult Organisations()
        {
            var model = new OrganisationListVM();

            model.Organisations = organisationService.GetOrganisationsForGrid().Select(y =>
                                                                                       new OrganisationGridItemVM()
            {
                Id      = y.Id,
                Name    = y.Name,
                Email   = y.Email,
                Phone   = y.Phone,
                City    = y.City,
                Country = y.Country
            }).ToList();
            return(View(model));
        }
        public IActionResult OrganisationList(string searchString, string OrganisationCategory, string sorting)
        {
            ViewData["fnSortdir"]  = sorting == "Name" ? "Name_desc" : "Name";
            ViewData["idSortdir"]  = sorting == "Id" ? "Id_desc" : "Id";
            ViewData["catSortdir"] = sorting == "Category" ? "Category_desc" : "Category";

            var query = _context.OrganisationDB.AsQueryable();


            if (!string.IsNullOrEmpty(OrganisationCategory))
            {
                query = query.Where(a => a.Category == OrganisationCategory);
            }
            if (!string.IsNullOrEmpty(searchString))
            {
                query = query.Where(a => a.Name.Contains(searchString) || a.Address.Contains(searchString));
            }

            if (!string.IsNullOrEmpty(sorting))
            {
                switch (sorting)
                {
                case "Id":
                    query = query.OrderBy(q => q.OrganisationId);
                    break;

                case "Id_desc":
                    query = query.OrderByDescending(q => q.OrganisationId);
                    break;

                case "Name":
                    query = query.OrderBy(q => q.Name).ThenBy(q => q.Address);
                    break;

                case "Name_desc":
                    query = query.OrderByDescending(q => q.Name).ThenBy(q => q.Address);
                    break;

                case "Category":
                    query = query.OrderBy(q => q.Category).ThenBy(q => q.Name);
                    break;

                case "Category_desc":
                    query = query.OrderByDescending(q => q.Category).ThenBy(q => q.Name);
                    break;

                default:
                    query = query.OrderBy(q => q.OrganisationId);
                    break;
                }
            }



            IQueryable <string> CategoriesQuery = _context.GetAllCategories();



            var OrganisationList = new OrganisationListVM()
            {
                Categories    = new SelectList(CategoriesQuery.Distinct()),
                Organisations = query.ToList()
            };


            return(View(OrganisationList));
        }