public async Task <TModel> GetOrAdd <TModel>( ResourceConfig <TModel> config, Func <Task <TModel> > operation) where TModel : class => await _TaskMap.GetOrAddWithCast( config.DefaultIdStr(), async() => { var model = await operation(); if (model != null) { // add the operation result to a result. _Result.GetOrAdd(config, () => model); } return(model); });
public TModel GetOrAdd <TModel>(ResourceConfig <TModel> config, Func <TModel> f) where TModel : class => _Map.GetOrAddWithCast(config.DefaultIdStr(), f);
public TModel Get <TModel>(ResourceConfig <TModel> config) where TModel : class => _Map.GetOrNull(config.DefaultIdStr()) as TModel;