public async Task <IActionResult> SelectData(Guid lastUid, int take = 100, string q = "") { var request = new LanguageReadListRequest(); request.PagingInfo.Take = take; var searchTerm = q?.ToLowerInvariant(); if (searchTerm.IsNotEmpty()) { request.SearchTerm = searchTerm; } if (lastUid.IsNotEmptyGuid()) { request.PagingInfo.LastUid = lastUid; } var items = new List <SelectResult>(); var response = await _languageService.GetLanguages(request); if (response.Status.IsNotSuccess) { return(Json(items)); } for (var i = 0; i < response.Items.Count; i++) { var item = response.Items[i]; items.Add(new SelectResult(item.Uid.ToUidString(), item.Name, $"/images/flags/{item.IsoCode2}.png")); } return(Json(items)); }
public async Task <LanguageReadListResponse> GetLanguages(LanguageReadListRequest request) { var response = new LanguageReadListResponse(); Expression <Func <Language, object> > orderByColumn = x => x.Id; Expression <Func <Language, bool> > filter = null; if (request.SearchTerm.IsNotEmpty()) { filter = x => x.Name.Contains(request.SearchTerm) || x.IsoCode2Char.Contains(request.SearchTerm) || x.IsoCode3Char.Contains(request.SearchTerm) || x.OriginalName.Contains(request.SearchTerm); } List <Language> entities; if (request.PagingInfo.Skip < 1) { entities = await _languageRepository.SelectAfter(filter, request.PagingInfo.LastUid, request.PagingInfo.Take, orderByColumn, request.PagingInfo.IsAscending); } else { entities = await _languageRepository.SelectMany(filter, request.PagingInfo.Skip, request.PagingInfo.Take, orderByColumn, request.PagingInfo.IsAscending); } if (entities != null) { for (var i = 0; i < entities.Count; i++) { var entity = entities[i]; var dto = _languageFactory.CreateDtoFromEntity(entity); response.Items.Add(dto); } } response.PagingInfo.Skip = request.PagingInfo.Skip; response.PagingInfo.Take = request.PagingInfo.Take; response.PagingInfo.LastUid = request.PagingInfo.LastUid; response.PagingInfo.IsAscending = request.PagingInfo.IsAscending; response.PagingInfo.TotalItemCount = await _languageRepository.Count(filter); response.Status = ResponseStatus.Success; return(response); }
public async Task <IActionResult> ListData(int skip, int take) { var request = new LanguageReadListRequest(); SetPaging(skip, take, request); var response = await _languageService.GetLanguages(request); if (response.Status.IsNotSuccess) { return(NotFound()); } var result = new DataResult(); result.AddHeaders("language_name", "2_char_code", "3_char_code", "icon", ""); for (var i = 0; i < response.Items.Count; i++) { var item = response.Items[i]; var stringBuilder = new StringBuilder(); stringBuilder.Append($"{item.Uid}{DataResult.SEPARATOR}"); stringBuilder.Append($"{result.PrepareLink("/Language/Detail/" + item.Uid, item.Name, true)}{DataResult.SEPARATOR}"); stringBuilder.Append($"{item.IsoCode2}{DataResult.SEPARATOR}"); stringBuilder.Append($"{item.IsoCode3}{DataResult.SEPARATOR}"); stringBuilder.Append($"{result.PrepareImage($"{item.IconPath}", item.OriginalName)}{DataResult.SEPARATOR}"); stringBuilder.Append($"{result.PrepareLink("/Language/Edit/" + item.Uid, Localizer.Localize("edit"), true)}{DataResult.SEPARATOR}"); result.Data.Add(stringBuilder.ToString()); } result.PagingInfo = response.PagingInfo; result.PagingInfo.Type = PagingInfo.PAGE_NUMBERS; return(Json(result)); }
public static LanguageReadListRequest GetLanguageReadListRequest() { var request = new LanguageReadListRequest(); return(request); }