namespace Connected.Services;
///
/// Middleware representing opportunity to set or modify values on the objects.
///
///
/// Some arguments provide properties that are not mandatory by the caller but must be set before
/// the operation is executed. This Middleware is called before the Validation phase occurs.
///
///
/// Serial value of the Stock item is not provided by the client but is needed before the goods can be
/// stored in the stock. The platform expects that a process will provide it before the Validation
/// occurs. Depending of the process implementation, it can create a new Serial or use existing one.
///
/// The type of the arguments to be used by the middleware.
public interface IArgumentValueProvider : IMiddleware
where TArgs : IDto
{
///
/// This method gets called by the platform at the time when the values should be provided.
///
/// The arguments instance on which values can be provided.
Task Invoke(TArgs args);
}