public void ConfigureServices(IServiceCollection services)
        {
            // Examinations
            IExaminationRepository        examinationRepository        = new ExaminationSqlRepository(GetContextFactory());
            IShiftRepository              shiftRepository              = new ShiftSqlRepository(GetContextFactory());
            IExaminationSchedulingService examinationSchedulingService =
                new ExaminationSchedulingService(examinationRepository, shiftRepository);

            DoctorAvailabilityService availabilityService = new DoctorAvailabilityService(shiftRepository, examinationRepository);
            ExaminationService        examinationService  = new ExaminationService(examinationRepository, shiftRepository);

            IConnection             patientConnection       = CreateConnection(UserUrl, "user/patient");
            IConnection             doctorConnection        = CreateConnection(UserUrl, "user/doctor");
            IConnection             roomConnection          = CreateConnection(HospitalUrl, "hospital/room");
            ExaminationServiceProxy examinationServiceProxy =
                new ExaminationServiceProxy(
                    examinationService,
                    roomConnection, doctorConnection, patientConnection);

            // Recommendations
            IRecommendationService recommendationService =
                new RecommendationService(examinationRepository, shiftRepository, doctorConnection);

            // Diagnoses
            IDiagnosisRepository diagnosisRepository = new DiagnosisSqlRepository(GetContextFactory());
            IDiagnosisService    diagnosisService    = new DiagnosisService(diagnosisRepository);

            services.Add(new ServiceDescriptor(typeof(IDiagnosisService), diagnosisService));
            services.Add(new ServiceDescriptor(typeof(ExaminationServiceProxy), examinationServiceProxy));
            services.Add(new ServiceDescriptor(typeof(RecommendationService), recommendationService));
            services.Add(new ServiceDescriptor(typeof(DoctorAvailabilityService), availabilityService));
            services.Add(new ServiceDescriptor(typeof(IExaminationSchedulingService), examinationSchedulingService));

            services.AddControllers().AddNewtonsoftJson(x => x.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore);
        }
Beispiel #2
0
 public ExaminationController(ExaminationServiceProxy examinationService, RecommendationService recommendationService,
                              IExaminationSchedulingService examinationSchedulingService)
 {
     _examinationService           = examinationService;
     _recommendationService        = recommendationService;
     _examinationSchedulingService = examinationSchedulingService;
 }