public IEnumerable<StuffItemViewModel> Build(StuffParameters stuffParameters) { using (_profilerWrapper.Step("Build Stuff View Model List")) { var allItems = _stuffItemRepository.GetAll(); using (_profilerWrapper.Step("Order stuff items by name")) { allItems = allItems.OrderBy(si => si.Name); } using (_profilerWrapper.Step("Filter Stuff View Model List")) { if (stuffParameters.Categories.Any()) { allItems = FilterItemsByCategory(stuffParameters.Categories, allItems); } if(!string.IsNullOrWhiteSpace(stuffParameters.Name)) { allItems = FilterItemsByName(stuffParameters.Name, allItems); } if(!string.IsNullOrWhiteSpace(stuffParameters.ViewId)) { allItems = GetView(stuffParameters.ViewId).Filter(allItems); } return allItems.Select(item => new StuffItemViewModel(item)); } } }
public StuffViewModel BuildViewModel(StuffParameters stuffParameters) { using (_profilerWrapper.Step("Build Stuff View Model")) { return new StuffViewModel( GetStuffCategoryViewModels(), GetStuffViewViewModels(stuffParameters.ViewId), stuffParameters.Name); } }