using Admin.Classes.Commands.Transaction; using Admin.Interfaces.Commands; using Admin.Interfaces.ModelBuilders; using Admin.Models.Transaction; using log4net; using System; using Unity; namespace Admin.Controllers { public class TransactionControllerDependencies : BaseControllerDependencies, ITransactionControllerDependencies { public TransactionControllerDependencies(ILog log , IModelBuilder listViewModelBuilder , IModelBuilder detailsViewModelBuilder , IModelBuilder transferViewModelBuilder , IModelBuilder refundViewModelBuilder , IModelCommand transferCommand , [Dependency("UndoTransfer")] IModelCommand undoTransferCommand , IModelCommand refundCommand , IModelCommand emailReceiptCommand , IModelCommand createCsvFileForExportCommand ) : base(log) { ListViewModelBuilder = listViewModelBuilder ?? throw new ArgumentNullException("listViewModelBuilder"); DetailsViewModelBuilder = detailsViewModelBuilder ?? throw new ArgumentNullException("detailsViewModelBuilder"); TransferViewModelBuilder = transferViewModelBuilder ?? throw new ArgumentNullException("transferViewModelBuilder"); RefundViewModelBuilder = refundViewModelBuilder ?? throw new ArgumentNullException("refundViewModelBuilder"); TransferCommand = transferCommand ?? throw new ArgumentNullException("transferCommand"); UndoTransferCommand = undoTransferCommand ?? throw new ArgumentNullException("undoTransferCommand"); RefundCommand = refundCommand ?? throw new ArgumentNullException("refundCommand"); EmailReceiptCommand = emailReceiptCommand ?? throw new ArgumentNullException("emailReceiptCommand"); CreateCsvFileForExportCommand = createCsvFileForExportCommand ?? throw new ArgumentNullException("createCsvFileForExportCommand"); } public IModelBuilder DetailsViewModelBuilder { get; set; } public IModelBuilder TransferViewModelBuilder { get; private set; } public IModelBuilder RefundViewModelBuilder { get; set; } public IModelBuilder ListViewModelBuilder { get; private set; } public IModelCommand TransferCommand { get; private set; } public IModelCommand UndoTransferCommand { get; private set; } public IModelCommand RefundCommand { get; private set; } public IModelCommand EmailReceiptCommand { get; private set; } public IModelCommand CreateCsvFileForExportCommand { get; private set; } } }