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); }
public AvailabilityController(DoctorAvailabilityService doctorAvailabilityService) { this.doctorAvailabilityService = doctorAvailabilityService; }