Example #1
0
        private static void ComposeObjects()
        {
            //ServiceReader reader = new ServiceReader();

            //CSVReader reader = new CSVReader();

            //SQLReader reader = new SQLReader();

            ServiceReader   wrapperReader = new ServiceReader();
            CachingReader   reader        = new CachingReader(wrapperReader);
            PeopleViewModel viewModel     = new PeopleViewModel(reader);

            Current.MainWindow = new PeopleViewerWindow(viewModel);
        }
Example #2
0
        private static void ComposeObjectsForViewer()
        {
            // var reader = new ServiceReader();  //First Data Reader
            //var reader = new CSVReader();    //Second Data Reader
            var sqlReader     = new SQLReader();
            var serviceReader = new ServiceReader();

            var reader = new CachingReader(sqlReader);


            var mainviewModel = new PeopleViewModel(reader);

            Application.Current.MainWindow       = new PeopleViewerWindow(mainviewModel);
            Application.Current.MainWindow.Title = "Saja Makes the Dependency Injection Happen in WPFPlusASPNetCore 2020";
            Application.Current.MainWindow.Show();
        }
Example #3
0
        private static void ComposeObjects()
        {
            // Data Reader
            var readerUri = new ServiceReaderUri("http://localhost:9874");
            var reader    = new ServiceReader(readerUri);

            // Retry Function
            var delay       = new TimeSpan(0, 0, 3);
            var retryReader = new RetryReader(reader, delay);

            // Exception Logging Function
            var logFilePath   = AppDomain.CurrentDomain.BaseDirectory + "ExceptionLog.txt";
            var logger        = new FileLogger(logFilePath);
            var loggingReader = new ExceptionLoggingReader(retryReader, logger);

            // Caching Function
            var cachingReader = new CachingReader(loggingReader);

            var viewModel = new PeopleViewModel(retryReader);

            Application.Current.MainWindow = new MainWindow(viewModel);
        }
 //public PeopleViewerWindow()
 //{
 //    InitializeComponent();
 //    viewModel = new PeopleViewModel();          // 'new' --> requires a compile-time reference, Lifetime responisibility of the object. This pattern (Tight Coupling) goes along all App layers (projects)...
 //    this.DataContext = viewModel;
 //}
 public PeopleViewerWindow(PeopleViewModel peopleViewModel)      // Instead of managing the Dependency ourselves, we use Constructor DI. This class is no longer responsible for the PeopleViewModel. App.xaml is...
 {
     InitializeComponent();
     viewModel        = peopleViewModel;
     this.DataContext = viewModel;
 }
 public MainWindow(PeopleViewModel viewModel)
 {
     InitializeComponent();
     ViewModel   = viewModel ?? throw new ArgumentNullException("'viewModel' parameter cannot be null");
     DataContext = ViewModel;
 }
 public PeopleViewerWindow()
 {
     InitializeComponent();
     viewModel        = new PeopleViewModel();
     this.DataContext = viewModel;
 }
 public MainWindow(PeopleViewModel viewModel)
 {
     InitializeComponent();
     ViewModel   = viewModel;
     DataContext = ViewModel;
 }
Example #8
0
 public PeopleViewerWindow(PeopleViewModel peopleViewModel)
 {
     InitializeComponent();
     viewModel        = peopleViewModel;
     this.DataContext = viewModel;
 }
Example #9
0
 public MainWindow()
 {
     InitializeComponent();
     ViewModel   = new PeopleViewModel();
     DataContext = ViewModel;
 }
 public MainWindow(PeopleViewModel viewModel)
 {
     InitializeComponent();
     ViewModel   = viewModel ?? throw new ArgumentNullException(nameof(viewModel));
     DataContext = ViewModel;
 }