ContentAccess, CreateContainer
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
namespace FileTime.Core.ContentAccess;
|
||||
|
||||
public interface IContentAccessorFactory
|
||||
{
|
||||
IItemCreator<TContentProvider> GetItemCreator<TContentProvider>() where TContentProvider : IContentProvider;
|
||||
IItemCreator GetItemCreator(IContentProvider provider);
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
using FileTime.Core.Models;
|
||||
|
||||
namespace FileTime.Core.ContentAccess;
|
||||
|
||||
public interface IItemCreator
|
||||
{
|
||||
Task CreateContainerAsync(IContentProvider contentProvider, FullName fullName);
|
||||
Task CreateElementAsync(IContentProvider contentProvider, FullName fullName);
|
||||
}
|
||||
|
||||
public interface IItemCreator<in TContentProvider> : IItemCreator where TContentProvider : IContentProvider
|
||||
{
|
||||
Task CreateContainerAsync(TContentProvider contentProvider, FullName fullName);
|
||||
Task CreateElementAsync(TContentProvider contentProvider, FullName fullName);
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
using FileTime.Core.Models;
|
||||
|
||||
namespace FileTime.Core.ContentAccess;
|
||||
|
||||
public abstract class ItemCreatorBase<TContentProvider> : IItemCreator<TContentProvider>
|
||||
where TContentProvider : IContentProvider
|
||||
{
|
||||
public async Task CreateContainerAsync(IContentProvider contentProvider, FullName fullName)
|
||||
=> await CreateContainerAsync((TContentProvider)contentProvider, fullName);
|
||||
|
||||
public async Task CreateElementAsync(IContentProvider contentProvider, FullName fullName)
|
||||
=> await CreateElementAsync((TContentProvider)contentProvider, fullName);
|
||||
|
||||
public abstract Task CreateContainerAsync(TContentProvider contentProvider, FullName fullName);
|
||||
|
||||
public abstract Task CreateElementAsync(TContentProvider contentProvider, FullName fullName);
|
||||
}
|
||||
Reference in New Issue
Block a user