public static SearchSave Load(string filename) { try { var ret = new SearchSave(); var bf = new BinaryFormatter(); using (var fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.None)) { ret = (SearchSave)bf.Deserialize(fs); } ret.FileName = filename; ret.Name = new FileInfo(ret.FileName).Name; return ret; } catch (Exception e) { Log.Warn("Load Error " + filename, e); TopMostMessageBox.Show( "There was an error loading your search. Please consult the log files.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } return null; }
public static SearchSave Load(string filename) { try { var ret = new SearchSave(); var bf = new BinaryFormatter(); using (var fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.None)) { ret = (SearchSave)bf.Deserialize(fs); } ret.FileName = filename; ret.Name = new FileInfo(ret.FileName).Name; return(ret); } catch (Exception e) { Log.Warn("Load Error " + filename, e); TopMostMessageBox.Show( "There was an error loading your search. Please consult the log files.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } return(null); }
private void LoadSearchClick(object sender, RoutedEventArgs e) { if ((SubscriptionModule.Get().IsSubscribed ?? false) == false) { var res = TopMostMessageBox.Show( "Bummer. This is a subscriber only feature...If you would like to enable this, please visit http://www.octgn.net and subscribe, I know I would!" + Environment.NewLine + "Would you like to go there now?", "Oh No!", MessageBoxButton.YesNo, MessageBoxImage.Exclamation); if (res == MessageBoxResult.Yes) { var url = SubscriptionModule.Get().GetSubscribeUrl(new SubType() { Description = "", Name = "" }); if (url != null) { Program.LaunchUrl(url); } } return; } if (!IsGameLoaded) { return; } var save = SearchSave.Load(); if (save == null) { return; } var ctrl = new SearchControl(Game, save) { SearchIndex = Searches.Count == 0 ? 1 : Searches.Max(x => x.SearchIndex) + 1 }; ctrl.CardAdded += AddResultCard; ctrl.CardRemoved += RemoveResultCard; ctrl.CardSelected += CardSelected; LoadFonts(ctrl.resultsGrid); Searches.Add(ctrl); searchTabs.SelectedIndex = Searches.Count - 1; }
public static SearchSave Create(SearchControl control) { var ss = new SearchSave(); ss.GameId = control.Game.Id; ss.Name = control.SearchName.Clone() as string; ss.FileName = control.FileName.Clone() as string; // Load filters var generator = control.filterList.ItemContainerGenerator; for (int i = 0; i < control.filterList.Items.Count; i++) { var container = generator.ContainerFromIndex(i); var filterCtrl = (FilterControl)VisualTreeHelper.GetChild(container, 0); ss.AddFilter(filterCtrl); } return ss; }
public static SearchSave Create(SearchControl control) { var ss = new SearchSave(); ss.GameId = control.Game.Id; ss.Name = control.SearchName.Clone() as string; ss.FileName = control.FileName.Clone() as string; // Load filters var generator = control.filterList.ItemContainerGenerator; for (int i = 0; i < control.filterList.Items.Count; i++) { var container = generator.ContainerFromIndex(i); var filterCtrl = (FilterControl)VisualTreeHelper.GetChild(container, 0); ss.AddFilter(filterCtrl); } return(ss); }
private void SaveSearchAsClick(object sender, RoutedEventArgs e) { if ((SubscriptionModule.Get().IsSubscribed ?? false) == false) { var res = TopMostMessageBox.Show( "This feature is only for subscribers. Please visit http://www.octgn.net for subscription information." + Environment.NewLine + "Would you like to go there now?", "Oh No!", MessageBoxButton.YesNo, MessageBoxImage.Exclamation); if (res == MessageBoxResult.Yes) { var url = SubscriptionModule.Get().GetSubscribeUrl(new SubType() { Description = "", Name = "" }); if (url != null) { Program.LaunchUrl(url); } } return; } // Grab the selected search tab if (searchTabs.SelectedItem == null) { return; } if (!IsGameLoaded) { return; } var search = searchTabs.SelectedItem as SearchControl; var save = SearchSave.Create(search); if (save.SaveAs()) { search.FileName = save.FileName; search.SearchName = save.Name; } }
private void LoadSearchClick(object sender, RoutedEventArgs e) { if ((SubscriptionModule.Get().IsSubscribed ?? false) == false) { var res = TopMostMessageBox.Show( "This feature is only for subscribers. Please visit http://www.octgn.net for subscription information." + Environment.NewLine + "Would you like to go there now?", "Oh No!", MessageBoxButton.YesNo, MessageBoxImage.Exclamation); if (res == MessageBoxResult.Yes) { var url = SubscriptionModule.Get().GetSubscribeUrl(new SubType() { Description = "", Name = "" }); if (url != null) { Program.LaunchUrl(url); } } return; } if (!IsGameLoaded) { return; } var save = SearchSave.Load(); if (save == null) { return; } var game = GameManager.Get().GetById(save.GameId); if (game == null) { TopMostMessageBox.Show("You don't have the game for this search installed", "Oh No", MessageBoxButton.OK, MessageBoxImage.Error); return; } else if (Game.Id != save.GameId) { TopMostMessageBox.Show( "This search is for the game " + game.Name + ". You currently have the game " + Game.Name + " loaded so you can not load this search.", "Oh No", MessageBoxButton.OK, MessageBoxImage.Error); return; } var ctrl = new SearchControl(Game, save) { SearchIndex = Searches.Count == 0 ? 1 : Searches.Max(x => x.SearchIndex) + 1 }; ctrl.CardAdded += AddResultCard; ctrl.CardRemoved += RemoveResultCard; ctrl.CardSelected += CardSelected; LoadFonts(ctrl.resultsGrid); Searches.Add(ctrl); searchTabs.SelectedIndex = Searches.Count - 1; }
// Why are we poluting the code with snide comments instead of fixing the problem or making a generic TODO (V)_V // Actually, the more that I think about it, the more I think that the first comment is actually a bad idea. (V)_V public SearchControl(DataNew.Entities.Game loadedGame, SearchSave save) { NumMod = ""; var game = GameManager.Get().GetById(save.GameId); if (game == null) { TopMostMessageBox.Show("You don't have the game for this search installed", "Oh No", MessageBoxButton.OK, MessageBoxImage.Error); save = null; } else if (loadedGame.Id != save.GameId) { TopMostMessageBox.Show( "This search is for the game " + game.Name + ". You currently have the game " + loadedGame.Name + " loaded so you can not load this search.", "Oh No", MessageBoxButton.OK, MessageBoxImage.Error); save = null; } Game = loadedGame; InitializeComponent(); filtersList.ItemsSource = Enumerable.Repeat<object>("First", 1).Union( Enumerable.Repeat<object>(new SetPropertyDef(Game.Sets()), 1).Union( game.AllProperties().Where(p => !p.Hidden))); this.GenerateColumns(game); FileName = ""; if (save != null) { this.SearchName = save.Name; this.FileName = save.FileName; // Load filters foreach (var filter in save.Filters) { DataNew.Entities.PropertyDef prop; if (filter.IsSetProperty) { prop = filtersList.Items.OfType<SetPropertyDef>().First(); } else { prop = loadedGame.CustomProperties.FirstOrDefault( x => x.Name.Equals(filter.PropertyName, StringComparison.InvariantCultureIgnoreCase)); } if (prop == null) continue; filterList.Items.Add(prop); } this.Loaded += (sender, args) => { var generator = filterList.ItemContainerGenerator; for (int i = 0; i < filterList.Items.Count; i++) { DependencyObject container = generator.ContainerFromIndex(i); var filterCtrl = (FilterControl)VisualTreeHelper.GetChild(container, 0); var filter = save.Filters[i]; filterCtrl.SetFromSave(Game, filter); } this.RefreshSearch(SearchButton, null); }; } this.UpdateDataGrid(game.AllCards().ToDataTable(Game).DefaultView); UpdateCount(); }
public SearchControl(DataNew.Entities.Game loadedGame, SearchSave save) { NumMod = ""; var game = GameManager.Get().GetById(save.GameId); if (game == null) { TopMostMessageBox.Show("You don't have the game for this search installed", "Oh No", MessageBoxButton.OK, MessageBoxImage.Error); save = null; } else if (loadedGame.Id != save.GameId) { TopMostMessageBox.Show( "This search is for the game " + game.Name + ". You currently have the game " + loadedGame.Name + " loaded so you can not load this search.", "Oh No", MessageBoxButton.OK, MessageBoxImage.Error); save = null; } Game = loadedGame; InitializeComponent(); filtersList.ItemsSource = Enumerable.Repeat <object>("First", 1) .Union(Enumerable.Repeat <object>(new SetPropertyDef(Game.Sets()), 1)) .Union(game.AllProperties().Where(p => !p.Hidden)); this.GenerateColumns(game); FileName = ""; if (save != null) { this.SearchName = save.Name; this.FileName = save.FileName; // Load filters foreach (var filter in save.Filters) { DataNew.Entities.PropertyDef prop; if (filter.IsSetProperty) { prop = filtersList.Items.OfType <SetPropertyDef>().First(); } else { prop = loadedGame.AllProperties().FirstOrDefault( x => x.Name.Equals(filter.PropertyName, StringComparison.InvariantCultureIgnoreCase)); } if (prop == null) { continue; } filterList.Items.Add(prop); } RoutedEventHandler loadedEvent = null; loadedEvent = (sender, args) => { this.Loaded -= loadedEvent; var generator = filterList.ItemContainerGenerator; for (int i = 0; i < filterList.Items.Count; i++) { DependencyObject container = generator.ContainerFromIndex(i); var filterCtrl = (FilterControl)VisualTreeHelper.GetChild(container, 0); var filter = save.Filters[i]; filterCtrl.SetFromSave(Game, filter); } this.RefreshSearch(SearchButton, null); }; this.Loaded += loadedEvent; } this.UpdateDataGrid(game.AllCards(true).ToDataTable(Game).DefaultView); UpdateCount(); }