protected override void OnStartup(StartupEventArgs e)
 {
     base.OnStartup(e);
     var wrappedRepository = new ServiceRepository();
     var repository = new CachingRepository(wrappedRepository);
     var viewModel = new MainWindowViewModel(repository);
     Application.Current.MainWindow = new MainWindow(viewModel);
     Application.Current.MainWindow.Show();
 }
        public static IPersonRepository GetRepository(string repositoryType)
        {
            IPersonRepository repository = null;

            switch (repositoryType)
            {
                case "Service": repository = new ServiceRepository();
                    break;
                case "CSV": repository = new CSVRepository();
                    break;
                case "SQL": repository = new SQLRepository();
                    break;
                default:
                    throw new ArgumentException("Invalid repository type");
            }

            return repository;
        }
 public MainWindowViewModel()
 {
     Repository = new ServiceRepository();
 }