public AssessmentsController(AssessmentsService service)
 {
     _assessmentsService = service;
 }
        private IAssessmentsService SetupAssessmentsService(
            IRepository <AssessmentRequest> assessmentRequests       = null,
            IRepository <AssessmentSubmission> assessmentSubmissions = null,
            IMessageService messageService                 = null,
            ITaskRunner taskRunner                         = null,
            ILecturesService lecturesService               = null,
            IApplicationSettings applicationSettings       = null,
            IRepository <CourseSubscription> subscriptions = null,
            IRouteProvider routeProvider                   = null,
            ICertificatesService certificatesService       = null,
            IRepository <Course> courses                   = null)
        {
            if (assessmentRequests == null)
            {
                assessmentRequests = new Mock <IRepository <AssessmentRequest> >().Object;
            }

            if (assessmentSubmissions == null)
            {
                assessmentSubmissions = new Mock <IRepository <AssessmentSubmission> >().Object;
            }

            if (messageService == null)
            {
                messageService = new Mock <IMessageService>().Object;
            }

            if (taskRunner == null)
            {
                taskRunner = new Mock <ITaskRunner>().Object;
            }

            if (lecturesService == null)
            {
                lecturesService = new Mock <ILecturesService>().Object;
            }

            if (applicationSettings == null)
            {
                applicationSettings = new Mock <IApplicationSettings>().Object;
            }

            if (subscriptions == null)
            {
                subscriptions = new Mock <IRepository <CourseSubscription> >().Object;
            }

            if (routeProvider == null)
            {
                routeProvider = new Mock <IRouteProvider>().Object;
            }

            if (certificatesService == null)
            {
                certificatesService = new Mock <ICertificatesService>().Object;
            }

            if (courses == null)
            {
                courses = new Mock <IRepository <Course> >().Object;
            }

            var service = new AssessmentsService(assessmentRequests, assessmentSubmissions, messageService, taskRunner, lecturesService, applicationSettings, subscriptions, routeProvider, certificatesService, courses);

            return(service);
        }