public WinLoss(List <GameStats> stats, string text, SerializableVersion version) { _percent = text == "%"; _stats = stats; Text = text; Version = version == null ? "ALL" : version.ToString("v{M}.{m}"); }
public bool Equals(SerializableVersion sv) { // If parameter is null return false: if((object)sv == null) return false; // Return true if the fields match: return Major == sv.Major && Minor == sv.Minor && Revision == sv.Revision && Build == sv.Build; }
public bool Equals(SerializableVersion sv) { // If parameter is null return false: if ((object)sv == null) { return(false); } // Return true if the fields match: return(this.Major == sv.Major && this.Minor == sv.Minor && this.Revision == sv.Revision && this.Build == sv.Build); }
private void SaveDeckWithOverwriteCheck(SerializableVersion newVersion, bool saveAsNew = false) { if (saveAsNew) { EditingDeck = false; _newDeck.ResetVersions(); _newDeck.ResetHearthstatsIds(); _newDeck.DeckId = Guid.NewGuid(); _newDeck.Archived = false; } SaveDeck(EditingDeck, newVersion); DeckPickerList.UpdateArchivedClassVisibility(); editedDeckName = string.Empty; }
private async Task SaveDeckWithOverwriteCheck(SerializableVersion newVersion, bool saveAsNew = false) { var deckName = TextBoxDeckName.Text; if (saveAsNew) { EditingDeck = false; _newDeck.ResetVersions(); } else if (!EditingDeck && DeckList.DecksList.Any(d => d.Name == deckName)) { var settings = new MetroDialogSettings { AffirmativeButtonText = "Overwrite", NegativeButtonText = "Set new name" }; var keepStatsInfo = Config.Instance.KeepStatsWhenDeletingDeck ? "The stats will be moved to the default-deck (can be changed in options)" : "The stats will be deleted (can be changed in options)"; var result = await this.ShowMessageAsync("A deck with that name already exists", "Overwriting the deck can not be undone!\n" + keepStatsInfo, MessageDialogStyle.AffirmativeAndNegative, settings); if (result == MessageDialogResult.Affirmative) { Deck oldDeck; while ((oldDeck = DeckList.DecksList.FirstOrDefault(d => d.Name == deckName)) != null) { DeleteDeck(oldDeck); } SaveDeck(true, newVersion); } else if (result == MessageDialogResult.Negative) { SaveDeck(false, newVersion); } } SaveDeck(EditingDeck, newVersion); editedDeckName = string.Empty; }
private async Task SaveDeckWithOverwriteCheck(SerializableVersion newVersion, bool saveAsNew = false) { var deckName = TextBoxDeckName.Text; if (saveAsNew) { EditingDeck = false; _newDeck.ResetVersions(); _newDeck.ResetHearthstatsIds(); _newDeck.DeckId = Guid.NewGuid(); _newDeck.Archived = false; } /*else if(!EditingDeck && DeckList.DecksList.Any(d => d.Name == deckName)) * { * var settings = new MetroDialogSettings {AffirmativeButtonText = "Overwrite", NegativeButtonText = "Set new name"}; * * var keepStatsInfo = Config.Instance.KeepStatsWhenDeletingDeck * ? "The stats will be moved to the default-deck (can be changed in options)" * : "The stats will be deleted (can be changed in options)"; * var result = * await * this.ShowMessageAsync("A deck with that name already exists", "Overwriting the deck can not be undone!\n" + keepStatsInfo, * MessageDialogStyle.AffirmativeAndNegative, settings); * if(result == MessageDialogResult.Affirmative) * { * Deck oldDeck; * while((oldDeck = DeckList.DecksList.FirstOrDefault(d => d.Name == deckName)) != null) * DeleteDeck(oldDeck); * * SaveDeck(true, newVersion); * } * else if(result == MessageDialogResult.Negative) * SaveDeck(false, newVersion); * }*/ SaveDeck(EditingDeck, newVersion); DeckPickerList.UpdateArchivedClassVisibility(); editedDeckName = string.Empty; }
private async void SaveDeck(bool overwrite, SerializableVersion newVersion) { var deckName = TextBoxDeckName.Text; if (string.IsNullOrEmpty(deckName)) { var settings = new MetroDialogSettings { AffirmativeButtonText = "Set", DefaultText = deckName }; var name = await this.ShowInputAsync("No name set", "Please set a name for the deck", settings); if (String.IsNullOrEmpty(name)) { return; } deckName = name; TextBoxDeckName.Text = name; } /*while(DeckList.DecksList.Any(d => d.Name == deckName) && (!EditingDeck || !overwrite)) * { * var settings = new MetroDialogSettings {AffirmativeButtonText = "Set", DefaultText = deckName}; * var name = * await * this.ShowInputAsync("Name already exists", "You already have a deck with that name, please select a different one.", settings); * * if(String.IsNullOrEmpty(name)) * return; * * deckName = name; * TextBoxDeckName.Text = name; * }*/ if (_newDeck.Cards.Sum(c => c.Count) != 30) { var settings = new MetroDialogSettings { AffirmativeButtonText = "Yes", NegativeButtonText = "No" }; var result = await this.ShowMessageAsync("Not 30 cards", string.Format("Deck contains {0} cards. Is this what you want to save anyway?", _newDeck.Cards.Sum(c => c.Count)), MessageDialogStyle.AffirmativeAndNegative, settings); if (result != MessageDialogResult.Affirmative) { return; } } var previousVersion = _newDeck.Version; if (overwrite && (_newDeck.Version != newVersion)) { AddDeckHistory(); _newDeck.Version = newVersion; _newDeck.SelectedVersion = newVersion; _newDeck.HearthStatsDeckVersionId = ""; //UpdateDeckHistoryPanel(_newDeck, false); } if (EditingDeck && overwrite) { DeckList.Instance.Decks.Remove(_newDeck); //DeckPickerList.RemoveDeck(_newDeck); } var oldDeckName = _newDeck.Name; _newDeck.Name = deckName; var newDeckClone = (Deck)_newDeck.Clone(); newDeckClone.Archived = false; DeckList.Instance.Decks.Add(newDeckClone); newDeckClone.LastEdited = DateTime.Now; DeckList.Save(); Logger.WriteLine("Saved Decks", "SaveDeck"); if (EditingDeck) { TagControlEdit.SetSelectedTags(new List <string>()); if (deckName != oldDeckName) { var statsEntry = DeckStatsList.Instance.DeckStats.FirstOrDefault(ds => ds.BelongsToDeck(_newDeck)); if (statsEntry != null) { if (overwrite) { statsEntry.Name = deckName; Logger.WriteLine("Deck has new name, updated deckstats", "SaveDeck"); } else { var newStatsEntry = DeckStatsList.Instance.DeckStats.FirstOrDefault(ds => ds.BelongsToDeck(_newDeck)); if (newStatsEntry == null) { newStatsEntry = new DeckStats(_newDeck); DeckStatsList.Instance.DeckStats.Add(newStatsEntry); } foreach (var game in statsEntry.Games) { newStatsEntry.AddGameResult(game.CloneWithNewId()); } Logger.WriteLine("cloned gamestats for \"Set as new\"", "SaveDeck"); } DeckStatsList.Save(); } } } if (Config.Instance.HearthStatsAutoUploadNewDecks && HearthStatsAPI.IsLoggedIn) { Logger.WriteLine("auto uploading new/edited deck", "SaveDeck"); if (EditingDeck) { if (previousVersion != newVersion) { HearthStatsManager.UploadVersionAsync(newDeckClone, _originalDeck.HearthStatsIdForUploading, background: true); } else { HearthStatsManager.UpdateDeckAsync(newDeckClone, background: true); } } else { HearthStatsManager.UploadDeckAsync(newDeckClone, background: true); } } //after cloning the stats, otherwise new stats will be generated //DeckPickerList.AddAndSelectDeck(newDeckClone); EditingDeck = false; foreach (var tag in _newDeck.Tags) { SortFilterDecksFlyout.AddSelectedTag(tag); } DeckPickerList.SelectDeckAndAppropriateView(newDeckClone); CloseNewDeck(); ClearNewDeckSection(); }
public WinLoss(List<GameStats> stats, string text, SerializableVersion version) { _percent = text == "%"; _stats = stats; Text = text; Version = version == null ? "ALL" : version.ToString("v{M}.{m}"); }
private void SaveDeckWithOverwriteCheck(SerializableVersion newVersion, bool saveAsNew = false) { if(saveAsNew) { EditingDeck = false; _newDeck.ResetVersions(); _newDeck.ResetHearthstatsIds(); _newDeck.DeckId = Guid.NewGuid(); _newDeck.Archived = false; } SaveDeck(EditingDeck, newVersion); DeckPickerList.UpdateArchivedClassVisibility(); editedDeckName = string.Empty; }
public async void SaveDeck(bool overwrite, SerializableVersion newVersion, bool workInProgressDeck = false) { var deckName = TextBoxDeckName.Text; if(string.IsNullOrEmpty(deckName)) { var settings = new MetroDialogSettings {AffirmativeButtonText = "Set", DefaultText = deckName}; var name = await this.ShowInputAsync("No name set", "Please set a name for the deck", settings); if(string.IsNullOrEmpty(name)) return; deckName = name; TextBoxDeckName.Text = name; } if(_newDeck.Cards.Sum(c => c.Count) != 30 && workInProgressDeck == false) { var settings = new MetroDialogSettings {AffirmativeButtonText = "Yes", NegativeButtonText = "No"}; var result = await this.ShowMessageAsync("Not 30 cards", string.Format("Deck contains {0} cards. Is this what you want to save anyway?", _newDeck.Cards.Sum(c => c.Count)), MessageDialogStyle.AffirmativeAndNegative, settings); if(result != MessageDialogResult.Affirmative) return; } var previousVersion = _newDeck.Version; if(overwrite && (_newDeck.Version != newVersion)) { AddDeckHistory(); _newDeck.Version = newVersion; _newDeck.SelectedVersion = newVersion; _newDeck.HearthStatsDeckVersionId = ""; } if(EditingDeck && overwrite) DeckList.Instance.Decks.Remove(_newDeck); var oldDeckName = _newDeck.Name; _newDeck.Name = deckName; var newDeckClone = (Deck)_newDeck.Clone(); newDeckClone.Archived = false; DeckList.Instance.Decks.Add(newDeckClone); newDeckClone.LastEdited = DateTime.Now; DeckList.Save(); Logger.WriteLine("Saved Decks", "SaveDeck"); if(EditingDeck) { TagControlEdit.SetSelectedTags(new List<string>()); if(deckName != oldDeckName) { var statsEntry = DeckStatsList.Instance.DeckStats.FirstOrDefault(ds => ds.BelongsToDeck(_newDeck)); if(statsEntry != null) { if(overwrite) { statsEntry.Name = deckName; Logger.WriteLine("Deck has new name, updated deckstats", "SaveDeck"); foreach(var game in statsEntry.Games) game.DeckName = deckName; } else { var newStatsEntry = DeckStatsList.Instance.DeckStats.FirstOrDefault(ds => ds.BelongsToDeck(_newDeck)); if(newStatsEntry == null) { newStatsEntry = new DeckStats(_newDeck); DeckStatsList.Instance.DeckStats.Add(newStatsEntry); } foreach(var game in statsEntry.Games) newStatsEntry.AddGameResult(game.CloneWithNewId()); Logger.WriteLine("cloned gamestats for \"Set as new\"", "SaveDeck"); } DeckStatsList.Save(); } } } if(Config.Instance.HearthStatsAutoUploadNewDecks && HearthStatsAPI.IsLoggedIn) { Logger.WriteLine("auto uploading new/edited deck", "SaveDeck"); if(EditingDeck) { if(previousVersion != newVersion) HearthStatsManager.UploadVersionAsync(newDeckClone, _originalDeck.HearthStatsIdForUploading, background: true); else HearthStatsManager.UpdateDeckAsync(newDeckClone, background: true); } else HearthStatsManager.UploadDeckAsync(newDeckClone, background: true); } //after cloning the stats, otherwise new stats will be generated //DeckPickerList.AddAndSelectDeck(newDeckClone); if(EditingDeck) DeckManagerEvents.OnDeckUpdated.Execute(newDeckClone); else DeckManagerEvents.OnDeckCreated.Execute(newDeckClone); EditingDeck = false; foreach(var tag in _newDeck.Tags) SortFilterDecksFlyout.AddSelectedTag(tag); DeckPickerList.SelectDeckAndAppropriateView(newDeckClone); DeckPickerList.UpdateDecks(forceUpdate: new[] {newDeckClone}); CloseNewDeck(); ClearNewDeckSection(); }
public static SerializableVersion IncreaseMinor(SerializableVersion sv) { return(new SerializableVersion(sv.Major, sv.Minor + 1)); }
public static SerializableVersion IncreaseMinor(SerializableVersion sv) => new SerializableVersion(sv.Major, sv.Minor + 1);
private void ComboBoxVersions_OnSelectionChanged(object sender, SelectionChangedEventArgs e) => SelectedVersion = ComboBoxVersions.SelectedItem as SerializableVersion;
private void ComboBoxVersions_OnSelectionChanged(object sender, SelectionChangedEventArgs e) { SelectedVersion = ComboBoxVersions.SelectedItem as SerializableVersion; }
public static SerializableVersion IncreaseMajor(SerializableVersion sv) { return new SerializableVersion(sv.Major + 1, 0); }