Esempio n. 1
0
        public ActionResult Index()
        {
            var model = new ToDoModel();

            Employee currentUser = _session.GetCurrentUser();
            var assignedSpecification = new SearchSpecification();
            assignedSpecification.MatchApprover(currentUser);
            assignedSpecification.MatchStatus(ExpenseReportStatus.Submitted);
            ExpenseReport[] assigned = _repository.GetMany(assignedSpecification);
            model.Submitted = assigned;

            var inProgressSpecification = new SearchSpecification();
            inProgressSpecification.MatchApprover(currentUser);
            inProgressSpecification.MatchStatus(ExpenseReportStatus.Approved);
            ExpenseReport[] inProgress = _repository.GetMany(inProgressSpecification);
            model.Approved = inProgress;

            return PartialView(model);
        }
        public ActionResult Index(ExpenseReportSearchModel.SearchFilters filters)
        {
            var model = new ExpenseReportSearchModel();
            if (filters != null)
                model.Filters = filters;

            var accountManager = _employeeRepository.GetByUserName(model.Filters.Submitter);
            var practiceOwner = _employeeRepository.GetByUserName(model.Filters.Approver);
            var status = !string.IsNullOrWhiteSpace(model.Filters.Status) ? ExpenseReportStatus.FromKey(model.Filters.Status) : null;

            var specification = new SearchSpecification();
            specification.MatchSubmitter(accountManager);
            specification.MatchApprover(practiceOwner);
            specification.MatchStatus(status);
            ExpenseReport[] orders = _expenseReportRepository.GetMany(specification);

            model.Results = orders;

            return View(model);
        }
Esempio n. 3
0
        public ActionResult Index()
        {
            var model = new ToDoModel();

            Employee currentUser           = _session.GetCurrentUser();
            var      assignedSpecification = new SearchSpecification();

            assignedSpecification.MatchApprover(currentUser);
            assignedSpecification.MatchStatus(ExpenseReportStatus.Submitted);
            ExpenseReport[] assigned = _repository.GetMany(assignedSpecification);
            model.Submitted = assigned;

            var inProgressSpecification = new SearchSpecification();

            inProgressSpecification.MatchApprover(currentUser);
            inProgressSpecification.MatchStatus(ExpenseReportStatus.Approved);
            ExpenseReport[] inProgress = _repository.GetMany(inProgressSpecification);
            model.Approved = inProgress;

            return(PartialView(model));
        }
        public void ShouldSearchBySpecificationWithFullSpecification()
        {
            new DatabaseTester().Clean();

            var employee1 = new Employee("1", "1", "1", "1");
            var employee2 = new Employee("2", "2", "2", "2");
            var order1    = new ExpenseReport();

            order1.Submitter = employee2;
            order1.Approver  = employee1;
            order1.Number    = "123";
            order1.Status    = ExpenseReportStatus.Submitted;
            var order2 = new ExpenseReport();

            order2.Submitter = employee1;
            order2.Approver  = employee2;
            order2.Number    = "456";
            order2.Status    = ExpenseReportStatus.Draft;

            ISession session = DataContext.GetTransactedSession();

            session.SaveOrUpdate(employee1);
            session.SaveOrUpdate(employee2);
            session.SaveOrUpdate(order1);
            session.SaveOrUpdate(order2);
            session.Transaction.Commit();
            session.Dispose();

            var repository    = new ExpenseReportRepository();
            var specification = new SearchSpecification();

            specification.MatchStatus(ExpenseReportStatus.Submitted);
            specification.MatchSubmitter(employee2);
            specification.MatchApprover(employee1);
            ExpenseReport[] orders = repository.GetMany(specification);

            Assert.That(orders.Length, Is.EqualTo(1));
            Assert.That(orders[0].Id, Is.EqualTo(order1.Id));
        }
Esempio n. 5
0
        public ActionResult Index(ExpenseReportSearchModel.SearchFilters filters)
        {
            var model = new ExpenseReportSearchModel();

            if (filters != null)
            {
                model.Filters = filters;
            }

            var accountManager = _employeeRepository.GetByUserName(model.Filters.Submitter);
            var practiceOwner  = _employeeRepository.GetByUserName(model.Filters.Approver);
            var status         = !string.IsNullOrWhiteSpace(model.Filters.Status) ? ExpenseReportStatus.FromKey(model.Filters.Status) : null;

            var specification = new SearchSpecification();

            specification.MatchSubmitter(accountManager);
            specification.MatchApprover(practiceOwner);
            specification.MatchStatus(status);
            ExpenseReport[] orders = _expenseReportRepository.GetMany(specification);

            model.Results = orders;

            return(View(model));
        }
        public void ShouldSearchBySpecificationWithStatus()
        {
            new DatabaseTester().Clean();

            var employee1 = new Employee("1", "1", "1", "1");
            var employee2 = new Employee("2", "2", "2", "2");
            var order1 = new ExpenseReport();
            order1.Submitter = employee2;
            order1.Approver = employee1;
            order1.Number = "123";
            order1.Status = ExpenseReportStatus.Submitted;
            var order2 = new ExpenseReport();
            order2.Submitter = employee1;
            order2.Approver = employee2;
            order2.Number = "456";
            order2.Status = ExpenseReportStatus.Draft;

            ISession session = DataContext.GetTransactedSession();
            session.SaveOrUpdate(employee1);
            session.SaveOrUpdate(employee2);
            session.SaveOrUpdate(order1);
            session.SaveOrUpdate(order2);
            session.Transaction.Commit();
            session.Dispose();

            var repository = new ExpenseReportRepository();
            var specification = new SearchSpecification();
            specification.MatchStatus(ExpenseReportStatus.Submitted);
            ExpenseReport[] orders = repository.GetMany(specification);

            Assert.That(orders.Length, Is.EqualTo(1));
            Assert.That(orders[0].Id, Is.EqualTo(order1.Id));
        }