infrastructure icon indicating copy to clipboard operation
infrastructure copied to clipboard

DotvvmFacadeExtensions.FillDataSet should extend ICrudListFacade/ICrudFilteredListFacade types, not the ones that include TDetailDTO

Open vstribrny opened this issue 6 years ago • 0 comments

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.

vstribrny avatar Aug 29 '18 11:08 vstribrny