infrastructure
infrastructure copied to clipboard
DotvvmFacadeExtensions.FillDataSet should extend ICrudListFacade/ICrudFilteredListFacade types, not the ones that include TDetailDTO
I am facing a problem while trying to use DotvvmFacadeExtensions.FillDataSet
extension method. It extends ICrudFilteredFacade<TListDTO, TDetailDTO, TFilterDTO, TKey>
/ ICrudFacade<TListDTO, TDetailDTO, TKey>
, but the method implementation does not work/need TDetailDTO
objects.
I think DotvvmFacadeExtensions.FillDataSet
should extend ICrudListFacade<TListDTO>
/ ICrudFilteredListFacade<TListDTO, TFilterDTO>
(they are the base for interfaces those full-CRUD interfaces anyway), which makes more sense to me. The only issue is that these interfaces does not implement IFacade
(to get UnitOfWorkProvider
) - I feel like it is omitted "by accident"; or is it an intention?
Resulting method signatures could be:
-
public static void FillDataSet<TListDTO>(this ICrudListFacade<TListDTO> facade, GridViewDataSet<TListDTO> dataSet)
-
public static void FillDataSet<TListDTO, TFilterDTO>(this ICrudFilteredListFacade<TListDTO, TFilterDTO> facade, GridViewDataSet<TListDTO> dataSet, TFilterDTO filter)
My use-case: I have a DotVVM ViewModel for list-like page with injected ICrudFilteredListFacade<TListDTO, TFilterDTO> object and I would like fill DataSet in PreRender method.