using Admin.Interfaces.Commands; using Admin.Interfaces.ModelBuilders; using Admin.Models.EReturn; using log4net; using System; using Unity; namespace Admin.Controllers { public class EReturnControllerDependencies : BaseControllerDependencies, IEReturnControllerDependencies { public EReturnControllerDependencies(ILog log , IModelBuilder listViewModelBuilder , IModelBuilder createViewModelBuilder , [Dependency("EReturn.ViewModelBuilder.Details")] IModelBuilder detailsViewModelBuilder , [Dependency("EReturn.ViewModelBuilder.Edit")] IModelBuilder editViewModelBuilder , IModelCommand createCommand , [Dependency("EReturn.Command.Edit")] IModelCommand editCommand , [Dependency("EReturn.Command.ApproverEdit")] IModelCommand approverEditCommand , [Dependency("EReturn.Command.Delete")] IModelCommand deleteCommand , [Dependency("EReturn.Command.Submit")] IModelCommand submitCommand , IModelCommand authoriseCommand ) : base(log) { ListViewModelBuilder = listViewModelBuilder ?? throw new ArgumentNullException("listViewModelBuilder"); CreateViewModelBuilder = createViewModelBuilder ?? throw new ArgumentNullException("createViewModelBuilder"); DetailsViewModelBuilder = detailsViewModelBuilder ?? throw new ArgumentNullException("detailsViewModelBuilder"); EditViewModelBuilder = editViewModelBuilder ?? throw new ArgumentNullException("editViewModelBuilder"); CreateCommand = createCommand ?? throw new ArgumentNullException("createCommand"); EditCommand = editCommand ?? throw new ArgumentNullException("editCommand"); ApproverEditCommand = approverEditCommand ?? throw new ArgumentNullException("approverEditCommand"); DeleteCommand = deleteCommand ?? throw new ArgumentNullException("deleteCommand"); SubmitCommand = submitCommand ?? throw new ArgumentNullException("submitCommand"); AuthoriseCommand = authoriseCommand ?? throw new ArgumentNullException("authoriseCommand"); } #region ViewModelBuidlers public IModelBuilder ListViewModelBuilder { get; private set; } public IModelBuilder CreateViewModelBuilder { get; private set; } public IModelBuilder EditViewModelBuilder { get; private set; } public IModelBuilder DetailsViewModelBuilder { get; private set; } #endregion #region Commands public IModelCommand CreateCommand { get; private set; } public IModelCommand EditCommand { get; private set; } public IModelCommand ApproverEditCommand { get; private set; } public IModelCommand DeleteCommand { get; private set; } public IModelCommand SubmitCommand { get; private set; } public IModelCommand AuthoriseCommand { get; private set; } #endregion } }