internal async Task <PayeeCrudVm> GetViewModel(int?id, IPayeeManagerService service) { if (GetRoutedAction() == nameof(Create)) { return(new PayeeCrudVm(null, _allCategoryNames)); } return(new PayeeCrudVm(await service.GetSinglePayeeAsync(id, true), _allCategoryNames)); }
public void Initialize_test_objects() { switch (TestContext.TestName) { case nameof(AddPayeeAsync_adds_payee_then_saves): case nameof(RemovePayeeAsync_removes_payee_then_saves): case nameof(UpdatePayeeAsync_edits_payee_then_saves): _mockRepo = new Mock <IBudgetRepo>(MockBehavior.Strict); break; default: _mockRepo = new Mock <IBudgetRepo>(); break; } _testService = new PayeeManagerService(_mockRepo.Object); }
/// <summary> /// The default constructor /// </summary> /// <param name="service">The service to use in the controller</param> public PayeeController(IPayeeManagerService service) : base( singleAdder: payee => service.AddPayeeAsync(payee), singleEditor: payee => service.UpdatePayeeAsync(payee), existanceChecker: payee => service.PayeeExists(payee.NavId), singleDeleter: id => service.RemovePayeeAsync(id) ) { // Setup category name collection _allCategoryNames = service.GetCategories().Select(c => c.Name).ToList(); // Setup CRUDController functions CollectionGetter = () => GetViewModelCollection(service); ViewModelCreator = id => GetViewModel(id, service); FailedPostRebinder = payee => payee.CategoryOptions = _allCategoryNames; // Setup error handling ExceptionHandling = new Dictionary <Type, Func <Exception, IActionResult> > { { typeof(ExpenseTrackerException), ex => NotFound() }, { typeof(NullModelException), ex => { ModelState.AddModelError("", ex.Message); return(null); } } }; }