/// <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 }; }
/// <summary> /// Used to get all the Records of the user, If userId==0 then al records to be returned /// </summary> /// <param name="userId"></param> /// <param name="pageNo"></param> /// <param name="records"></param> /// <param name="recordPageNo"></param> /// <returns></returns> public List<UserTimeZoneEntryModel> GetUserTimeZoneInformation(int userId, int pageNo, int records, int recordPageNo, int recordPageEntries, BusinessClasses.UserRole role) { var returnData = new List<UserTimeZoneEntryModel>(); if (userId != 0) { var userInfo = new Data.UserMethods().GetUserInformationBasedOnId(userId); if (userInfo == null) throw new EntryNotFound(); var userRecords = new Data.TimeZoneEntryMethods().GetAllTimeZoneBasedOnId(recordPageNo, recordPageEntries, userId); returnData.Add(new UserTimeZoneEntryModel { UserId = userInfo.UserId, UserName = userInfo.UserName, EmailId = userInfo.Email, TimeZoneEntries = userRecords.Select(m => new TimeZoneEntryModel { UserId = m.UserId, EntryName = m.EntryName, City = m.City, TimeZoneEntryId = m.Id, HourDifference = new TimeSpan(m.Difference).Hours, MinuteDifference = new TimeSpan(m.Difference).Minutes, CurrentTimeCity = DateTime.UtcNow + new TimeSpan(m.Difference) }).ToList() }); } else { returnData = new Data.UserMethods().GetAllUsers(pageNo, records, role).Select(c => new UserTimeZoneEntryModel { EmailId = c.Email, UserId = c.UserId, UserName = c.UserName, TimeZoneEntries = new Data.TimeZoneEntryMethods().GetAllTimeZoneBasedOnId(recordPageNo, recordPageEntries, c.UserId).Select( m => new TimeZoneEntryModel { UserId = m.UserId, EntryName = m.EntryName, City = m.City, TimeZoneEntryId = m.Id, HourDifference = new TimeSpan(m.Difference).Hours, MinuteDifference = new TimeSpan(m.Difference).Minutes, CurrentTimeCity = DateTime.UtcNow + new TimeSpan(m.Difference) }).ToList() }).ToList(); } return returnData; }
/// <summary> /// Used to get user information based on token /// </summary> /// <param name="token"></param> /// <returns></returns> public UserModel GetUserInformationBasedOnToken(string token) { try { var tokenInfo = new Data.TokenMethods().GetTokenInformation(token); if (tokenInfo == null) return null; var userInfo = new Data.UserMethods().GetUserInformationBasedOnId(tokenInfo.UserId); if (userInfo == null) return null; return new UserModel { Email = userInfo.Email, UserId = userInfo.UserId, UserName = userInfo.UserName, Role = userInfo.Role }; } catch (Exception ex) { return null; } }
/// <summary> /// Public constructor. /// </summary> public UserServices() { _userMethod = new Data.UserMethods(); }