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 ActionResult Index(ExpenseReportSearchModel.SearchFilters filters)
        {
            var model = new ExpenseReportSearchModel();
            if (filters != null)
                model.Filters = filters;

            var submitter = _bus.Send(new EmployeeByUserNameQuery(model.Filters.Submitter)).Result;
            var approver = _bus.Send(new EmployeeByUserNameQuery(model.Filters.Approver)).Result;
            var status = !string.IsNullOrWhiteSpace(model.Filters.Status) ? ExpenseReportStatus.FromKey(model.Filters.Status) : null;

            var specification = new ExpenseReportSpecificationQuery
            {
                Approver = approver,
                Submitter = submitter,
                Status = status
            };

            ExpenseReport[] orders = _bus.Send(specification).Results;

            model.Results = orders;

            return View(model);
        }