using System.Collections.Immutable;
using Common.Documents;
using Connected.Entities;
using Connected.ServiceModel;
using ItemOps = Logistics.Documents.Receive.ReceiveDocumentItemOps;
using Ops = Logistics.Documents.Receive.ReceiveDocumentOps;
namespace Logistics.Documents.Receive;
///
internal sealed class ReceiveDocumentService : DocumentService, IReceiveDocumentService
{
///
/// Create a new instance
///
/// The DI scope used by this instance.
public ReceiveDocumentService(IContext context) : base(context)
{
}
///
public async Task Delete(PrimaryKeyArgs args)
{
await Invoke(GetOperation(), args);
}
///
public async Task DeleteItem(PrimaryKeyArgs args)
{
await Invoke(GetOperation(), args);
}
///
public async Task Insert(InsertReceiveDocumentArgs args)
{
return await Invoke(GetOperation(), args);
}
///
public async Task InsertItem(InsertReceiveItemArgs args)
{
return await Invoke(GetOperation(), args);
}
///
public async Task Patch(PatchArgs args)
{
if (await Select(args.Id) is not ReceiveDocument entity)
return;
await Update(args.Patch(entity));
}
///
public async Task> Query(QueryArgs? args)
{
return await Invoke(GetOperation(), args ?? QueryArgs.Default);
}
///
public async Task> QueryItems(PrimaryKeyArgs args)
{
return await Invoke(GetOperation(), args);
}
///
public async Task Select(PrimaryKeyArgs args)
{
return await Invoke(GetOperation(), args);
}
///
public async Task SelectItem(PrimaryKeyArgs args)
{
return await Invoke(GetOperation(), args);
}
///
public async Task SelectItem(SelectReceiveItemArgs args)
{
return await Invoke(GetOperation(), args);
}
///
public async Task Update(UpdateReceiveDocumentArgs args)
{
await Invoke(GetOperation(), args);
}
///
public async Task UpdateItem(UpdateReceiveItemArgs args)
{
await Invoke(GetOperation(), args);
}
}