private void GivenServicesReturnProvidedValues(
            AdminUser?adminUser,
            int delegateCount,
            int courseCount,
            int adminCount,
            int centreRank,
            int ticketCountForAdmin,
            int ticketCountForCentre
            )
        {
            A.CallTo(() => centresDataService.GetCentreDetailsById(CentreId))
            .Returns(CentreTestHelper.GetDefaultCentre(CentreId));
            A.CallTo(() => userDataService.GetAdminUserById(AdminId))
            .Returns(adminUser);

            A.CallTo(() => userDataService.GetNumberOfApprovedDelegatesAtCentre(CentreId)).Returns(delegateCount);
            A.CallTo(
                () =>
                courseDataService.GetNumberOfActiveCoursesAtCentreFilteredByCategory(
                    CentreId,
                    adminUser !.CategoryIdFilter
                    )
                ).Returns(courseCount);
            A.CallTo(() => userDataService.GetNumberOfActiveAdminsAtCentre(CentreId)).Returns(adminCount);
            A.CallTo(() => centresService.GetCentreRankForCentre(CentreId)).Returns(centreRank);
            A.CallTo(() => supportTicketDataService.GetNumberOfUnarchivedTicketsForAdminId(AdminId))
            .Returns(ticketCountForAdmin);
            A.CallTo(() => supportTicketDataService.GetNumberOfUnarchivedTicketsForCentreId(CentreId))
            .Returns(ticketCountForCentre);
        }
        public void GetNumberOfUnarchivedTicketsForAdminId_returns_expected_count()
        {
            // When
            var count = supportTicketDataService.GetNumberOfUnarchivedTicketsForAdminId(3534);

            // Then
            count.Should().Be(5);
        }
        public CentreDashboardInformation?GetDashboardInformationForCentre(int centreId, int adminId)
        {
            var adminUser = userDataService.GetAdminUserById(adminId);
            var centre    = centresDataService.GetCentreDetailsById(centreId);

            if (centre == null || adminUser == null)
            {
                return(null);
            }

            var delegateCount = userDataService.GetNumberOfApprovedDelegatesAtCentre(centreId);
            var courseCount   =
                courseDataService.GetNumberOfActiveCoursesAtCentreFilteredByCategory(
                    centreId,
                    adminUser !.CategoryIdFilter
                    );
            var adminCount         = userDataService.GetNumberOfActiveAdminsAtCentre(centreId);
            var supportTicketCount = adminUser.IsCentreManager
                ? ticketDataService.GetNumberOfUnarchivedTicketsForCentreId(centreId)
                : ticketDataService.GetNumberOfUnarchivedTicketsForAdminId(adminId);
            var centreRank = centresService.GetCentreRankForCentre(centreId);

            return(new CentreDashboardInformation(centre, adminUser, delegateCount, courseCount, adminCount, supportTicketCount, centreRank));
        }