public async Task <(OutPagingData, List <OutGetAddressByUserIdForManage>)> GetAddressByUserIdForManageAsync(string UserId, string LangId, string Search, int PageNum, int Take) { try { if (string.IsNullOrWhiteSpace(UserId)) { throw new ArgumentInvalidException($"'{nameof(UserId)}' cannot be null or whitespace."); } if (string.IsNullOrWhiteSpace(LangId)) { throw new ArgumentInvalidException($"'{nameof(LangId)}' cannot be null or whitespace."); } var qData = _AddressRepository.Get .Where(a => a.UserId == Guid.Parse(UserId)) .Select(a => new OutGetAddressByUserIdForManage { Id = a.Id.ToString(), Address = a.tblCountries.tblCountries_Translates.Where(b => b.LangId == Guid.Parse(LangId)).Select(b => b.Title).Single() + "- " + a.tblProvinces.tblProvinces_Translate.Where(b => b.LangId == Guid.Parse(LangId)).Select(b => b.Title).Single() + "- " + a.tblCities.tblCities_Translates.Where(b => b.LangId == Guid.Parse(LangId)).Select(b => b.Title).Single() + "- " + a.District + "- " + _Localizer["Plaque"] + " " + a.Plaque + "- " + _Localizer["Unit"] + " " + a.Unit + "- " + a.FirstName + " " + a.LastName, CountBills = 0, Date = a.Date }) .Where(a => Search != null ? a.Address.Contains(Search) : true) .OrderByDescending(a => a.Date); // صفحه بندی داده ها var qPagingData = PagingData.Calc(await qData.LongCountAsync(), PageNum, Take); return(qPagingData, await qData.Skip((int)qPagingData.Skip).Take(qPagingData.Take).ToListAsync()); } catch (ArgumentInvalidException) { return(null, null); } catch (Exception ex) { _Logger.Error(ex); return(null, null); } }
public async Task <(OutPagingData, List <OutGetListForAdminPage>)> GetListForAdminPageAsync(string Title, int PageNum, int Take) { try { if (PageNum < 1) { throw new ArgumentInvalidException("PageNum < 1"); } if (Take < 1) { throw new ArgumentInvalidException("Take < 1"); } Title = string.IsNullOrWhiteSpace(Title) ? null : Title; // آماده سازی اولیه ی کویری var qData = _AccessLevelRepository.Get.Select(a => new OutGetListForAdminPage { Id = a.Id.ToString(), Name = a.Name, CountUser = a.tblUsers.Count() }) .Where(a => Title != null ? a.Name.Contains(Title) : true) .OrderBy(a => a.Name); // صفحه بندی داده ها var qPagingData = PagingData.Calc(await qData.LongCountAsync(), PageNum, Take); return(qPagingData, await qData.Skip((int)qPagingData.Skip).Take(qPagingData.Take).ToListAsync()); } catch (ArgumentInvalidException ex) { return(null, null); } catch (Exception ex) { _Logger.Error(ex); return(null, null); } }
GetListForAdminPageAsync(string title, int pageNum, int take) { try { if (pageNum < 1) { throw new Exception("PageNum < 1"); } if (take < 1) { throw new Exception("Take < 1"); } title = string.IsNullOrWhiteSpace(title) ? null : title; // آماده سازی اولیه ی کویری var qData = _accessLevelRepository.Get.Select(a => new OutGetListForAdminPage { Id = a.Id.ToString(), Name = a.Name, CountUser = a.TblUsers.Count() }) //.Where(a => title != null ? a.Name.Contains(title) : true) //بهینه شده این خط در خط پایین هست .Where(a => title == null || a.Name.Contains(title)) .OrderBy(a => a.Name); // صفحه بندی داده ها var qPagingData = PagingData.Calc(await qData.LongCountAsync(), pageNum, take); return(qPagingData, await qData.Skip((int)qPagingData.Skip).Take(qPagingData.Take).ToListAsync()); } catch (Exception ex) { _logger.Error(ex); return(null, null); } }
public async Task <(OutPagingData, List <OutGetListForAdminPage>)> GetListForAdminPageAsync(string Email, string PhoneNumber, string FullName, string Sort, int PageNum, int Take) { try { if (PageNum < 1) { throw new ArgumentInvalidException("PageNum < 1"); } if (Take < 1) { throw new ArgumentInvalidException("Take < 1"); } Email = string.IsNullOrWhiteSpace(Email) ? null : Email; PhoneNumber = string.IsNullOrWhiteSpace(PhoneNumber) ? null : PhoneNumber; FullName = string.IsNullOrWhiteSpace(FullName) ? null : FullName; // آماده سازی اولیه ی کویری var qData = _UserRepository.Get .Select(a => new OutGetListForAdminPage { Id = a.Id.ToString(), AccessLevelId = a.AccessLevelId.ToString(), FullName = a.FirstName + " " + a.LastName, Email = a.Email, PhoneNumber = a.PhoneNumber, AccessLevelName = a.tblAccessLevels.Name, Date = a.Date, IsActive = a.IsActive, IsEmailConfirmed = a.EmailConfirmed, IsPhoneNumberConfirmed = a.PhoneNumberConfirmed }) .Where(a => FullName != null ? a.FullName.Contains(FullName) : true) .Where(a => Email != null ? a.Email.Contains(Email) : true) .Where(a => PhoneNumber != null ? a.PhoneNumber.Contains(PhoneNumber) : true) .OrderByDescending(a => a.Date); #region مرتب سازی if (Sort != null) { switch (Sort.ToLower()) { case "fullnamedes": { qData = qData.OrderByDescending(a => a.FullName); break; } case "fullnameaes": { qData = qData.OrderBy(a => a.FullName); break; } case "emaildes": { qData = qData.OrderByDescending(a => a.Email); break; } case "emailaes": { qData = qData.OrderBy(a => a.Email); break; } case "isactivedes": { qData = qData.OrderByDescending(a => a.IsActive); break; } case "isactiveaes": { qData = qData.OrderBy(a => a.IsActive); break; } case "dateaes": { qData = qData.OrderByDescending(a => a.Date); break; } case "datedes": { qData = qData.OrderBy(a => a.Date); break; } case "confirmaccountdes": { qData = qData.OrderByDescending(a => a.IsEmailConfirmed); break; } case "confirmaccountaes": { qData = qData.OrderBy(a => a.IsEmailConfirmed); break; } case "confirmphonenumberdes": { qData = qData.OrderByDescending(a => a.IsPhoneNumberConfirmed); break; } case "confirmphonenumberAes": { qData = qData.OrderBy(a => a.IsPhoneNumberConfirmed); break; } default: { qData = qData.OrderByDescending(a => a.Date); break; } } } #endregion // صفحه بندی داده ها var qPagingData = PagingData.Calc(await qData.LongCountAsync(), PageNum, Take); return(qPagingData, await qData.Skip((int)qPagingData.Skip).Take(qPagingData.Take).ToListAsync()); } catch (ArgumentInvalidException) { return(null, null); } catch (Exception ex) { _Logger.Error(ex); return(null, null); } }