internal async Task <IEnumerable <CategoryCrudVm> > GetViewModelCollection(ICategoryManagerService service) { return(await service.GetCategories() .OrderBy(c => c.Name.ToLower()) .Select(c => new CategoryCrudVm(c)) .Extension().ToListAsync()); }
internal async Task <CategoryCrudVm> CreateViewModel(int?id, ICategoryManagerService service) { CategoryCrudVm vm = null; if (id != null) { vm = new CategoryCrudVm(await service.GetSingleCategoryAsync(id)); } return(vm); }
public void Initialize_test_objects() { switch (TestContext.TestName) { case nameof(AddCategoryAsync_adds_category_then_saves): case nameof(RemoveCategoryAsync_removes_category_then_saves): case nameof(UpdateCategoryAsync_addsCategory_then_saves_when_EffectiveFrom_moved_later): case nameof(UpdateCategoryAsync_editsCategory_then_saves_when_EffectiveFrom_unchanged_or_earlier): _mockRepo = new Mock <IBudgetRepo>(MockBehavior.Strict); break; default: _mockRepo = new Mock <IBudgetRepo>(); break; } _testService = new CategoryManagerService(_mockRepo.Object); }
/// <summary> /// The default Constructor /// </summary> /// <param name="service">The service to use in the controller</param> public BudgetCategoryController(ICategoryManagerService service) : base( // Setup required functions singleAdder: vm => service.AddCategoryAsync(vm.Name, vm.Amount, vm.Type), singleDeleter: id => service.RemoveCategoryAsync(id), singleEditor: vm => service.UpdateCategoryAsync(vm.NavId, vm.Amount, vm.EffectiveFrom, vm.Type), existanceChecker: vm => service.CategoryExists(vm.NavId) ) { CollectionGetter = () => GetViewModelCollection(service); ViewModelCreator = id => CreateViewModel(id, service); ExceptionHandling = new Dictionary <Type, Func <Exception, IActionResult> > { { typeof(InvalidDateExpection), ex => { ModelState.AddModelError(nameof(BudgetCategory.EffectiveFrom), ex.Message); return(null); } }, { typeof(ExpenseTrackerException), ex => { return(NotFound()); } } }; }
/// <summary> /// Initializes a new instance of the CategoryController /// </summary> /// <param name="categoryManager"></param> /// <param name="hostingEnvironment"></param> public CategoryController(ICategoryManagerService categoryManager, IHostingEnvironment hostingEnvironment) { _categoryManager = categoryManager; _hostingEnvironment = hostingEnvironment; }