using System.Configuration;
using System.Web.Routing;
using ARA.Warehouse.Exam.Apps.ReportView.Areas.Management.Controllers;
using ARA.Warehouse.Exam.Apps.ReportView.Controllers;
using ARA.Warehouse.Exam.Business.Services;
using ARA.Workflow.Primordial.Business.Repositories;
using ARA.Workflow.Primordial.Business.Services;
namespace ARA.Warehouse.Exam.Apps.ReportView
public class ReportViewControllerFactory : DefaultControllerFactory
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
string connectionString = ConfigurationManager.ConnectionStrings["ExamRepository"].ConnectionString;
string primConnectionString = ConfigurationManager.ConnectionStrings["PrimordialContext"].ConnectionString;
var examRepository = new SqlExamRepository(connectionString);
var synapseRepository = new ARA.PACS.Integration.Data.Synapse.SynapseStudyRepository();
if (controllerType.IsSubclassOf(typeof(ReportViewControllerBase)))
IController controller = Activator.CreateInstance(controllerType, new[] { new ExamRepositoryService(new ExamRepository()) }) as Controller;
else if (controllerType == typeof(PrimordialController))
IController controller = Activator.CreateInstance(controllerType, new[] { new PrimordialService(new SqlPrimordialRepository()) }) as Controller;
return base.GetControllerInstance(requestContext, controllerType);