public static async Task <V> FindByIdAsync <V, S>(this IViewReadService <V, S> service, long id, Requester requester) where V : IIdView where S : IConstrainedSearcher, new() { var search = new S(); search.Ids.Add(id); return((await service.SearchAsync(search, requester)).OnlySingle()); }
/// <summary> /// A special intermediate function for converting string chaining into real chaining. One extra step as shortcut: /// convert view service and requester to proper Func /// </summary> /// <param name="chainData"></param> /// <param name="service"></param> /// <param name="requester"></param> /// <param name="previousChains"></param> /// <typeparam name="S"></typeparam> /// <typeparam name="V"></typeparam> /// <returns></returns> protected Task ChainStringAsync <S, V>(ChainRequestString chainData, IViewReadService <V, S> service, Requester requester, List <List <IIdView> > previousChains) where S : IConstrainedSearcher where V : IIdView { return(ChainStringAsync <S, V>(chainData, (s) => service.SearchAsync(s, requester), previousChains)); }