0
exlnt created
I am using the standard code provided in the template for rendering dropdowns. I would like to apply a filter to the GetAll() method shown below, so that only "Active" entities from the selected entity are returned.
In all of my entities I use the column "Active".
I would like every combobox method to only return the "Active" records.
public List<ComboboxItemDto> GetCompaniesComboboxItems(int selectedCompany = 0)
{
var comps = _companyRepository.GetAll();
var companyItems = new ListResultDto<ComboboxItemDto>(comps.Select(e => new ComboboxItemDto(e.Id.ToString(), e.CompanyName)).ToList()).Items.ToList();
var defaultItem = new ComboboxItemDto("", L("NotAssigned"));
companyItems.Insert(0, defaultItem);
if (selectedCompany != 0)
{
var selectedlistvalues = companyItems.FirstOrDefault(e => e.Value == selectedCompany.ToString());
if (selectedlistvalues != null)
{
selectedlistvalues.IsSelected = true;
}
}
else
{
defaultItem.IsSelected = true;
}
return companyItems;
}
2 Answer(s)
-
0
Hi,
Why you just don't use:
var comps = _companyRepository.GetAll().Where(c => c.IsActive).ToList();
If you want that repository automatically does filtering for you, you have two options:
- ABP has already a ISoftDelete interface for a similar purpose.
- Define your own filter like documented here: <a class="postlink" href="https://www.aspnetboilerplate.com/Pages/Documents/Data-Filters#entity-framework">https://www.aspnetboilerplate.com/Pages ... -framework</a> (if you are using EF 6.x)
-
0
var comps = _companyRepository.GetAll().Where(c => c.IsActive).ToList();
Thanks,,that helps! I had already tried that, but I did not use the .ToList() directly after the .Where.