public async Task <ObjectResult> GetPackages(PackageFilterViewModel viewModel) { var serviceModel = PackageFilterServiceModel.FromViewModel(viewModel); var entities = _packageService.GetPackages(serviceModel); if (string.IsNullOrEmpty(viewModel.SortField) == false) { if (viewModel.SortField == "title") { entities = (viewModel.SortOrder == "ascend") ? entities.OrderBy(o => o.Details.FirstOrDefault().Title) : entities.OrderByDescending(o => o.Details.FirstOrDefault().Title); } } var result = await PaginatedList <Package> .CreateAsync(entities, serviceModel.Page, serviceModel.PageSize); var viewModels = new PageEntityViewModel <Package, PackageViewModel>(result, o => PackageViewModel.FromEntity(o)); return(Ok(viewModels)); }
public async Task <OkObjectResult> Get(ProductGetViewModel viewModel) { var entityIds = new List <long>(); if (viewModel.EntityId != default) { entityIds.Add(viewModel.EntityId); } var filterServiceModel = AutoMapper.Mapper.Map <ProductFilterServiceModel>(viewModel); filterServiceModel.Ids = entityIds; var products = _productService.GetProducts(filterServiceModel); if (string.IsNullOrEmpty(viewModel.SortField) == false) { if (viewModel.SortField == "code") { products = (viewModel.SortOrder == "ascend") ? products.OrderBy(o => o.Code) : products.OrderByDescending(o => o.Code); } if (viewModel.SortField == "title") { products = (viewModel.SortOrder == "ascend") ? products.OrderBy(o => o.Details.FirstOrDefault().Title) : products.OrderByDescending(o => o.Details.FirstOrDefault().Title); } } object actionOkResult = null; if (viewModel.GetMode == (int)GetMode.Paginated) { var pageList = await PaginatedList <ProductEntity> .CreateAsync(products, viewModel.Page, viewModel.PageSize); var result = new PageEntityViewModel <ProductEntity, ProductViewModel>(pageList, entity => ProductViewModel.FromEntity(entity)); actionOkResult = result; } else if (viewModel.GetMode == (int)GetMode.List) { var result = products.Select(o => ProductEditViewModel.FromEntity(o)); actionOkResult = result; } else { var product = products.FirstOrDefault(o => o.Id == viewModel.EntityId || o.Name == viewModel.Name); var result = new ProductEditViewModel(); if (product != null) { result = ProductEditViewModel.FromEntity(product); } if (viewModel.IsEditModel) { var allBrand = _productTaxonomiesService.GetAllBrand(); var allType = _productTaxonomiesService.GetAllProductType(); result.AvaliableBrands = allBrand.Select(o => TaxomonyViewModel.FromEntity(o)); result.AvaliableProductTypes = allType.Select(o => TaxomonyViewModel.FromEntity(o)); } actionOkResult = result; } return(Ok(actionOkResult)); }