/// <summary> /// Used to filter data from database for DataTable /// </summary> /// <param name="filterData"></param> /// <param name="loggedInUserRole"></param> /// <returns></returns> public DataTableFilteredData GetUsersDataTable(UserManagementDataTable filterData, UserRole loggedInUserRole) { var data = new Data.UserMethods().GetUsersDataTable(loggedInUserRole); //Performing filter action var userData = (from e in data where (filterData.Search.Value == null || e.Email.Contains(filterData.Search.Value, StringComparison.OrdinalIgnoreCase) || e.UserName.Contains(filterData.Search.Value, StringComparison.OrdinalIgnoreCase) ) select e); //Sorting var sortingData = filterData.Order.FirstOrDefault(); if (sortingData != null) switch (sortingData.Column) { case 0: userData = sortingData.Dir == "asc" ? userData.OrderBy(m => m.UserName) : userData.OrderByDescending(m => m.UserName); break; case 1: userData = sortingData.Dir == "asc" ? userData.OrderBy(m => m.Email) : userData.OrderByDescending(m => m.Email); break; case 2: userData = sortingData.Dir == "asc" ? userData.OrderBy(m => m.TimeZoneRecords) : userData.OrderByDescending(m => m.TimeZoneRecords); break; } var userModelDataTables = userData as UserModelDataTable[] ?? userData.ToArray(); var userDataFiltering = userModelDataTables.Skip(filterData.Start).Take(filterData.Length); //Creating Table Object var records = userDataFiltering.Select(dataCurrent => new List<string> { dataCurrent.UserName, dataCurrent.Email, Convert.ToString(dataCurrent.TimeZoneRecords),Convert.ToString(dataCurrent.UserId) }).ToList(); // return new DataTableFilteredData { draw = filterData.Draw, recordsFiltered = userModelDataTables.Count(), recordsTotal = data.Count, error = "", data = records }; }
public DataTableFilteredData GetUsersDataTable(UserManagementDataTable filterData) { try { var loggedUserInfo = new UserInformation().GetCurrentUserInformation(); return new Business.UserMethods().GetUsersDataTable(filterData, loggedUserInfo.Role); } catch (Exception ex) { throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.ServiceUnavailable) { Content = new StringContent(string.Format("Service is currently unavailable.")), ReasonPhrase = "Service Unavailable " }); } }