using System.Collections.Immutable;
using Connected.Entities;
using Connected.ServiceModel;
using Connected.Services;
using Ops = Connected.Logistics.Types.Serials.SerialOps;
namespace Connected.Logistics.Types.Serials;
///
internal sealed class SerialService : EntityService, ISerialService
{
///
/// Create a new service.
///
/// The context which serves as a DI scope.
public SerialService(IContext context) : base(context)
{
}
///
public async Task Delete(PrimaryKeyArgs args)
{
await Invoke(GetOperation(), args);
}
///
public async Task Insert(InsertSerialArgs args)
{
return await Invoke(GetOperation(), args);
}
///
public async Task> Query(QueryArgs? args)
{
return await Invoke(GetOperation(), args ?? QueryArgs.Default);
}
///
public async Task> Query(PrimaryKeyListArgs args)
{
return await Invoke(GetOperation(), args);
}
///
public async Task Select(PrimaryKeyArgs args)
{
return await Invoke(GetOperation(), args);
}
///
public async Task Select(SelectSerialArgs args)
{
return await Invoke(GetOperation(), args);
}
///
public async Task Update(UpdateSerialArgs args)
{
await Invoke(GetOperation(), args);
}
///
public async Task Patch(PatchArgs args)
{
if (await Select(args.Id) is not Serial entity)
return;
await Update(args.Patch(entity));
}
}