Example #1
0
        public ExecutableManager(RiZhi log)
        {
            _log = log ?? throw new ArgumentNullException(nameof(log));

            // Get the exeInfoFile or create new one
            _exeInfoFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "executablesettings.json");
            if (!File.Exists(_exeInfoFilePath))
            {
                // Exe file is missing, set up defaults
                _log.Information($"Executable file does not exist, creating");
                Settings = new ExecutableSettings();
            }
            else
            {
                // Exe file found, load it
                try
                {
                    Settings = JsonConvert.DeserializeObject <ExecutableSettings>(File.ReadAllText(_exeInfoFilePath));
                }
                catch (Exception parseEx)
                {
                    // Failed loading, create new one instead
                    _log.Error($"Error reading executable info file, creating new one. {parseEx}");

                    Settings = new ExecutableSettings();
                }
            }

            // Refresh all known executables versions
            foreach (var executable in Settings.Executables)
            {
                UpdateExecutableVersion(executable);
            }
        }
        // public string LatestDataDragonVersion { get; private set; }

        public MainWindowViewModel(FileManager files, RequestManager requests, SettingsManager settingsManager, ReplayPlayer player, RiZhi log)
        {
            SettingsManager = settingsManager ?? throw new ArgumentNullException(nameof(settingsManager));
            _fileManager    = files ?? throw new ArgumentNullException(nameof(files));
            _log            = log ?? throw new ArgumentNullException(nameof(log));
            _player         = player ?? throw new ArgumentNullException(nameof(player));

            RequestManager = requests ?? throw new ArgumentNullException(nameof(requests));

            KnownPlayers = SettingsManager.Settings.KnownPlayers;

            PreviewReplays = new ObservableCollection <ReplayPreview>();
            FileResults    = new Dictionary <string, FileResult>();

            SortParameters = new QueryProperties
            {
                SearchTerm = String.Empty,
                SortMethod = SortMethod.DateDesc
            };

            StatusBarModel = new StatusBar();

            // By default we do not want to delete our cache
            ClearItemsCacheOnClose  = false;
            ClearChampsCacheOnClose = false;
            ClearReplayCacheOnClose = false;
        }
Example #3
0
        public MainWindow()
        {
            InitializeComponent();

            Dispatcher.UnhandledException += (object sender, DispatcherUnhandledExceptionEventArgs e) =>
            {
                _log.Error(e.Exception.ToString());
                _log.WriteLog();
            };

            _log = new RiZhi()
            {
                FilePrefix = "ReplayBookLog"
            };

            _settingsManager = new SettingsManager(_log);

            _files    = new FileManager(_settingsManager.Settings, _log);
            _requests = new RequestManager(_settingsManager.Settings, _log);

            var context = new MainWindowViewModel(_files, _requests, _settingsManager, _log);

            this.DataContext = context;

            var version = Assembly.GetEntryAssembly()?.GetName().Version.ToString(2);

            _log.Error($"Log files are generated for each run while in prerelease. Prerelease version: {version}");

            // Decide to show welcome window
            context.ShowWelcomeWindow();
            context.ShowMissingReplayFoldersMessageBox();
        }
Example #4
0
        private void CreateCommonObjects()
        {
            // Create common objects
            var assemblyName = Assembly.GetEntryAssembly()?.GetName();

            _log = new RiZhi()
            {
                FilePrefix      = "ReplayBookLog",
                AssemblyName    = assemblyName.Name,
                AssemblyVersion = assemblyName.Version.ToString(2)
            };

            try
            {
                _settingsManager = new SettingsManager(_log);
                _files           = new FileManager(_settingsManager.Settings, _log);
                _requests        = new RequestManager(_settingsManager.Settings, _log);
                _player          = new ReplayPlayer(_files, _settingsManager, _log);
            }
            catch (Exception ex)
            {
                _log.Error(ex.ToString());
                _log.WriteLog();
                throw;
            }
        }
Example #5
0
        public MainWindow(RiZhi log, SettingsManager settingsManager, RequestManager requests, FileManager files, ReplayPlayer player)
        {
            InitializeComponent();

            _log             = log;
            _settingsManager = settingsManager;
            _requests        = requests;
            _files           = files;
            _player          = player;

            _lastSelection = null;

            Dispatcher.UnhandledException += (object sender, DispatcherUnhandledExceptionEventArgs e) =>
            {
                _log.Error(e.Exception.ToString());
                _log.WriteLog();
            };

            var context = new MainWindowViewModel(_files, _requests, _settingsManager, _player, _log);

            this.DataContext = context;

            // Decide to show welcome window
            context.ShowWelcomeWindow();
            context.ShowMissingReplayFoldersMessageBox();
        }
Example #6
0
        public FileManager(ObservableSettings settings, RiZhi log)
        {
            _log = log ?? throw new ArgumentNullException(nameof(log));

            _fileSystem = new FolderRepository(settings, log);
            _db         = new DatabaseRepository(log);

            _reader = new ReplayReader(log);
        }
Example #7
0
        public RequestManager(ObservableSettings settings, RiZhi log)
        {
            _settings = settings;
            _log      = log ?? throw new ArgumentNullException(nameof(log));

            _downloadClient = new DownloadClient(_cachePath, _settings, _log);
            _cacheClient    = new CacheClient(_cachePath, _log);

            _inProgressTasks = new ConcurrentDictionary <string, Task <ResponseBase> >();
        }
Example #8
0
        public DownloadClient(string downloadPath, ObservableSettings settings, RiZhi log)
        {
            if (string.IsNullOrEmpty(downloadPath))
            {
                throw new ArgumentNullException(nameof(downloadPath));
            }

            _settings           = settings;
            _log                = log;
            _downloadRootFolder = downloadPath;
            _httpClient         = new HttpClient();
        }
Example #9
0
        public DatabaseRepository(RiZhi log)
        {
            _log = log;

            try
            {
                InitializeDatabase();
            }
            catch (Exception ex)
            {
                _log.Warning($"Database file is invalid, deleting and trying again... exception:{ex}");
                File.Delete(_filePath);
                InitializeDatabase();
            }
        }
Example #10
0
        public SettingsManager(RiZhi log)
        {
            Executables = new ExecutableManager(log);
            _log        = log;
            string configPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "appsettings.json");

            if (File.Exists(configPath))
            {
                LoadConfigFile(configPath);
            }
            else
            {
                _log.Information("No config file found, creating new defaults");
                Settings = new ObservableSettings();
            }
        }
Example #11
0
        public SettingsManager(RiZhi log)
        {
            _log        = log ?? throw new ArgumentNullException(nameof(log));
            Executables = new ExecutableManager(log);

            if (File.Exists(_configPath))
            {
                LoadConfigFile();
            }
            else
            {
                _log.Information("No config file found, creating new defaults");
                Settings = new ObservableSettings();
            }

            LoadTemporaryValues();
        }
Example #12
0
        public MainWindowViewModel(FileManager files, RequestManager requests, SettingsManager settingsManager, RiZhi log)
        {
            SettingsManager = settingsManager ?? throw new ArgumentNullException(nameof(settingsManager));
            _fileManager    = files ?? throw new ArgumentNullException(nameof(files));
            _log            = log ?? throw new ArgumentNullException(nameof(log));

            RequestManager = requests ?? throw new ArgumentNullException(nameof(requests));

            KnownPlayers = SettingsManager.Settings.KnownPlayers;

            PreviewReplays = new ObservableCollection <ReplayPreview>();
            FileResults    = new Dictionary <string, FileResult>();

            SortParameters = new QueryProperties
            {
                SearchTerm = String.Empty,
                SortMethod = SortMethod.DateDesc
            };

            StatusBarModel = new StatusBar();
        }
Example #13
0
        public static void Main(string[] args)
        {
            var log = new RiZhi
            {
                FilePrefix      = "ExampleApp",
                AssemblyVersion = "1.0.0",
                AssemblyName    = "Example Program"
            };

            log.Debug("Debug message, appears first");
            log.Information("Information message, appears second");
            log.Warning($"Warning message, appears third. Error Flag = {log.ErrorFlag}");
            log.Error("Error message, appears fourth");

            if (log.ErrorFlag)
            {
                log.Debug($"Error was logged");
            }

            log.WriteLog();
        }
Example #14
0
 public CacheClient(string cachePath, RiZhi log)
 {
     _log      = log;
     CachePath = cachePath;
 }
Example #15
0
 public FolderRepository(ObservableSettings settings, RiZhi log)
 {
     _settings = settings ?? throw new ArgumentNullException(nameof(settings));
     _log      = log ?? throw new ArgumentNullException(nameof(log));
 }
Example #16
0
 public ReplayReader(RiZhi log)
 {
     _log = log;
 }
Example #17
0
 public ReplayPlayer(FileManager files, SettingsManager settings, RiZhi log)
 {
     _files           = files;
     _settingsManager = settings;
     _log             = log;
 }