using Luticate2.Utils.Dbo.Basic; using Luticate2.Utils.Dbo.Filter; using Luticate2.Utils.Dbo.OrderBy; using Luticate2.Utils.Dbo.PaginatedRequest; using Luticate2.Utils.Dbo.Result; using Luticate2.Utils.Interfaces; namespace Luticate2.Utils.Utils { public static class LuCrudInterfaceExtensions { public static LuResult> GetMultiple( this ILuCrudInterface crud, LuOrderByDbo orderBy, LuFilterDbo filter, int page = 0, int perPage = int.MaxValue) where TDboCreate : class where TDboRead : class where TDboUpdate : class { return crud.GetMultiple(new LuPaginatedRequestDbo { Filter = filter, OrderBy = orderBy, Page = page, PerPage = perPage }); } public static LuResult> GetMultiple( this ILuCrudInterface crud, LuOrderByDbo orderBy, int page = 0, int perPage = int.MaxValue) where TDboCreate : class where TDboRead : class where TDboUpdate : class { return crud.GetMultiple(new LuPaginatedRequestDbo { Filter = null, OrderBy = orderBy, Page = page, PerPage = perPage }); } public static LuResult AddDbo( this ILuCrudInterface crud, TDboCreate obj) where TDboCreate : class where TDboRead : class where TDboUpdate : class { return crud.Add(obj, o => o); } public static LuResult AddId( this ILuCrudInterface crud, TDboCreate obj) where TDboCreate : class where TDboRead : class where TDboUpdate : class { return crud.Add(obj, crud.GetDboId); } public static LuResult EditSingleByIdDbo( this ILuCrudInterface crud, TId id, TDboUpdate update) where TDboCreate : class where TDboRead : class where TDboUpdate : class { return crud.EditSingleById(id, update, o => o); } public static LuResult EditSingleByIdId( this ILuCrudInterface crud, TId id, TDboUpdate update) where TDboCreate : class where TDboRead : class where TDboUpdate : class { return crud.EditSingleById(id, update, crud.GetDboId); } public static LuResult DeleteSingleByIdDbo( this ILuCrudInterface crud, TId id) where TDboCreate : class where TDboRead : class where TDboUpdate : class { return crud.DeleteSingleById(id, o => o); } public static LuResult DeleteSingleByIdId( this ILuCrudInterface crud, TId id) where TDboCreate : class where TDboRead : class where TDboUpdate : class { return crud.DeleteSingleById(id, crud.GetDboId); } } }