public ActionResult DepartmentMeritSummary(string id)
        {
            if (User.IsInRole("manage-all") ||
                User.IsInRole("read-" + id))
            {
                var department = DbContext.Departments
                    .Include("Unit")
                    .Where(d => d.Id == id)
                    .ToList()[0];

                var salaries = DbContext.Salaries
                    .Include("Person")
                    .Include("Person.Employments")
                    .Where(s => s.Person.Employments.Any(e => e.DepartmentId == id))
                    .OrderBy(s => s.RankType.SequenceValue)
                        .ThenBy(s => s.Person.LastName)
                    .ToList();

                var package = new ExcelPackage();
                var departments = new List<Department>() { department };
                var report = new MeritSummaryReport(package, departments, salaries, false);

                return File(report.Package.GetAsByteArray(), report.FileType, report.FileName);
            }

            return new HttpUnauthorizedResult();
        }
        public ActionResult UnitMeritSummary(string id)
        {
            var authorizedDepartments = GetAuthorizedDepartments(id);

            if (authorizedDepartments.Count > 0)
            {
                var salaries = DbContext.Salaries
                    .Include("Person")
                    .Include("Person.Employments")
                    .Where(s => s.Person.Employments.Any(e => e.Department.UnitId == id))
                    .OrderBy(s => s.RankType.SequenceValue)
                    .ThenBy(s => s.Person.LastName)
                    .ToList();

                var package = new ExcelPackage();
                var report = new MeritSummaryReport(package, authorizedDepartments, salaries, true);

                return File(report.Package.GetAsByteArray(), report.FileType, report.FileName);
            }

            return new HttpUnauthorizedResult();
        }