public Result <DataTableResult <InviteTableModel> > Get(DataTableRequest dataTableRequest) { ValidationResult validationResult = _dataTableValidator.Validate(dataTableRequest); if (!validationResult.IsValid) { _logger.LogWarning($"Invalid {nameof(DataTableRequest)} model"); return(Result.Fail <DataTableResult <InviteTableModel> >(validationResult.Errors)); } PaginationSpecification <InviteEntity, InviteTableModel> paginationSpecification = new PaginationSpecification <InviteEntity, InviteTableModel>(); if (!string.IsNullOrEmpty(dataTableRequest.Search)) { paginationSpecification.AddFilter(x => x.Email.ToUpper().Contains(dataTableRequest.Search.ToUpper())); } paginationSpecification.AddSelect(x => new InviteTableModel( x.Id, x.Email, x.Status.ToString(), x.Role.Name, x.Group.Name, x.GroupRole.Name, x.ExpiresAt.ToString(DateTimeFormats.DEFAULT_DATE_TIME_FORMAT))); paginationSpecification.AppalyPaging(dataTableRequest.Start, dataTableRequest.Length); PaginatedData <InviteTableModel> paginatedData = _inviteRepository.GetPaginated(paginationSpecification); DataTableResult <InviteTableModel> dataTableResult = new DataTableResult <InviteTableModel>( draw: dataTableRequest.Draw, recordsTotal: paginatedData.Count, recordsFilterd: paginatedData.Count, error: null, data: paginatedData.Data); return(Result.Ok(dataTableResult)); }
public Result <DataTableResult <GroupUserTableModel> > Get(string id, DataTableRequest dataTableRequest) { ValidationResult validationResult = _dataTableValidator.Validate(dataTableRequest); if (!validationResult.IsValid) { _logger.LogWarning($"Invalid DataTableRequest model"); return(Result.Fail <DataTableResult <GroupUserTableModel> >(validationResult.Errors)); } PaginationSpecification <GroupUserEntity, GroupUserTableModel> paginationSpecification = new PaginationSpecification <GroupUserEntity, GroupUserTableModel>(); paginationSpecification.AddFilter(x => x.GroupId == id); if (!string.IsNullOrEmpty(dataTableRequest.Search)) { paginationSpecification.AddFilter(x => x.User.NormalizedUserName.Contains(dataTableRequest.Search.ToUpper())); } paginationSpecification.AddSelect(x => new GroupUserTableModel( x.Id, x.User.Id, x.User.UserName, x.Role.Id, x.Role.Name)); paginationSpecification.AppalyPaging(dataTableRequest.Start, dataTableRequest.Length); PaginatedData <GroupUserTableModel> paginatedData = _groupUserRepository.GetPaginated(paginationSpecification); DataTableResult <GroupUserTableModel> dataTableResult = new DataTableResult <GroupUserTableModel>( draw: dataTableRequest.Draw, recordsTotal: paginatedData.Count, recordsFilterd: paginatedData.Count, error: null, data: paginatedData.Data); return(Result.Ok(dataTableResult)); }
public async Task <IActionResult> GetDataTable(string api) { var model = this.MapParameterModel(this.HttpContext); var setting = new JsonSerializerSettings() { Culture = CultureInfo.CurrentCulture, DateFormatHandling = DateFormatHandling.MicrosoftDateFormat, DateFormatString = "dd/MM/yyyy" }; var dataTableResult = new DataTableResult(); var url = api.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries).Count() > 1 ? api : api + "/datatable"; var apiResponse = await this.HttpClient.GetPaggedListAsync(url, JsonConvert.SerializeObject(model)); if (apiResponse.Status) { dataTableResult = JsonConvert.DeserializeObject <DataTableResult>(apiResponse.Response); } return(this.Json(dataTableResult, setting)); }
public ActionResult RelatorioAtividadeEstoquePageData(DataTableFilter <RelatorioAtividadeEstoqueFilterViewModel> model) { var filtro = Mapper.Map <DataTableFilter <AtividadeEstoqueListaFiltro> >(model); filtro.CustomFilter.IdEmpresa = IdEmpresa; var result = _uow.AtividadeEstoqueRepository.PesquisarPageData(filtro, out int registrosFiltrados, out int totalRegistros); var list = new List <RelatorioAtividadeEstoqueListItemViewModel>(); List <UsuarioEmpresa> usuarios = _uow.UsuarioEmpresaRepository.ObterPorEmpresa(IdEmpresa); foreach (var item in result) { list.Add(new RelatorioAtividadeEstoqueListItemViewModel() { CodigoEndereco = item.CodigoEndereco, DataSolicitacao = item.DataSolicitacao.HasValue ? item.DataSolicitacao.Value.ToString("dd/MM/yyyy") : "", DataExecucao = item.DataExecucao.HasValue ? item.DataExecucao.Value.ToString("dd/MM/yyyy") : "", DescricaoProduto = item.DescricaoProduto, ReferenciaProduto = item.ReferenciaProduto, Finalizado = item.Finalizado ? "Sim" : "Não", QuantidadeInicial = item.QuantidadeInicial.HasValue ? item.QuantidadeInicial.ToString() : "", QuantidadeFinal = item.QuantidadeFinal.HasValue ? item.QuantidadeFinal.ToString() : "", TipoAtividade = item.TipoAtividade, UsuarioExecucao = usuarios.Where(x => x.UserId.Equals(item.UsuarioExecucao)).FirstOrDefault()?.PerfilUsuario.Nome, }); } return(DataTableResult.FromModel(new DataTableResponseModel { Draw = model.Draw, RecordsTotal = totalRegistros, RecordsFiltered = registrosFiltrados, Data = list })); }
public ActionResult RelatorioPosicaoInventarioPageData(DataTableFilter <RelatorioPosicaoInventarioFilterViewModel> model) { var list = new List <RelatorioPosicaoInventarioListItemViewModel>(); if (!model.CustomFilter.IdNivelArmazenagem.HasValue && !model.CustomFilter.IdPontoArmazenagem.HasValue && !model.CustomFilter.IdProduto.HasValue) { return(DataTableResult.FromModel(new DataTableResponseModel { Draw = model.Draw, RecordsTotal = 0, RecordsFiltered = 0, Data = list })); } var filtro = Mapper.Map <DataTableFilter <RelatorioPosicaoInventarioListaFiltro> >(model); filtro.CustomFilter.IdEmpresa = IdEmpresa; var loteProdutoEnderecos = _uow.LoteProdutoEnderecoRepository.BuscarDadosPosicaoInventario(filtro, out int totalRecordsFiltered, out int totalRecords); loteProdutoEnderecos.OrderBy(x => x.Referencia).ThenBy(x => x.Codigo).ForEach(lpe => list.Add(new RelatorioPosicaoInventarioListItemViewModel { Codigo = lpe.Codigo, IdLote = lpe.IdLote != null ? lpe.IdLote.ToString() : "-", QuantidadeProdutoPorEndereco = lpe.QuantidadeProdutoPorEndereco.ToString(), Referencia = string.Concat(lpe.Referencia, " - ", lpe.DescricaoProduto) })); return(DataTableResult.FromModel(new DataTableResponseModel { Draw = model.Draw, RecordsTotal = totalRecords, RecordsFiltered = totalRecordsFiltered, Data = list })); }
public void ExecuteResult_Ok() { //Arrange var data = new List <List <string> >() { new List <string> { "hallo", "österreich" } }; var httpRequest = new Mock <HttpRequestBase>(); httpRequest.Setup(h => h.HttpMethod) .Returns("POST"); var httpResponse = new Mock <HttpResponseBase>(); httpResponse.Setup(x => x.ContentEncoding) .Returns(Encoding.UTF8); string result = string.Empty; httpResponse.Setup(x => x.Write(It.IsAny <string>())) .Callback((string s) => result = s); var httpContext = new Mock <HttpContextBase>(); httpContext.Setup(h => h.Request) .Returns(httpRequest.Object); httpContext.Setup(h => h.Response) .Returns(httpResponse.Object); DataTableResult dataTableResult = new DataTableResult("1", 10, 10, data); //Act dataTableResult.ExecuteResult(new ControllerContext { HttpContext = httpContext.Object }); //Assert Assert.AreEqual(@"{""aaData"":[[""hallo"",""österreich""]],""iTotalDisplayRecords"":10,""iTotalRecords"":10,""sColumns"":null}", result); }
public async Task <Result <DataTableResult <GroupAttributeTableModel> > > Get(string groupId, DataTableRequest dataTableRequest) { ValidationResult validationResult = _dataTableValidator.Validate(dataTableRequest); if (!validationResult.IsValid) { _logger.LogWarning($"Invalid {nameof(dataTableRequest)} model"); return(Result.Fail <DataTableResult <GroupAttributeTableModel> >(validationResult.ToResultError())); } ISelectSpecificationBuilder <GroupAttributeEntity, GroupAttributeTableModel> specificationBuilder = SpecificationBuilder .Create <GroupAttributeEntity>() .Where(x => x.GroupId == groupId) .SearchByKey(dataTableRequest.Search) .OrderByDessending(x => x._CreatedDate) .Select(x => new GroupAttributeTableModel( x.Id, x.Key, x.Value)); IBaseSpecification <GroupAttributeEntity, GroupAttributeTableModel> countSpecification = specificationBuilder.Build(); IBaseSpecification <GroupAttributeEntity, GroupAttributeTableModel> dataSpecification = specificationBuilder .Paginate(dataTableRequest.Start, dataTableRequest.Length) .Build(); int count = await _groupAttributeDAO.Count(countSpecification); List <GroupAttributeTableModel> data = await _groupAttributeDAO.Get(countSpecification); DataTableResult <GroupAttributeTableModel> dataTableResult = new DataTableResult <GroupAttributeTableModel>( draw: dataTableRequest.Draw, recordsTotal: count, recordsFiltered: count, data: data); return(Result.Ok(dataTableResult)); }
public Result <DataTableResult <RoleListViewModel> > GetAll(DataTableRequest request) { ValidationResult validationResult = _dataTableValidator.Validate(request); if (!validationResult.IsValid) { _logger.LogWarning($"Invalid DataTableRequest model"); return(Result.Fail <DataTableResult <RoleListViewModel> >(ResultUtils.ToResultError(validationResult.Errors.ToList()))); } PaginationSpecification <RoleEntity, RoleListViewModel> baseSpecification = new PaginationSpecification <RoleEntity, RoleListViewModel>(); if (!string.IsNullOrEmpty(request.Search)) { string search = request.Search.ToUpper(); baseSpecification.AddFilter(x => x.Id.ToUpper().Contains(search) || x.Name.ToUpper().Contains(search)); } baseSpecification.AppalyPaging(request.Start, request.Length); baseSpecification.AddSelect(x => new RoleListViewModel( x.Id, x.Name)); PaginatedData <RoleListViewModel> pagedResult = _roleRepository.GetPaginated(baseSpecification); DataTableResult <RoleListViewModel> result = new DataTableResult <RoleListViewModel>( draw: request.Draw, recordsTotal: pagedResult.Count, recordsFilterd: pagedResult.Count, error: null, data: pagedResult.Data); return(Result.Ok(result)); }
public Result <DataTableResult <RoleListViewModel> > GetRoles(string id, DataTableRequest dataTableRequest) { ValidationResult validationResult = _dataTableValidator.Validate(dataTableRequest); if (!validationResult.IsValid) { _logger.LogWarning($"Invalid {nameof(DataTableRequest)} model"); return(Result.Fail <DataTableResult <RoleListViewModel> >(validationResult.Errors)); } PaginationSpecification <PermissionRoleEntity, RoleListViewModel> paginationSpecification = new PaginationSpecification <PermissionRoleEntity, RoleListViewModel>(); paginationSpecification.AddFilter(x => x.PermissionId == id); if (!string.IsNullOrEmpty(dataTableRequest.Search)) { paginationSpecification.AddFilter(x => x.Role.NormalizedName.Contains(dataTableRequest.Search.ToUpper())); } paginationSpecification.AddSelect(x => new RoleListViewModel( x.RoleId, x.Role.Name, x.Role.Type.ToString())); paginationSpecification.AppalyPaging(dataTableRequest.Start, dataTableRequest.Length); PaginatedData <RoleListViewModel> paginatedData = _permissionRoleRepository.GetPaginated(paginationSpecification); DataTableResult <RoleListViewModel> dataTableResult = new DataTableResult <RoleListViewModel>( draw: dataTableRequest.Draw, recordsTotal: paginatedData.Count, recordsFilterd: paginatedData.Count, error: null, data: paginatedData.Data); return(Result.Ok(dataTableResult)); }
public ActionResult RelatorioLoteMovimentacaoPageData(DataTableFilter <RelatorioLoteMovimentacaoFilterViewModel> model) { var filtro = Mapper.Map <DataTableFilter <LoteMovimentacaoListaFiltro> >(model); filtro.CustomFilter.IdEmpresa = IdEmpresa; var result = _uow.LoteMovimentacaoRepository.Consultar(filtro, out int registrosFiltrados, out int totalRegistros); var list = new List <RelatorioLoteMovimentacaoListItemViewModel>(); List <UsuarioEmpresa> usuarios = _uow.UsuarioEmpresaRepository.ObterPorEmpresa(IdEmpresa); foreach (var item in result) { list.Add(new RelatorioLoteMovimentacaoListItemViewModel() { IdProduto = item.IdProduto, IdLote = item.IdLote, ReferenciaProduto = item.ReferenciaProduto, DescricaoProduto = item.DescricaoProduto, UsuarioMovimentacao = usuarios.Where(x => x.UserId.Equals(item.IdUsuarioMovimentacao)).FirstOrDefault()?.PerfilUsuario.Nome, Tipo = item.Tipo.ToString(), Endereco = item.Endereco, Quantidade = item.Quantidade.ToString(), DataHora = item.DataHora.ToString("dd/MM/yyyy hh:mm:ss"), NroVolume = item.NroVolume.HasValue ? item.NroVolume.ToString() : string.Empty }); } return(DataTableResult.FromModel(new DataTableResponseModel { Draw = model.Draw, RecordsTotal = totalRegistros, RecordsFiltered = registrosFiltrados, Data = list })); }
public ActionResult RelatorioLogisticaCorredorPageData(DataTableFilter <RelatorioLogisticaCorredorFilterViewModel> model) { var filtro = Mapper.Map <DataTableFilter <RelatorioLogisticaCorredorListaFiltro> >(model); filtro.CustomFilter.IdEmpresa = IdEmpresa; var produtos = _uow.LoteProdutoEnderecoRepository.BuscarDadosLogisticaCorredor(filtro, out int totalRecordsFiltered, out int totalRecords); var list = new List <RelatorioLogisticaCorredorListItemViewModel>(); produtos.ForEach(lpe => list.Add(new RelatorioLogisticaCorredorListItemViewModel { Altura = lpe.Produto.Altura?.ToString("n2") ?? "-", Codigo = lpe.EnderecoArmazenagem.Codigo ?? "-", Referencia = lpe.Produto.Referencia ?? "-", Tipo = lpe.Produto.UnidadeMedida.Sigla ?? "-", Descricao = lpe.Produto.Descricao ?? "-", Saldo = lpe.ProdutoEstoque?.Saldo.ToString() ?? "-", Cubagem = lpe.Produto.MetroCubico.ToString() ?? "-", Largura = lpe.Produto.Largura?.ToString("n2") ?? "-", Comprimento = lpe.Produto.Comprimento?.ToString("n2") ?? "-", DtRepo = null, DuraDD = null, GiroDD = null, Giro6m = null, ItLoc = null })); return(DataTableResult.FromModel(new DataTableResponseModel { Draw = model.Draw, RecordsTotal = totalRecords, RecordsFiltered = totalRecordsFiltered, Data = list })); }
/// <summary> /// To the pagged list asynchronous. /// </summary> /// <typeparam name="TEntity">The type of the entity.</typeparam> /// <param name="query">The query.</param> /// <param name="model">The model.</param> /// <returns>ToPaggedListAsync</returns> public async Task <DataTableResult> ToPaggedListAsync <TEntity>(IQueryable <TEntity> query, DataTableParameter model) where TEntity : class { DataTableResult dt = new DataTableResult(); foreach (var item in model.Columns) { var col = item.Data; if (!string.IsNullOrEmpty(item.Search.Value)) { string spliter = "@#$"; var values = item.Search.Value.Split(new string[] { spliter }, StringSplitOptions.RemoveEmptyEntries).ToList(); if (!string.IsNullOrEmpty(item.Name)) { var names = item.Name.Split(new string[] { spliter }, StringSplitOptions.RemoveEmptyEntries).ToList(); for (int i = 0; i < values.Count; i++) { var value = values[i]; var colType = this.GetColumnType <TEntity>(col); var searchType = names[i]; switch (colType) { case "int": case "int64": query = this.WhereHelper <TEntity>(query, col, Convert.ToInt32(value), searchType); break; case "short": query = this.WhereHelper <TEntity>(query, col, Convert.ToInt32(value), searchType); break; case "decimal": query = this.WhereHelper <TEntity>(query, col, Convert.ToDecimal(value), searchType); break; case "datetime": var searchDate = Convert.ToDateTime(value); if (Convert.ToDateTime(value).TimeOfDay == System.TimeSpan.FromSeconds(0) && searchType == "<=") { searchDate = searchDate.AddHours(23).AddMinutes(59).AddSeconds(59); } query = this.WhereHelper <TEntity>(query, col, searchDate, searchType); break; case "bool": query = this.WhereHelper <TEntity>(query, col, Convert.ToBoolean(value), searchType); break; case "string": query = this.WhereHelper <TEntity>(query, col, value, searchType, false); break; } } } } } ParameterExpression[] typeParams = new ParameterExpression[] { Expression.Parameter(typeof(TEntity), string.Empty) }; if (model.Order.Count() > 0) { var orderByField = model.Columns.ToList()[model.Order.FirstOrDefault().Column].Data; System.Reflection.PropertyInfo pi = typeof(TEntity).GetProperty(orderByField); if (pi == null) { pi = typeof(TEntity).GetProperty(model.Columns.FirstOrDefault(m => m.Data != string.Empty).Data); } query = query.Provider.CreateQuery <TEntity>(Expression.Call(typeof(Queryable), model.Order.FirstOrDefault().Dir == "asc" ? "OrderBy" : "OrderByDescending", new Type[] { typeof(TEntity), pi.PropertyType }, query.Expression, Expression.Lambda(Expression.Property(typeParams[0], pi), typeParams))); } try { if (model.Length == -1) { dt.Data = (await query.ToListAsync()).ToList <object>(); } else { dt.Data = (await query.Skip(model.Start).Take(model.Length).ToListAsync()).ToList <object>(); } dt.RecordsTotal = await query.CountAsync(); dt.RecordsFiltered = dt.RecordsTotal; dt.Draw = model.Draw; } catch (Exception ex) { throw ex; } return(dt); }
public async Task <Result <DataTableResult <GroupAdminAuditTableModel> > > Get( string groupId, DataTableRequest dataTableRequest, GroupAdminAuditTableRequest auditTableRequest) { ValidationResult dataTableValidationResult = _dataTableRequestValidator.Validate(dataTableRequest); if (!dataTableValidationResult.IsValid) { _logger.LogWarning($"Invalid {nameof(DataTableRequest)} model"); return(Result.Fail <DataTableResult <GroupAdminAuditTableModel> >(dataTableValidationResult.ToResultError())); } if (auditTableRequest == null) { _logger.LogWarning($"AuditTable request can not be null"); return(Result.Fail <DataTableResult <GroupAdminAuditTableModel> >("can_not_be_null", "Can not be null")); } ValidationResult auditTableRequestValidationResult = _auditTableRequestValidator.Validate(auditTableRequest); if (!auditTableRequestValidationResult.IsValid) { _logger.LogWarning($"Invalid {nameof(GroupAdminAuditTableRequest)} model"); return(Result.Fail <DataTableResult <GroupAdminAuditTableModel> >(auditTableRequestValidationResult.ToResultError())); } IBaseSpecificationBuilder <AuditEntity> baseSpecification = SpecificationBuilder .Create <AuditEntity>() .WithActionType(auditTableRequest.ActionType) .WithObjectType(auditTableRequest.ObjectType) .WithObjectIdentifier(auditTableRequest.ObjectIdentifier) .WithSubjectType(auditTableRequest.SubjectType) .WithSubjectIdentifier(auditTableRequest.SubjectIdentifier) .WithResourceName(auditTableRequest.ResourceName) .InRange(auditTableRequest.From, auditTableRequest.To) .WithGroupIdentifier(groupId); IBaseSpecification <AuditEntity, GroupAdminAuditTableModel> selectSpecification = baseSpecification .OrderBy(x => x.Created, auditTableRequest.OrderBy.Value) .Paginate(dataTableRequest.Start, dataTableRequest.Length) .Select(x => new GroupAdminAuditTableModel( x.Id, x.ActionType.GetDescription(), x.ObjectType, x.ResourceName, x.SubjectType.GetDescription(), x.SubjectIdentifier, x.Created.ToString("o"))) .Build(); int auditCount = await _auditDAO.Count(baseSpecification.Build()); List <GroupAdminAuditTableModel> audits = await _auditDAO.Get(selectSpecification); DataTableResult <GroupAdminAuditTableModel> dataTableResult = new DataTableResult <GroupAdminAuditTableModel>( draw: dataTableRequest.Draw, recordsTotal: auditCount, recordsFiltered: auditCount, data: audits); return(Result.Ok(dataTableResult)); }
/// <summary> /// Retrieves all Hub projects with the Fundraising Flag set to true. /// </summary> /// <returns>DataTable Search Result Object</returns> public DataTableResult<FundraisingMenuResult> GetAllFundraisingMenuProjects() { DataTableResult<FundraisingMenuResult> result = new DataTableResult<FundraisingMenuResult>(); using (CIHEntities _cihContext = new CIHEntities()) { // Get data. result.data = _cihContext.CihProject.ToList() .Where(p => p.FundraisingFlag != null && p.FundraisingFlag == true) .Select(p => GetResult(p)) .ToList(); return result; } }
/// <summary> /// Web Service to process requests from the Enrollment Site DataTable /// </summary> /// <param name="draw">Automatically posted by JQuery DataTables: count of the number of times this table has been drawn.</param> /// <param name="start">Automatically posted by JQuery DataTables: the starting index of the current result set.</param> /// <param name="length">Automatically posted by JQuery DataTables: the number of rows displayed by the table.</param> /// <param name="searchValue">Automatically posted by JQuery DataTables: </param> /// <param name="searchRegex">Automatically posted by JQuery DataTables: </param> /// <param name="order">Automatically posted by JQuery DataTables: </param> /// <returns>String formatted for JQuery DataTables.</returns> public string DataTableJurisdiction(int draw, int start, int length, string searchValue, string searchRegex, string order) { // Initialize the DataTable response (later transformed to JSON) DataTableResult dtr = new DataTableResult() { draw = draw, recordsTotal = 1, recordsFiltered = 1, data = new List <string[]>(), error = String.Empty }; var sJurisdiction = Request.Params["columns[1][search][value]"]; var sUnit = Request.Params["columns[2][search][value]"]; int iniIndex = start; int noDsplyRecs = length; int jurisdiction = -1; bool haveUnit = false; bool haveJurisdiction = false; if (int.TryParse(sJurisdiction, out jurisdiction)) { haveJurisdiction = true; } if (!string.IsNullOrEmpty(sUnit)) { haveUnit = true; } var context = DataContext.getUasDbContext(); var query = (from gr in context.uas_Group join e in context.uas_Group on gr.ParentGroupId equals e.GroupID into eg // left join uas_Group from elj in (from g in eg select new { g.GroupID, g.GroupName } ).DefaultIfEmpty() where gr.GroupTypeID == 194 && (haveJurisdiction == false || gr.GroupID == jurisdiction) && (haveUnit == false || elj.GroupName.StartsWith(sUnit)) orderby gr.GroupName let Unit = elj.GroupName select new { gr.GroupID, gr.GroupName, Unit }).ToList(); if (Request.Params["order[0][column]"] != null) { int orderColumnIndex = Convert.ToInt32(Request.Params["order[0][column]"]); bool descending = Request.Params["order[0][dir]"] == "desc"; query = query.OrderBy(row => GetJurisdictionSort(row, orderColumnIndex)).ToList(); if (descending) { query.Reverse(); } } var jurisdicions = query.Skip(iniIndex).Take(noDsplyRecs); dtr.recordsTotal = dtr.recordsFiltered = query.Count(); var data = from j in jurisdicions select new List <String> { "<a href=\"/AdapCa/EditJurisdiction?id=" + j.GroupID + "\"><i class=\"glyphicon glyphicon-edit\"></i></a>", j.GroupName, j.Unit }; dtr.data = (from s in data select s.ToArray()).ToList(); fastJSON.JSONParameters param = new fastJSON.JSONParameters(); param.EnableAnonymousTypes = true; var result = fastJSON.JSON.ToJSON(dtr, param); return(result); }
/// <summary> /// Web Service to process requests from the Enrollment Site DataTable /// </summary> /// <param name="draw">Automatically posted by JQuery DataTables: count of the number of times this table has been drawn.</param> /// <param name="start">Automatically posted by JQuery DataTables: the starting index of the current result set.</param> /// <param name="length">Automatically posted by JQuery DataTables: the number of rows displayed by the table.</param> /// <param name="searchValue">Automatically posted by JQuery DataTables: </param> /// <param name="searchRegex">Automatically posted by JQuery DataTables: </param> /// <param name="order">Automatically posted by JQuery DataTables: </param> /// <returns>String formatted for JQuery DataTables.</returns> public string DataTableEnrollmentSite(int draw, int start, int length, string searchValue, string searchRegex, string order) { // Initialize the DataTable response (later transformed to JSON) DataTableResult dtr = new DataTableResult() { draw = draw, recordsTotal = 1, recordsFiltered = 1, data = new List <string[]>(), error = String.Empty }; var sUnit = Request.Params["columns[1][search][value]"]; var sSiteName = Request.Params["columns[2][search][value]"]; int iniIndex = start; int noDsplyRecs = length; var context = DataContext.getUasDbContext(); IEnumerable <vEnrollmentSite> query = (from v in context.vEnrollmentSites where (string.IsNullOrEmpty(sUnit) || v.Jurisdiction.Contains(sUnit)) && (string.IsNullOrEmpty(sSiteName) || v.Enrollment_Site.Contains(sSiteName)) select v).ToList(); if (Request.Params["order[0][column]"] != null) { int orderColumnIndex = Convert.ToInt32(Request.Params["order[0][column]"]); bool descending = Request.Params["order[0][dir]"] == "desc"; query = query.OrderBy(row => GetEnrollmentSiteSort(row, orderColumnIndex)); if (descending) { query = query.Reverse(); } } else { query = query.OrderBy(x => x.Site__).ToList(); } var sites = query.Skip(iniIndex).Take(noDsplyRecs).ToList(); dtr.recordsTotal = dtr.recordsFiltered = query.Count(); var data = from v in sites select new List <string> { "<a href=\"/AdapCa/EditEnrollmentSite?id=" + v.GroupId + "\"><i class=\"glyphicon glyphicon-edit\"></i></a>", v.Jurisdiction, v.Site__, v.Restrictions, v.Enrollment_Site, v.Address, v.Telephone, v.Contact }; dtr.data = (from s in data select s.ToArray()).ToList(); fastJSON.JSONParameters param = new fastJSON.JSONParameters(); param.EnableAnonymousTypes = true; var result = fastJSON.JSON.ToJSON(dtr, param); return(result); }
/// <summary> /// Web Service to process requests from the ADAP Clinic Admin DataTable /// </summary> /// <param name="draw">Automatically posted by JQuery DataTables: count of the number of times this table has been drawn.</param> /// <param name="start">Automatically posted by JQuery DataTables: the starting index of the current result set.</param> /// <param name="length">Automatically posted by JQuery DataTables: the number of rows displayed by the table.</param> /// <param name="searchValue">Automatically posted by JQuery DataTables: </param> /// <param name="searchRegex">Automatically posted by JQuery DataTables: </param> /// <param name="order">Automatically posted by JQuery DataTables: </param> /// <returns>String formatted for JQuery DataTables.</returns> public string DataTableClinicList(int draw, int start, int length, string searchValue, string searchRegex, string order) { string result = String.Empty; Debug.WriteLine("Adap Controller ClinicList draw:" + draw.ToString()); Debug.WriteLine("Adap Controller ClinicList start:" + start.ToString()); Debug.WriteLine("Adap Controller ClinicList searchValue:" + searchValue); Debug.WriteLine("Adap Controller ClinicList searchRegex:" + searchRegex); Debug.WriteLine("Adap Controller ClinicList order:" + order); // Lists all the Request parameters foreach (string s in Request.Params.Keys) { Debug.WriteLine(s.ToString() + ":" + Request.Params[s]); } try { // Initialize the DataTable response (later transformed to JSON) DataTableResult dtr = new DataTableResult() { draw = draw, recordsTotal = 1, recordsFiltered = 1, data = new List <string[]>(), error = String.Empty }; // How to find Enterprise ID and Form ID? Values currently hardcoded to populate Data Table. //IQueryable<def_LookupMaster> query = formsRepo.GetLookupMaster(74); var sSort = Request.Params["columns[1][search][value]"]; var sTeam = Request.Params["columns[2][search][value]"]; int teamId = -1; if (!String.IsNullOrEmpty(sTeam) && !sTeam.Equals("-1")) { try { teamId = Convert.ToInt32(sTeam); } catch (Exception excptn) { Debug.WriteLine("Adap Controller ClinicList Integer Conversion:" + excptn.Message); } } // rename to avoid language/library conflicts int iniIndex = start; int noDsplyRecs = length; int entId = SessionHelper.LoginStatus.EnterpriseID; Debug.WriteLine("Adap Controller ClinicList SelectedEnterprise:" + entId.ToString()); IEnumerable <def_LookupDetail> detail = formsRepo.GetLookupMastersByLookupCode("ADAP_CLINIC").def_LookupDetail .Where(f => (teamId > -1) ? f.GroupID == teamId : true) .Where(f => (entId > 0) ? f.EnterpriseID == entId : true); if (String.IsNullOrEmpty(sSort) || sSort.Equals("false")) { detail = detail.OrderBy(f => f.displayOrder); } else { detail = detail.OrderBy(f => (f.def_LookupText.FirstOrDefault() != null) ? f.def_LookupText.FirstOrDefault().displayText : "zzzzz"); } IUasSql uasSql = new UasSql(); dtr.recordsTotal = dtr.recordsFiltered = detail.Count(); foreach (var d in detail.Skip(iniIndex).Take(noDsplyRecs)) { string[] data = new string[] { "<button type=\"button\" class=\"btn btn-primary btn-xs text-center\" onclick=\"window.location='/Adap/EditDetail?lookupDetailId=" + d.lookupDetailId.ToString() + "'\">Edit</button>", (formsRepo.GetLookupTextsByLookupDetail(d.lookupDetailId).FirstOrDefault() != null) ? formsRepo.GetLookupTextsByLookupDetail(d.lookupDetailId).FirstOrDefault().displayText : String.Empty, d.dataValue, (d.GroupID == null) ? "" : uasSql.getGroupName(d.GroupID.Value), d.displayOrder.ToString(), d.StatusFlag }; dtr.data.Add(data); } Debug.WriteLine("Adap Controller ClinicList data populated."); // Output the JSON in DataTable format fastJSON.JSONParameters param = new fastJSON.JSONParameters(); param.EnableAnonymousTypes = true; result = fastJSON.JSON.ToJSON(dtr, param); Debug.WriteLine("DataTable Clinic result:" + result); } catch (Exception excptn) { Debug.WriteLine("Adap Controller ClinicList exception:" + excptn.Message); result = excptn.Message + " - " + excptn.Message; } return(result); }
public ActionResult PageData(DataTableFilter <BOQuarentenaFilterViewModel> model) { int totalRecords = 0; int totalRecordsFiltered = 0; var query = _uow.QuarentenaRepository.All(); totalRecords = query.Count(); if (!string.IsNullOrEmpty(model.CustomFilter.ChaveAcesso)) { query = query.Where(x => x.Lote.NotaFiscal.ChaveAcesso.Contains(model.CustomFilter.ChaveAcesso)); } if (model.CustomFilter.Lote.HasValue) { query = query.Where(x => x.IdLote == model.CustomFilter.Lote.Value); } if (model.CustomFilter.Nota.HasValue) { query = query.Where(x => x.Lote.NotaFiscal.Numero == model.CustomFilter.Nota); } if (model.CustomFilter.IdFornecedor.HasValue) { query = query.Where(x => x.Lote.NotaFiscal.IdFornecedor == model.CustomFilter.IdFornecedor); } if (model.CustomFilter.IdQuarentenaStatus.HasValue) { query = query.Where(x => (int)x.QuarentenaStatus.IdQuarentenaStatus == model.CustomFilter.IdQuarentenaStatus); } if (model.CustomFilter.DataAberturaInicial.HasValue) { DateTime dataInicial = new DateTime(model.CustomFilter.DataAberturaInicial.Value.Year, model.CustomFilter.DataAberturaInicial.Value.Month, model.CustomFilter.DataAberturaInicial.Value.Day, 00, 00, 00); query = query.Where(x => x.DataAbertura >= dataInicial); } if (model.CustomFilter.DataAberturaFinal.HasValue) { DateTime dataFinal = new DateTime(model.CustomFilter.DataAberturaFinal.Value.Year, model.CustomFilter.DataAberturaFinal.Value.Month, model.CustomFilter.DataAberturaFinal.Value.Day, 23, 59, 59); query = query.Where(x => x.DataAbertura <= dataFinal); } if (model.CustomFilter.DataEncerramentoInicial.HasValue) { DateTime dataEncerramentoInicial = new DateTime(model.CustomFilter.DataEncerramentoInicial.Value.Year, model.CustomFilter.DataEncerramentoInicial.Value.Month, model.CustomFilter.DataEncerramentoInicial.Value.Day, 00, 00, 00); query = query.Where(x => x.DataEncerramento >= dataEncerramentoInicial); } if (model.CustomFilter.DataEncerramentoFinal.HasValue) { DateTime prazoEncerramentoFinal = new DateTime(model.CustomFilter.DataEncerramentoFinal.Value.Year, model.CustomFilter.DataEncerramentoFinal.Value.Month, model.CustomFilter.DataEncerramentoFinal.Value.Day, 23, 59, 59); query = query.Where(x => x.DataEncerramento <= prazoEncerramentoFinal); } IEnumerable <BOQuarentenaListItemViewModel> list = query.ToList() .Select(x => new BOQuarentenaListItemViewModel { IdQuarentena = x.IdQuarentena, Lote = x.IdLote, ChaveAcesso = x.Lote.NotaFiscal.ChaveAcesso, Nota = x.Lote.NotaFiscal.Numero, Fornecedor = x.Lote.NotaFiscal.Fornecedor.NomeFantasia, DataAbertura = x.DataAbertura.ToString("dd/MM/yyyy"), DataEncerramento = x.DataEncerramento.HasValue ? x.DataEncerramento.Value.ToString("dd/MM/yyyy") : string.Empty, Atraso = x.DataAbertura.Subtract(x.DataEncerramento ?? DateTime.Now).Days, Status = x.QuarentenaStatus.Descricao, LoteStatus = x.Lote.IdLoteStatus.ToString(), IdQuarentenaStatus = (int)x.IdQuarentenaStatus }); if (model.CustomFilter.Atraso.HasValue) { list = list.Where(x => x.Atraso == model.CustomFilter.Atraso); } totalRecordsFiltered = list.Count(); var result = list .OrderBy(model.OrderByColumn, model.OrderByDirection) .Skip(model.Start) .Take(model.Length); return(DataTableResult.FromModel(new DataTableResponseModel() { Draw = model.Draw, RecordsTotal = totalRecords, RecordsFiltered = totalRecordsFiltered, Data = result })); }
public string DataTableMasters(int draw, int start, int length, string searchValue, string searchRegex, string order) { string result = String.Empty; Debug.WriteLine("Def3Maint Controller DataTableMasters draw:" + draw.ToString()); Debug.WriteLine("Def3Maint Controller DataTableMasters start:" + start.ToString()); Debug.WriteLine("Def3Maint Controller DataTableMasters searchValue:" + searchValue); Debug.WriteLine("Def3Maint Controller DataTableMasters searchRegex:" + searchRegex); Debug.WriteLine("Def3Maint Controller DataTableMasters order:" + order); // Lists all the Request parameters foreach (string s in Request.Params.Keys) { Debug.WriteLine(s.ToString() + ":" + Request.Params[s]); } try { // Initialize the DataTable response (later transformed to JSON) DataTableResult dtr = new DataTableResult() { draw = draw, recordsTotal = 1, recordsFiltered = 1, data = new List <string[]>(), error = String.Empty }; // rename to avoid language/library conflicts int iniIndex = start; int noDsplyRecs = length; List <def_LookupMaster> query = formsRepo.GetLookupMasters(); List <def_BaseTypes> types = formsRepo.GetBaseTypes(); string basedropdown = String.Empty; foreach (def_BaseTypes bt in types) { basedropdown += "<option value=\"" + bt.baseTypeId + "\">" + bt.enumeration + "</option>"; } dtr.recordsTotal = dtr.recordsFiltered = query.Count(); foreach (def_LookupMaster q in query.Skip(iniIndex).Take(noDsplyRecs).ToList()) { string dropdown = basedropdown; // Flag the appropriate html option as selected. string findText = "value=\"" + q.baseTypeId; int index = dropdown.IndexOf(findText); dropdown = dropdown.Insert(index - 1, " selected=\"selected\""); string[] data = new string[] { "<span id=\"lkpCd[" + q.lookupMasterId + "]\">" + q.lookupCode + "</span>", "<span id=\"ttl[" + q.lookupMasterId + "]\">" + q.title + "</span>", "<span id=\"bsTyp[" + q.lookupMasterId + "]\">" + formsRepo.GetBaseTypeById(q.baseTypeId).enumeration + "</span>" + "<span id=\"bsTypSelDat[" + q.lookupMasterId + "]\" hidden=\"hidden\">" + "<select class=\"masterBase form-control\" id=\"bsTypSel[" + q.lookupMasterId + "]\" name=\"addMasterBase\">" + dropdown + "</select>" + "</span>", "<span id=\"editMaster[" + q.lookupMasterId + "]\"><a href=\"#\" onclick=\"editMaster(" + q.lookupMasterId + ")\">Edit</a></span>" + "<span id=\"saveMaster[" + q.lookupMasterId + "]\" hidden=\"hidden\"><a href=\"#\" onclick=\"saveMaster(" + q.lookupMasterId + ")\">Save</a></span>", "<span id=\"detailsInquiry[" + q.lookupMasterId + "]\"><a href=\"#\" onclick=\"DetailsInquiry(" + q.lookupMasterId + ", '" + q.title + "')\">View Details</a></span>" + "<span id=\"cancelMaster[" + q.lookupMasterId + "]\" hidden=\"hidden\"><a href=\"#\" onclick=\"cancelMaster(" + q.lookupMasterId + ")\">Cancel</a></span>", "<span id=\"deleteMaster[" + q.lookupMasterId + "]\"><a href=\"#\" onclick=\"deleteMaster(" + q.lookupMasterId + ", '" + q.lookupCode + "')\">Delete</a></span>" }; dtr.data.Add(data); } Debug.WriteLine("Def3Maint Controller DataTableMasters data populated."); // Output the JSON in DataTable format fastJSON.JSONParameters param = new fastJSON.JSONParameters(); param.EnableAnonymousTypes = true; result = fastJSON.JSON.ToJSON(dtr, param); Debug.WriteLine("Def3Maint Controller DataTableMasters result:" + result); } catch (Exception excptn) { Debug.WriteLine("Def3Maint Controller DataTableMasters exception:" + excptn.Message); result = excptn.Message + " - " + excptn.Message; } return(result); }
public string DataTableDetails(int draw, int start, int length, string searchValue, string searchRegex, string order) { int masterId = 0; int ent = 0; int grp = 0; string result = String.Empty; Debug.WriteLine("Def3Maint Controller DataTableDetails draw:" + draw.ToString()); Debug.WriteLine("Def3Maint Controller DataTableDetails start:" + start.ToString()); Debug.WriteLine("Def3Maint Controller DataTableDetails searchValue:" + searchValue); Debug.WriteLine("Def3Maint Controller DataTableDetails searchRegex:" + searchRegex); Debug.WriteLine("Def3Maint Controller DataTableDetails order:" + order); try { string r = Request["masterId"]; if (!String.IsNullOrEmpty(r)) { masterId = Convert.ToInt32(r); } r = Request["entId"]; if (!String.IsNullOrEmpty(r)) { try { ent = Convert.ToInt32(r); } catch (FormatException excptn) { } } r = Request["grpId"]; if (!String.IsNullOrEmpty(r)) { try { grp = Convert.ToInt32(r); } catch (FormatException excptn) { } } // Lists all the Request parameters foreach (string s in Request.Params.Keys) { Debug.WriteLine(s.ToString() + ":" + Request.Params[s]); } try { // Initialize the DataTable response (later transformed to JSON) DataTableResult dtr = new DataTableResult() { draw = draw, recordsTotal = 1, recordsFiltered = 1, data = new List <string[]>(), error = String.Empty }; // rename to avoid language/library conflicts int iniIndex = start; int noDsplyRecs = length; int englishId = 0; foreach (def_Languages l in formsRepo.GetAllLanguages()) { if (l.title.Equals("English")) { englishId = l.langId; break; } } List <def_LookupDetail> query = formsRepo.GetLookupDetails(masterId, ent, grp); List <def_BaseTypes> types = formsRepo.GetBaseTypes(); dtr.recordsTotal = dtr.recordsFiltered = query.Count(); foreach (def_LookupDetail q in query.Skip(iniIndex).Take(noDsplyRecs).ToList()) { def_LookupText dl = formsRepo.GetLookupTextsByLookupDetailLanguage(q.lookupDetailId, englishId).FirstOrDefault(); string engText = (dl != null) ? dl.displayText : String.Empty; string[] data = new string[] { "<span id=\"dataValue[" + q.lookupDetailId + "]\">" + q.dataValue + "</span>", "<span id=\"order[" + q.lookupDetailId + "]\">" + q.displayOrder + "</span>", "<span id=\"english[" + q.lookupDetailId + "]\">" + engText + "</span>", "<span id=\"editDetail[" + q.lookupDetailId + "]\"><a href=\"#\" onclick=\"editDetail(" + q.lookupDetailId + ")\">Edit</a></span>" + "<span id=\"saveDetail[" + q.lookupDetailId + "]\" hidden=\"hidden\"><a href=\"#\" onclick=\"saveDetail(" + q.lookupDetailId + ")\">Save </a></span>", "<span id=\"textDetail[" + q.lookupDetailId + "]\"><a href=\"#\" onclick=\"textDetail(" + q.lookupDetailId + ", '" + q.dataValue + "')\">View Text </a></span>" + "<span id=\"cancelDetail[" + q.lookupDetailId + "]\" hidden=\"hidden\"><a href=\"#\" onclick=\"cancelDetail(" + q.lookupDetailId + ")\">Cancel </a></span>", "<span id=\"deleteDetail[" + q.lookupDetailId + "]\"><a href=\"#\" onclick=\"deleteDetail(" + q.lookupDetailId + ", '" + q.dataValue + "')\">Delete</a></span>" }; dtr.data.Add(data); } Debug.WriteLine("Def3Maint Controller DataTableDetails data populated."); // Output the JSON in DataTable format fastJSON.JSONParameters param = new fastJSON.JSONParameters(); param.EnableAnonymousTypes = true; result = fastJSON.JSON.ToJSON(dtr, param); Debug.WriteLine("Def3Maint Controller DataTableDetails result:" + result); } catch (Exception excptn) { Debug.WriteLine("Def3Maint Controller DataTableDetails exception:" + excptn.Message); result = excptn.Message + " - " + excptn.Message; } } catch (FormatException excptn) { Debug.WriteLine("Def3Maint Controller DataTableDetails masterId format exception:" + excptn.Message); } return(result); }
public string DataTableTexts(int draw, int start, int length, string searchValue, string searchRegex, string order) { int detailId = 0; string result = String.Empty; Debug.WriteLine("Def3Maint Controller DataTableTexts draw:" + draw.ToString()); Debug.WriteLine("Def3Maint Controller DataTableTexts start:" + start.ToString()); Debug.WriteLine("Def3Maint Controller DataTableTexts searchValue:" + searchValue); Debug.WriteLine("Def3Maint Controller DataTableTexts searchRegex:" + searchRegex); Debug.WriteLine("Def3Maint Controller DataTableTexts order:" + order); try { string r = Request["detailId"]; if (!String.IsNullOrEmpty(r)) { detailId = Convert.ToInt32(r); } // Lists all the Request parameters foreach (string s in Request.Params.Keys) { Debug.WriteLine(s.ToString() + ":" + Request.Params[s]); } try { // Initialize the DataTable response (later transformed to JSON) DataTableResult dtr = new DataTableResult() { draw = draw, recordsTotal = 1, recordsFiltered = 1, data = new List <string[]>(), error = String.Empty }; // rename to avoid language/library conflicts int iniIndex = start; int noDsplyRecs = length; List <def_LookupText> query = formsRepo.GetLookupTextsByLookupDetail(detailId); List <def_BaseTypes> types = formsRepo.GetBaseTypes(); string basedropdown = String.Empty; foreach (def_Languages l in formsRepo.GetAllLanguages()) { basedropdown += "<option value=\"" + l.langId + "\">" + l.title + "</option>"; } dtr.recordsTotal = dtr.recordsFiltered = query.Count(); foreach (def_LookupText q in query.Skip(iniIndex).Take(noDsplyRecs).ToList()) { string dropdown = basedropdown; // Flag the appropriate html option as selected. string findText = "value=\"" + q.langId; int index = dropdown.IndexOf(findText); dropdown = dropdown.Insert(index - 1, " selected=\"selected\""); string[] data = new string[] { "<span id=\"language[" + q.lookupTextId + "]\">" + formsRepo.GetLanguageById(q.langId).title + "</span>" + "<span hidden=\"hidden\" id=\"languageSelectTd[" + q.lookupTextId + "]\">" + "<select name=\"selectdLanguage\" class=\"form-control\" id=\"selectLanguage[" + q.lookupTextId + "]\">" + dropdown + "</select>" + "</span>", "<span id=\"displayText[" + q.lookupTextId + "]\">" + q.displayText + "</span>", "<span id=\"editText[" + q.lookupTextId + "]\"><a href=\"#\" onclick=\"editText(" + q.lookupTextId + ")\">Edit</a></span>" + "<span hidden=\"hidden\" id=\"saveText[" + q.lookupTextId + "]\"><a href=\"#\" onclick=\"saveText(" + q.lookupTextId + ")\">Save</a></span>", "<span id=\"deleteText[" + q.lookupTextId + "]\"><a href=\"#\" onclick=\"deleteText(" + q.lookupTextId + ",'" + q.displayText + "')\">Delete</a></span>" + "<span hidden=\"hidden\" id=\"cancelText[" + q.lookupTextId + "]\"><a href=\"#\" onclick=\"cancelText(" + q.lookupTextId + ")\">Cancel</a></span>" }; dtr.data.Add(data); } Debug.WriteLine("Def3Maint Controller DataTableTexts data populated."); // Output the JSON in DataTable format fastJSON.JSONParameters param = new fastJSON.JSONParameters(); param.EnableAnonymousTypes = true; result = fastJSON.JSON.ToJSON(dtr, param); Debug.WriteLine("Def3Maint Controller DataTableTexts result:" + result); } catch (Exception excptn) { Debug.WriteLine("Def3Maint Controller DataTableTexts exception:" + excptn.Message); result = excptn.Message + " - " + excptn.Message; } } catch (FormatException excptn) { Debug.WriteLine("Def3Maint Controller DataTableTexts detailId format exception:" + excptn.Message); } return(result); }
public string DataTableCSSPeopleList(int draw, int start, int length, string searchValue, string searchRegex, string order) { string result = String.Empty; Debug.WriteLine("DataTableController UserList draw:" + draw.ToString()); Debug.WriteLine("DataTableController UserList start:" + start.ToString()); Debug.WriteLine("DataTableController UserList searchValue:" + searchValue); Debug.WriteLine("DataTableController UserList searchRegex:" + searchRegex); Debug.WriteLine("DataTableController UserList order:" + order); // Lists all the Request parameters foreach (string s in Request.Params.Keys) { Debug.WriteLine(s.ToString() + ":" + Request.Params[s]); } try { // Initialize the DataTable response (later transformed to JSON) DataTableResult dtr = new DataTableResult() { draw = draw, recordsTotal = 1, recordsFiltered = 1, data = new List <string[]>(), error = String.Empty }; var sFirstN = Request.Params["columns[1][search][value]"]; var sLastN = Request.Params["columns[2][search][value]"]; var sloginId = Request.Params["columns[3][search][value]"]; var sEmail = Request.Params["columns[4][search][value]"]; // rename to avoid language/library conflicts int iniIndex = start; int noDsplyRecs = length; // Parse the parameters from DataTable request /* * if (!String.IsNullOrEmpty(json)) * { * var dResults = fastJSON.JSON.Parse(json); * } */ AuthenticationClient auth = new AuthenticationClient(); int entId = 8; int appId = 3; List <List <string> > usrs = auth.List_CSS_people_Users(SessionHelper.LoginStatus.UserID, entId, iniIndex, noDsplyRecs, sFirstN, sLastN, sloginId, sEmail); //* * * OT 2-23-16 explaination for Bug 13019, comment 21, first bullet //for users that do not have the "View users" permission, they can only see themselves in the limited users list //we do this by searching for the current user's loginId //this normally works, but in some cases there are multiple loginIds that contain the current user's loginId //Example: Login as nctest and you can also see NCTest1. //Final record stores total result set count. if (usrs.Count > 0) { dtr.recordsTotal = dtr.recordsFiltered = Convert.ToInt32(usrs[usrs.Count - 1][0]);//usrCount; usrs.RemoveAt(usrs.Count - 1); Debug.WriteLine("DataTableController usrs.Count:" + usrs.Count.ToString()); } else { dtr.recordsTotal = dtr.recordsFiltered = 0; Debug.WriteLine("DataTableController usrs.Count:" + 0); } dtr.data = (from u in usrs select u.ToArray()).ToList(); Debug.WriteLine("DataTableController UserList data populated."); // Output the JSON in DataTable format fastJSON.JSONParameters param = new fastJSON.JSONParameters(); param.EnableAnonymousTypes = true; result = fastJSON.JSON.ToJSON(dtr, param); Debug.WriteLine("DataTableController UserList result:" + result); } catch (Exception excptn) { Debug.WriteLine("DataTableController UserList exception:" + excptn.Message); result = excptn.Message + " - " + excptn.InnerException.Message; } return(result); }