namespace DigitalData.Core.Contracts.CleanArchitecture.Application { public interface IServiceReplier { IServiceMessage CreateMessage(bool isSuccess, params string[] messages); IServiceResult CreateResult(T? data, bool isSuccess = true, params string[] messages); IServiceMessage Successful() => CreateMessage(true); IServiceMessage Failed(params string[] messages) => CreateMessage(false, messages); IServiceResult Successful(T data) => CreateResult(data); IServiceResult Failed(T? data, params string[] messages) => CreateResult(data, false, messages); IServiceResult FailedResult(params string[] messages) => Failed(default, messages); } }