//Prepare a new session public void PrepareSession(Session session = null) { SessionThread?.Join(); if (session == null) { CurrentSession = new Session { Username = SettingsManager.Instance.Settings["api"]["user"] }; } else { CurrentSession = session; } if (CurrentSession.ReadOnly) { OsuUser currentUserData = null; try { currentUserData = OsuApi.GetUser(CurrentSession.Username, (OsuMode)Enum.Parse(typeof(OsuMode), SettingsManager.Instance.Settings["api"]["gamemode"])); } catch (Exception) { BrowserViewModel.Instance.SendNotification(NotificationType.Danger, StringStorage.Get("Message.UserDataError")); return; } BrowserViewModel.Instance.ApplySession(CurrentSession); BrowserViewModel.Instance.ApplyUser(currentUserData); StopProgressHandler(); BrowserViewModel.Instance.AttachedJavascriptWrapper.Hide("#sessionProgressTime"); BrowserViewModel.Instance.AttachedJavascriptWrapper.Show("#sessionProgressReadonly"); string startDate = DateTimeOffset.FromUnixTimeSeconds(CurrentSession.SessionDate).ToString("MMMM dd yyyy HH:mm:ss"); string endDate = DateTimeOffset.FromUnixTimeSeconds(CurrentSession.SessionEndDate).ToString("MMMM dd yyyy HH:mm:ss"); BrowserViewModel.Instance.AttachedJavascriptWrapper.SetHtml("#sessionProgressReadonlyText", startDate + " to " + endDate); } else { SessionThread = new ExtendedThread(() => OnUpdate(), Convert.ToInt32(SettingsManager.Instance.Settings["api"]["updateRate"])); lastIteration = DateTimeOffset.Now.ToUnixTimeSeconds(); nextIteration = DateTimeOffset.Now.ToUnixTimeSeconds() + SessionThread.SleepTime; StartProgressHandler(); SessionThread.Start(); BrowserViewModel.Instance.AttachedJavascriptWrapper.Hide("#sessionProgressReadonly"); if (SettingsManager.Instance.Settings["display"]["showTimer"] == "true") { BrowserViewModel.Instance.AttachedJavascriptWrapper.Show("#sessionProgressTime"); } } }
public void Stop() { StopProgressHandler(); SessionThread?.Join(); if (File.Exists("Data/stored_sessions.json")) { File.Delete("Data/stored_sessions.json"); } using (StreamWriter sw = new StreamWriter("Data/stored_sessions.json")) { string data = JsonConvert.SerializeObject(SessionFiles); sw.Write(data); sw.Close(); } }