private void ChangeSession(string name) { if (String.IsNullOrEmpty(name)) { SelectedSession = null; SessionName = String.Empty; selectedSessionName = null; newSession = true; IsRuleset = false; SessionClips = new ObservableCollection <AudioClip>(); SessionClipsView = CollectionViewSource.GetDefaultView(SessionClips); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(SelectedSessionName))); } else { SelectedSession = SessionsMgr.GetSessionCopy(name); originalSessionName = name; selectedSessionName = name; SessionName = name; if (SelectedSession != null) { IsRuleset = SelectedSession.IsRuleset; newSession = false; SessionClips = new ObservableCollection <AudioClip>(SelectedSession.SessionAudioClips); SessionClipsView = CollectionViewSource.GetDefaultView(SessionClips); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(SessionNames))); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(SelectedSessionName))); } } UpdateAudioClips(); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(SessionClips))); }
private void SaveSession(object obj) { MessageWin messageWin; var msg = "Session saved."; int ret; if (newSession) { ret = SessionsMgr.AddSession(SessionName, null); if (ret < 0) { msg = ret == -1 ? "Error: Problem saving session to database." : "Error: Session name already exists - please choose another name."; messageWin = new MessageWin("Save Session", msg); messageWin.Show(); return; } else { SelectedSession = SessionsMgr.GetSessionCopy(SessionName); msg = "New session saved."; } } SelectedSession.IsRuleset = IsRuleset; string newSessionName = SessionName; SelectedSession.SessionName = SessionName; selectedSessionName = SessionName; SelectedSession.SessionAudioClipsList.Clear(); if (SessionClips != null) { foreach (var sessionClip in SessionClips) { SelectedSession.SessionAudioClipsList.Add(sessionClip.ClipId); } } ret = SessionsMgr.UpdateSession(SelectedSession); if (ret > 0) { EventSystem.Publish(new SessionsInventoryChanged()); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(SessionNames))); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(SelectedSessionName))); ChangeSession(newSessionName); EventSystem.Publish(new SessionInventoryChanged() { SessionName = newSessionName }); } else if (ret == -1) { msg = "Error: Session name already exists - please choose another name."; } else if (ret == -2) { msg = "Error: Problem saving session to database."; } else { msg = "Error: Problem saving session audioClips to database."; } messageWin = new MessageWin("Save Session", msg); messageWin.Show(); }