using System; using System.Collections.Generic; using System.Linq; using BoundaryLab.Domain; namespace BoundaryLab.Application; public record QuoteResult(int Units, int Total); public interface IQuotePresenter { void Present(QuoteResult result); } public sealed class QuoteUseCase(IQuotePresenter presenter) { public void Execute(Order order) => presenter.Present(new QuoteResult(order.Units, order.Total(3))); }