public async Task <IActionResult> LoadUsers(DatatableRequest datatable) { var page = datatable.Pagination.Page; var limit = datatable.Pagination.PerPage; var filter = await datatable.Query.Get("filter", () => Task.FromResult <string?>(null), s => string.IsNullOrWhiteSpace(s)?null : s.Trim()); var instances = await _userService.LoadUsersAsync(filter, page, limit); var totalPages = (instances.TotalCount + limit - 1) / limit; var list = instances.Rows.ToList(); var meta = new { page, perpage = limit, pages = totalPages, total = instances.TotalCount }; return(Ok(new { meta, data = list })); }
public ActionResult GetData([FromBody] DatatableRequest request) { if (request.columns != null) { foreach (var column in request.columns) { if (column.search == null) { continue; } switch (column.name) { case "roles": column.search.field = "roles.Select(r=>r.roleId)"; column.search.Operator = FilterOperator.Contains; break; default: column.search.Operator = FilterOperator.Contains; break; } } } DatatableResult <UserGridViewModel> users = _userRepository.GetUserViewModels(request); return(Json(users)); }
public async Task <TResponse <DatatableResponse <UserModel> > > GetByPaging(DatatableRequest request) { try { string username = string.Empty; string order = "Id"; string dir = "desc"; if (request?.Columns != null) { if (request.Columns.Any()) { username = request.Columns[0] .Search?.Value; if (request.Order != null) { if (request.Order.Any()) { order = request.Columns[request.Order[0] .Column] .Data; dir = request.Order[0] .Dir; } } } } int page = 1; int pageSize = 20; if (request?.Start > 0) { page = (request.Start / request.Length) + 1; } string url = BaseUrl + string.Format(ApiUrl.USER_GET_PAGING, username, page, pageSize, order, dir); var response = await HttpService.Send <PageResult <UserModel> >(url, null, HttpMethod.Get); if (response.IsSuccess) { return(await Ok(new DatatableResponse <UserModel> { Draw = request?.Draw ?? 1, RecordsFiltered = response.Data.TotalCount, RecordsTotal = response.Data.TotalCount, Data = response.Data.Data.ToList() })); } return(await Fail <DatatableResponse <UserModel> >(response.Message)); } catch (Exception exception) { return(await Fail <DatatableResponse <UserModel> >(exception)); } }
public DatatableResult <T> GetDatatableResult(DatatableRequest request, Expression <Func <T, bool> > predicate = null, Func <IQueryable <T>, IOrderedQueryable <T> > orderBy = null, Func <IQueryable <T>, IIncludableQueryable <T, object> > include = null, bool disableTracking = true) { IQueryable <T> query = List(predicate, orderBy, include, disableTracking); return(query.ToDatatableResult(request)); }
public async Task <IActionResult> GetList(DatatableRequest request) { var result = await _customerVipService.GetByPaging(request); if (result.IsSuccess) { return(Json(result.Data)); } return(Json(DatatableResponse <GetCustomerVipPagingResponse> .Init(request.Draw))); }
public async Task <IActionResult> GetList(DatatableRequest request) { var result = await _userService.GetByPaging(request); if (result.IsSuccess) { return(Json(result.Data)); } return(null); }
public async Task <IActionResult> GetRole(DatatableRequest request) { var result = await _roleService.GetByUserId(request); if (result.IsSuccess) { return(Json(result.Data)); } return(null); }
public async Task <IActionResult> GetMyResources([FromBody] DatatableRequest datatableRequest) { var subject = User.Claims.First(c => c.Type == ClaimTypes.NameIdentifier).Value; var searchResult = await _resourcesActions.GetCurrentUserResources(new SearchCurrentUserResourceSetParameter { Count = datatableRequest.Length, StartIndex = datatableRequest.Start, Owner = subject }).ConfigureAwait(false); var result = Convert(datatableRequest, _mappinNameToCallback, searchResult); return(new JsonResult(result)); }
private static DatatableResponse Convert(DatatableRequest datatableRequest, Dictionary <string, Func <ResourceSet, string> > mapping, SearchResourceSetResult searchResult) { var response = new DatatableResponse(); var data = new List <List <object> >(); if (searchResult.Content != null) { foreach (var resource in searchResult.Content) { var row = new List <object>(); foreach (var column in datatableRequest.Columns.OrderBy(c => c.Data)) { if (!mapping.ContainsKey(column.Name)) { continue; } row.Add(mapping[column.Name](resource)); } row.Add(resource.Scopes); row.Add(resource.Id); var policies = new List <ResourcePolicyResponse>(); if (resource.AuthPolicies != null) { foreach (var policy in resource.AuthPolicies) { policies.Add(new ResourcePolicyResponse { PolicyId = policy.Id, Permissions = policy.Claims.Select(c => $"{c.Type} : {c.Value}"), Scopes = policy.Scopes }); } } row.Add(policies); data.Add(row); } } return(new DatatableResponse { Draw = datatableRequest.Draw, Data = data, RecordsFiltered = searchResult.TotalResults, RecordsTotal = searchResult.TotalResults }); }
public DatatableResult <UserGridViewModel> GetUserViewModels(DatatableRequest request) { var query = this.All.Select(p => new UserGridViewModel { Id = p.Id, FullName = p.FullName, UserName = p.UserName, Email = p.Email, PhoneNo = p.PhoneNo, ProfileImage = p.ProfileImage, Roles = p.UserRole.Select(r => new UserRoleGridViewModel { RoleId = r.RoleId, RoleName = r.Role.RoleName }) }); return(query.ToDatatableResult(request)); }
public DatatableResult <CustomerViewModel> GetCustomerViewModel(DatatableRequest request) { var query = All.Select(model => new CustomerViewModel() { Id = model.Id, Email = model.Email, FirstName = model.FullName, PhoneNo = model.PhoneNo, Address = model.Address, District = model.District, Province = model.Province, Point = model.TongDiemTichLuy(), TenLoaiKhachHang = "" }); return(query.ToDatatableResult(request)); }
public async Task <ActionResult> GetDataCustomer([FromBody] DatatableRequest request) { if (request.columns != null) { foreach (var column in request.columns) { if (column.search == null) { continue; } switch (column.name) { case "roles": column.search.field = "roles.Select(r=>r.roleId)"; column.search.Operator = FilterOperator.Contains; break; default: column.search.Operator = FilterOperator.Contains; break; } } } var users = _accountRepository.GetCustomerViewModel(request); var listdictrict = await _dictrictRepository.All.ToListAsync(); var listprovince = await _provinceRepository.All.ToListAsync(); var listdiemtichluy = await _diemTichLuy.All.ToListAsync(); foreach (var item in users.data) { item.Address ??= ""; item.District = listdictrict.FirstOrDefault(x => x.Id == item.District)?.Name ?? ""; item.Province = listprovince.FirstOrDefault(x => x.Id == item.Province)?.Name ?? ""; item.Point = listdiemtichluy.Where(x => x.IdKhachHang == item.Id).Sum(x => x.Diem); item.TenLoaiKhachHang = _phanQuyenRepository.All.Include(x => x.Quyen) .FirstOrDefault(x => x.MaTaiKhoan == item.Id) ?.Quyen.TenQuyen; } users.data = users.data.Where(x => x.TenLoaiKhachHang.ToLower().Contains("Khách".ToLower())); return(await Task.Run(() => Json(users))); }
public async Task <IActionResult> GetPendingRequests([FromBody] DatatableRequest datatableRequest) { var subject = User.Claims.First(c => c.Type == ClaimTypes.NameIdentifier).Value; var searchResult = await _pendingRequestsActions.GetPendingRequests(new GetPendingRequestsParameter { Count = datatableRequest.Length, StartIndex = datatableRequest.Start, Subject = subject }).ConfigureAwait(false); var data = new List <List <object> >(); if (searchResult.PendingRequests != null) { foreach (var pendingRequest in searchResult.PendingRequests) { var row = new List <object>(); foreach (var column in datatableRequest.Columns.OrderBy(c => c.Data)) { if (!_mappinNameToCallback.ContainsKey(column.Name)) { continue; } row.Add(_mappinNameToCallback[column.Name](pendingRequest)); } row.Add(pendingRequest.Id); data.Add(row); } } var response = new DatatableResponse { Draw = datatableRequest.Draw, RecordsFiltered = searchResult.TotalResults, RecordsTotal = searchResult.TotalResults, Data = data }; return(new JsonResult(response)); }
public async Task <TResponse <DatatableResponse <RoleModel> > > GetByUserId(DatatableRequest request) { try { int page = 1; int pageSize = 10; if (request?.Start > 0) { page = (request.Start / request.Length) + 1; } int.TryParse(request?.Columns[0] .Search?.Value, out var userId); string url = _baseUrl + string.Format(ApiUrl.ROLE_GET_BY_USER_ID, userId, page, pageSize); var response = await HttpService.Send <PageResult <RoleModel> >(url, null, HttpMethod.Get); if (response.IsSuccess) { return(await Ok(new DatatableResponse <RoleModel> { Draw = request?.Draw ?? 1, RecordsFiltered = response.Data.TotalCount, RecordsTotal = response.Data.TotalCount, Data = response.Data.Data.ToList() })); } return(await Fail <DatatableResponse <RoleModel> >(response.Message)); } catch (Exception exception) { return(await Fail <DatatableResponse <RoleModel> >(exception)); } }
public async Task <TResponse <DatatableResponse <GetCustomerPagingResponse> > > GetByPaging(DatatableRequest request) { try { var code = string.Empty; var name = string.Empty; var provinceId = 0; var districtId = 0; var wardId = 0; var address = string.Empty; var phone = string.Empty; var email = string.Empty; var customerGroupId = 0; var customerVipId = 0; if (request?.Columns != null) { if (request.Columns.Any()) { code = request.Columns[0] .Search?.Value ?? string.Empty; name = request.Columns[1] .Search?.Value ?? string.Empty; var province = request.Columns[2] .Search?.Value ?? string.Empty; var district = request.Columns[3] .Search?.Value ?? string.Empty; var ward = request.Columns[4] .Search?.Value ?? string.Empty; address = request.Columns[5] .Search?.Value ?? string.Empty; phone = request.Columns[6] .Search?.Value ?? string.Empty; email = request.Columns[7] .Search?.Value ?? string.Empty; var customerGroup = request.Columns[8] .Search?.Value ?? string.Empty; var customerVip = request.Columns[9] .Search?.Value ?? string.Empty; if (!string.IsNullOrEmpty(province)) { int.TryParse(province, out provinceId); } if (!string.IsNullOrEmpty(district)) { int.TryParse(district, out districtId); } if (!string.IsNullOrEmpty(ward)) { int.TryParse(ward, out wardId); } if (!string.IsNullOrEmpty(customerGroup)) { int.TryParse(customerGroup, out customerGroupId); } if (!string.IsNullOrEmpty(customerVip)) { int.TryParse(customerVip, out customerVipId); } } } var start = 1; if (request != null) { start = request.Start / request.Length + 1; } var columnOrder = "date_updated"; var sortDir = "DESC"; if (request?.Order != null && request.Order.Any()) { if (request.Columns != null) { columnOrder = request.Columns[request.Order[0] .Column] .Data; sortDir = request.Order[0] .Dir.ToUpper(); } } var url = string.Format(ApiUrl.CUSTOMER_GET_BY_PAGING, code, name, provinceId, districtId, wardId, address, phone, email, customerGroupId, customerVipId, start, request?.Length ?? 10, columnOrder, sortDir); var response = await HttpService.Send <PageResult <GetCustomerPagingResponse> >(url, null, HttpMethod.Get, true); if (response.IsSuccess) { return(await Ok(new DatatableResponse <GetCustomerPagingResponse> { Draw = request?.Draw ?? 1, RecordsFiltered = response.Data.TotalCount, RecordsTotal = response.Data.TotalCount, Data = response.Data.Data.ToList() })); } return(await Fail <DatatableResponse <GetCustomerPagingResponse> >(response.Message)); } catch (Exception exception) { return(await Fail <DatatableResponse <GetCustomerPagingResponse> >(exception)); } }
public async Task <TResponse <DatatableResponse <GetCustomerGroupPagingResponse> > > GetByPaging(DatatableRequest request) { try { var name = string.Empty; if (request?.Columns != null) { if (request.Columns.Any()) { name = request.Columns[0] .Search?.Value ?? string.Empty; } } var start = 1; if (request != null) { start = request.Start / request.Length + 1; } var columnOrder = "name"; var sortDir = "ASC"; if (request?.Order != null && request.Order.Any()) { if (request.Columns != null) { columnOrder = request.Columns[request.Order[0] .Column] .Data; sortDir = request.Order[0] .Dir.ToUpper(); } } var url = string.Format(ApiUrl.CUSTOMER_GROUP_GET_BY_PAGING, name, start, request?.Length ?? 10, columnOrder, sortDir); var response = await HttpService.Send <PageResult <GetCustomerGroupPagingResponse> >(url, null, HttpMethod.Get, true); if (response.IsSuccess) { return(await Ok(new DatatableResponse <GetCustomerGroupPagingResponse> { Draw = request?.Draw ?? 1, RecordsFiltered = response.Data.TotalCount, RecordsTotal = response.Data.TotalCount, Data = response.Data.Data.ToList() })); } return(await Fail <DatatableResponse <GetCustomerGroupPagingResponse> >(response.Message)); } catch (Exception exception) { return(await Fail <DatatableResponse <GetCustomerGroupPagingResponse> >(exception)); } }
public async Task <TResponse <DatatableResponse <GetUserPagingResponse> > > GetByPaging(DatatableRequest request) { try { var code = string.Empty; var fullName = string.Empty; var phoneNumber = string.Empty; var branchId = 0; var departmentId = 0; var roleId = 0; var status = -1; if (request?.Columns != null) { if (request.Columns.Any()) { code = request.Columns[0] .Search?.Value ?? string.Empty; fullName = request.Columns[1] .Search?.Value ?? string.Empty; phoneNumber = request.Columns[2] .Search?.Value ?? string.Empty; int.TryParse(request.Columns[3] .Search?.Value ?? string.Empty, out branchId); int.TryParse(request.Columns[4] .Search?.Value ?? string.Empty, out departmentId); int.TryParse(request.Columns[5] .Search?.Value ?? string.Empty, out roleId); int.TryParse(request.Columns[6] .Search?.Value ?? string.Empty, out status); } } var start = 1; if (request != null) { start = request.Start / request.Length + 1; } var columnOrder = "code"; var sortDir = "ASC"; if (request?.Order != null && request.Order.Any()) { if (request.Columns != null) { columnOrder = request.Columns[request.Order[0] .Column] .Data; sortDir = request.Order[0] .Dir.ToUpper(); } } var url = string.Format(ApiUrl.USER_GET_BY_PAGING, code, fullName, phoneNumber, branchId, departmentId, roleId, status, start, request?.Length ?? 10, columnOrder, sortDir); var response = await HttpService.Send <PageResult <GetUserPagingResponse> >(url, null, HttpMethod.Get, true); if (response.IsSuccess) { return(await Ok(new DatatableResponse <GetUserPagingResponse> { Draw = request?.Draw ?? 1, RecordsFiltered = response.Data.TotalCount, RecordsTotal = response.Data.TotalCount, Data = response.Data.Data.ToList() })); } return(await Fail <DatatableResponse <GetUserPagingResponse> >(response.Message)); } catch (Exception exception) { return(await Fail <DatatableResponse <GetUserPagingResponse> >(exception)); } }
public async Task <TResponse <DatatableResponse <GetCrmPagingResponse> > > GetByPaging(DatatableRequest request) { try { var code = string.Empty; var customerCode = string.Empty; var customerName = string.Empty; var customerPhone = string.Empty; var customerAddress = string.Empty; int provinceId = 0; int districtId = 0; int wardId = 0; int customerGroupId = 0; int customerVipId = 0; int customerSourceId = 0; int productGroupId = 0; int crmStatusId = 0; int crmTypeId = 0; int crmPriorityId = 0; int visit = -1; DateTime?fromDate = null; DateTime?toDate = null; int userCreatedId = 0; DateTime?dateCreated = null; int userCareId = 0; string need = string.Empty; if (request?.Columns != null) { if (request.Columns.Any()) { code = request.Columns[0] .Search?.Value ?? string.Empty; customerCode = request.Columns[1] .Search?.Value ?? string.Empty; customerName = request.Columns[2] .Search?.Value ?? string.Empty; customerPhone = request.Columns[3] .Search?.Value ?? string.Empty; customerAddress = request.Columns[4] .Search?.Value ?? string.Empty; var province = request.Columns[5] .Search?.Value ?? string.Empty; var district = request.Columns[6] .Search?.Value ?? string.Empty; var ward = request.Columns[7] .Search?.Value ?? string.Empty; var customerGroup = request.Columns[8] .Search?.Value ?? string.Empty; var customerVip = request.Columns[9] .Search?.Value ?? string.Empty; var customerSource = request.Columns[10] .Search?.Value ?? string.Empty; var productGroup = request.Columns[11] .Search?.Value ?? string.Empty; var crmStatus = request.Columns[12] .Search?.Value ?? string.Empty; var crmType = request.Columns[13] .Search?.Value ?? string.Empty; var crmPriority = request.Columns[14] .Search?.Value ?? string.Empty; var sVisit = request.Columns[15] .Search?.Value ?? string.Empty; var fromContactDate = request.Columns[16] .Search?.Value ?? string.Empty; var toContactDate = request.Columns[17] .Search?.Value ?? string.Empty; var userCreated = request.Columns[18] .Search?.Value ?? string.Empty; var sDateCreated = request.Columns[19] .Search.Value ?? string.Empty; var userCare = request.Columns[20] .Search.Value ?? string.Empty; need = request.Columns[21] .Search?.Value ?? string.Empty; if (!string.IsNullOrEmpty(province)) { int.TryParse(province, out provinceId); } if (!string.IsNullOrEmpty(district)) { int.TryParse(district, out districtId); } if (!string.IsNullOrEmpty(ward)) { int.TryParse(ward, out wardId); } if (!string.IsNullOrEmpty(customerGroup)) { int.TryParse(customerGroup, out customerGroupId); } if (!string.IsNullOrEmpty(customerVip)) { int.TryParse(customerVip, out customerVipId); } if (!string.IsNullOrEmpty(customerSource)) { int.TryParse(customerSource, out customerSourceId); } if (!string.IsNullOrEmpty(productGroup)) { int.TryParse(productGroup, out productGroupId); } if (!string.IsNullOrEmpty(crmStatus)) { int.TryParse(crmStatus, out crmStatusId); } if (!string.IsNullOrEmpty(crmType)) { int.TryParse(crmType, out crmTypeId); } if (!string.IsNullOrEmpty(crmPriority)) { int.TryParse(crmPriority, out crmPriorityId); } if (!string.IsNullOrEmpty(sVisit)) { int.TryParse(sVisit, out visit); } DateTime tmpDate; if (!string.IsNullOrEmpty(fromContactDate)) { if (DateTime.TryParse(fromContactDate, out tmpDate)) { fromDate = tmpDate; } } if (!string.IsNullOrEmpty(toContactDate)) { if (DateTime.TryParse(toContactDate, out tmpDate)) { toDate = tmpDate; } } if (!string.IsNullOrEmpty(userCreated)) { int.TryParse(userCreated, out userCreatedId); } if (!string.IsNullOrEmpty(sDateCreated)) { if (DateTime.TryParse(sDateCreated, out tmpDate)) { dateCreated = tmpDate; } } if (!string.IsNullOrEmpty(userCare)) { int.TryParse(userCare, out userCareId); } } } var start = 1; if (request != null) { start = request.Start / request.Length + 1; } var url = string.Format(ApiUrl.CRM_GET_BY_PAGING, code, customerCode, customerName, customerPhone, customerAddress, provinceId, districtId, wardId, customerGroupId, customerVipId, customerSourceId, productGroupId, crmStatusId, crmTypeId, crmPriorityId, visit, fromDate, toDate, userCreatedId, dateCreated, userCareId, need, start, request?.Length ?? 10); var response = await HttpService.Send <PageResult <GetCrmPagingResponse> >(url, null, HttpMethod.Get, true); if (response.IsSuccess) { return(await Ok(new DatatableResponse <GetCrmPagingResponse> { Draw = request?.Draw ?? 1, RecordsFiltered = response.Data.TotalCount, RecordsTotal = response.Data.TotalCount, Data = response.Data.Data.ToList() })); } return(await Fail <DatatableResponse <GetCrmPagingResponse> >(response.Message)); } catch (Exception exception) { return(await Fail <DatatableResponse <GetCrmPagingResponse> >(exception)); } }