コード例 #1
0
        public async Task <IActionResult> AddAsync(
            [FromBody] AddExpenseCommand command)
        {
            var result = await _mediator.Send(command);

            return(result.ToActionResult());
        }
コード例 #2
0
        public AddExpenseViewModel(int userId)
        {
            CategoryDetailsDAL categoryDetailsDAL = new CategoryDetailsDAL();

            this.UserId             = userId;
            AddExpenseCommand       = new AddExpenseCommand(this);
            AddExpenseCancelCommand = new AddExpenseCancelCommand(this);
            LogoutCommand           = new LogoutCommand();
            Categories = new ObservableCollection <CategoryDetails>(categoryDetailsDAL.GetCategories());
        }
コード例 #3
0
        public async Task <IActionResult> Add([FromBody] AddExpenseCommand command)
        {
            var result = await _handler.Handle(command);

            if (!_handler.Valid)
            {
                return(BadRequest(_handler.Notifications));
            }

            return(Ok(result));
        }
コード例 #4
0
        public void ShouldCreateExpense()
        {
            new DatabaseTester().Clean();
            var creator  = new Employee("1", "1", "1", "1");
            var assignee = new Employee("2", "2", "2", "2");
            var report   = new ExpenseReport
            {
                Submitter   = creator,
                Approver    = assignee,
                Title       = "foo",
                Description = "bar",
                Number      = "123"
            };
            var request = new AddExpenseCommand
            {
                Report      = report,
                CurrentUser = creator,
                Amount      = 100.00m,
                Description = "foo",
                CurrentDate = new DateTime(2000, 1, 1)
            };

            using (ISession session = DataContext.GetTransactedSession())
            {
                session.SaveOrUpdate(assignee);
                session.SaveOrUpdate(creator);
                session.SaveOrUpdate(report);
                session.Transaction.Commit();
            }

            IContainer container = DependencyRegistrarModule.EnsureDependenciesRegistered();
            var        bus       = container.GetInstance <Bus>();

            bus.Send(request);

            ExpenseReport loadedReport;

            using (ISession session = DataContext.GetTransactedSession())
            {
                loadedReport = session.Load <ExpenseReport>(report.Id);
            }
            loadedReport.GetExpenses().Count().ShouldEqual(1);
            loadedReport.GetExpenses()[0].Amount.ShouldEqual(100);
            loadedReport.GetExpenses()[0].Description.ShouldEqual("foo");
        }
        public void ShouldCreateExpense()
        {
            new DatabaseTester().Clean();
            var creator = new Employee("1", "1", "1", "1");
            var assignee = new Employee("2", "2", "2", "2");
            var report = new ExpenseReport
            {
                Submitter = creator,
                Approver = assignee,
                Title = "foo",
                Description = "bar",
                Number = "123"
            };
            var request = new AddExpenseCommand
            {
                Report = report,
                CurrentUser = creator,
                Amount = 100.00m,
                Description = "foo",
                CurrentDate = new DateTime(2000, 1,1 )
            };

            using (ISession session = DataContext.GetTransactedSession())
            {
                session.SaveOrUpdate(assignee);
                session.SaveOrUpdate(creator);
                session.SaveOrUpdate(report);
                session.Transaction.Commit();
            }

            IContainer container = DependencyRegistrarModule.EnsureDependenciesRegistered();
            var bus = container.GetInstance<Bus>();
            bus.Send(request);

            ExpenseReport loadedReport;
            using (ISession session = DataContext.GetTransactedSession())
            {
                loadedReport = session.Load<ExpenseReport>(report.Id);
            }
            loadedReport.GetExpenses().Count().ShouldEqual(1);
            loadedReport.GetExpenses()[0].Amount.ShouldEqual(100);
            loadedReport.GetExpenses()[0].Description.ShouldEqual("foo");
        }
コード例 #6
0
 public async Task <int> Add(AddExpenseCommand command)
 {
     return(await Mediator.Send(command));
 }
コード例 #7
0
        public async Task <IActionResult> AddNewExpense(AddExpenseCommand cmd)
        {
            var result = await _commandDispatcher.SendAsync(cmd);

            return(Created($"/expenses/{result:N}", result));
        }
コード例 #8
0
 public void Add([FromBody] AddExpenseCommand command)
 {
     _addExpenseCommandHandler.Handle(command);
 }