public async Task <IActionResult> Get(SizeRequestListViewModel sizeRequestListViewModel) { var responseModel = await _sizeService.ListSizeAsync(sizeRequestListViewModel); if (responseModel.StatusCode == System.Net.HttpStatusCode.OK) { return(Ok(responseModel.Data)); } return(BadRequest(responseModel.Message)); }
public async Task <ResponseModel> ListSizeAsync(SizeRequestListViewModel sizeRequestListViewModel) { var list = await GetAll().Where(x => (string.IsNullOrEmpty(sizeRequestListViewModel.Query) || (x.Name.Contains(sizeRequestListViewModel.Query))) ).Select(x => new SizeViewModel(x)).ToListAsync(); var sizeViewModelProperties = GetAllPropertyNameOfViewModel(); var requestPropertyName = !string.IsNullOrEmpty(sizeRequestListViewModel.SortName) ? sizeRequestListViewModel.SortName.ToLower() : string.Empty; string matchedPropertyName = string.Empty; foreach (var sizeViewModelProperty in sizeViewModelProperties) { var lowerTypeViewModelProperty = sizeViewModelProperty.ToLower(); if (lowerTypeViewModelProperty.Equals(requestPropertyName)) { matchedPropertyName = sizeViewModelProperty; break; } } if (string.IsNullOrEmpty(matchedPropertyName)) { matchedPropertyName = "Name"; } var type = typeof(SizeViewModel); var sortProperty = type.GetProperty(matchedPropertyName); list = sizeRequestListViewModel.IsDesc ? list.OrderByDescending(x => sortProperty.GetValue(x, null)).ToList() : list.OrderBy(x => sortProperty.GetValue(x, null)).ToList(); return(new ResponseModel() { StatusCode = System.Net.HttpStatusCode.OK, Data = list }); }