Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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
            });
        }