예제 #1
0
        //[Authorize(Roles = RoleName.Admins)]
        public IActionResult GetUniversities()
        {
            DataTableProperties DTP = DataTableProperties.GetDataTableProperties(Request);

            // Getting all universities list
            List <University> universities = _context.Universities
                                             .Include(a => a.Country)
                                             .ToList();

            // Sorting
            // To use OrderBy by passing strings you must install wilx.System.Linq.Dynamic.Core
            // and must use using System.Linq.Dynamic;
            if (!string.IsNullOrEmpty(DTP.SortColumn) && !string.IsNullOrEmpty(DTP.SortColumnDirection))
            {
                universities = universities.OrderBy(DTP.SortColumn + " " + DTP.SortColumnDirection).ToList();
            }

            // Searching
            if (!string.IsNullOrEmpty(DTP.SearchValue))
            {
                universities = universities.Where(a =>
                                                  a.Id.ToString().ToLower().Contains(DTP.SearchValue.ToLower()) ||
                                                  (a.ArUniversityName != null ? a.ArUniversityName.ToLower().Contains(DTP.SearchValue.ToLower()) : false) ||
                                                  (a.EnUniversityName != null ? a.EnUniversityName.ToLower().Contains(DTP.SearchValue.ToLower()) : false) ||
                                                  (a.Website != null ? a.Website.ToLower().Contains(DTP.SearchValue.ToLower()) : false) ||
                                                  (a.Country != null ? a.Country.ArCountryName.ToLower().Contains(DTP.SearchValue.ToLower()) : false) ||
                                                  (a.Country != null ? a.Country.EnCountryName.ToLower().Contains(DTP.SearchValue.ToLower()) : false) ||
                                                  a.YearofEstablishment.ToString().ToLower().Contains(DTP.SearchValue.ToLower())
                                                  ).ToList();
            }

            // Total number of rows count
            DTP.RecordsTotal = universities.Count();

            // Paging
            universities = universities.Skip(DTP.Skip).Take(DTP.PageSize).ToList();

            List <UniversityDTO> uniDTO = new List <UniversityDTO>();

            foreach (var university in universities)
            {
                uniDTO.Add(new UniversityDTO
                {
                    Id = university.Id,
                    ArUniversityName    = university.ArUniversityName,
                    EnUniversityName    = university.EnUniversityName,
                    Website             = university.Website,
                    LogoHD              = university.LogoHD,
                    YearofEstablishment = university.YearofEstablishment,

                    Country = university.Country.ArCountryName
                });
            }

            // Returning Json Data
            return(Json(new { draw = DTP.Draw, recordsFiltered = DTP.RecordsTotal, recordsTotal = DTP.RecordsTotal, data = uniDTO }));
        }
        public IActionResult GetFaculties()
        {
            DataTableProperties DTP = DataTableProperties.GetDataTableProperties(Request);

            // Getting all faculties list
            List <Faculty> faculties = _context.Faculties
                                       .Include(a => a.City)
                                       .Include(a => a.City.Country)
                                       .Include(a => a.Speciality)
                                       .Include(a => a.University)
                                       .ToList();

            // Sorting
            // To use OrderBy by passing strings you must install wilx.System.Linq.Dynamic.Core
            // and must use using System.Linq.Dynamic;
            if (!string.IsNullOrEmpty(DTP.SortColumn) && !string.IsNullOrEmpty(DTP.SortColumnDirection))
            {
                faculties = faculties.OrderBy(DTP.SortColumn + " " + DTP.SortColumnDirection).ToList();
            }

            // Searching
            if (!string.IsNullOrEmpty(DTP.SearchValue))
            {
                faculties = faculties.Where(a =>
                                            a.Id.ToString().ToLower().Contains(DTP.SearchValue.ToLower()) ||
                                            (a.ArFacultyName != null ? a.ArFacultyName.ToLower().Contains(DTP.SearchValue.ToLower()) : false) ||
                                            (a.EnFacultyName != null ? a.EnFacultyName.ToLower().Contains(DTP.SearchValue.ToLower()) : false) ||
                                            (a.Speciality != null ? a.Speciality.Name.ToLower().Contains(DTP.SearchValue.ToLower()) : false) ||
                                            (a.Speciality != null ? a.Speciality.EnSpecialityName.ToLower().Contains(DTP.SearchValue.ToLower()) : false) ||
                                            (a.City != null ? a.City.ArCityName.ToLower().Contains(DTP.SearchValue.ToLower()) : false) ||
                                            (a.City != null ? a.City.EnCityName.ToLower().Contains(DTP.SearchValue.ToLower()) : false) ||
                                            (a.City != null ? a.City.Country.ArCountryName.ToLower().Contains(DTP.SearchValue.ToLower()) : false) ||
                                            (a.City != null ? a.City.Country.ArCountryName.ToLower().Contains(DTP.SearchValue.ToLower()) : false) ||
                                            (a.University != null ? a.University.ArUniversityName.ToLower().Contains(DTP.SearchValue.ToLower()) : false) ||
                                            (a.University != null ? a.University.EnUniversityName.ToLower().Contains(DTP.SearchValue.ToLower()) : false)
                                            ).ToList();
            }

            // Total number of rows count
            DTP.RecordsTotal = faculties.Count();

            // Paging
            faculties = faculties.Skip(DTP.Skip).Take(DTP.PageSize).ToList();

            List <FacultyDTO> uniDTO = new List <FacultyDTO>();

            foreach (var faculty in faculties)
            {
                uniDTO.Add(new FacultyDTO
                {
                    Id                = faculty.Id,
                    ArFacultyName     = faculty.ArFacultyName,
                    EnFacultyName     = faculty.EnFacultyName,
                    HasPostGraduation = faculty.HasPostGraduation,
                    City              = faculty.City.ArCityName,
                    Speciality        = faculty.Speciality.Name,
                    University        = faculty.University.ArUniversityName
                });
            }

            // Returning Json Data
            return(Json(new { draw = DTP.Draw, recordsFiltered = DTP.RecordsTotal, recordsTotal = DTP.RecordsTotal, data = uniDTO }));
        }