private void Button_Cancel_Click(object sender, RoutedEventArgs e) { if (TableTo == null) { MessageBox.Show("Please open a database to continue.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } for (int i = 0; i < changesTo.Count; i++) { CardItem card = changesTo[i]; if (card.IsOriginal) { card.IsDeleted = false; card.IsNew = false; } else { changesTo.RemoveAt(i); card.IsNew = false; i--; } } ListBox_TransTo.Items.Refresh(); ListBox_TransFrom.Items.Refresh(); hasChanges = false; }
private void LoadFromCard(CardItem card, string databasePath) { ///<summary> ///[Card Types?] Monster Type?/Attribute? ///[Level] ATK/DEF PendScaleL/PendScaleR ///Card Text ///</summary> //Get Zip File Path string imageFile = Path.GetDirectoryName(databasePath) + "\\pics\\" + card.Code + ".jpg"; string zipFileName = GetZipFilePath(databasePath); //if (Image_SelCard.Source != null) Image_SelCard.Source; if (File.Exists(imageFile)) { using (var fileStream = File.Open(imageFile, FileMode.Open)) using (var memoryStream = new MemoryStream()) { fileStream.CopyTo(memoryStream); memoryStream.Position = 0; var bitmap = new BitmapImage(); bitmap.BeginInit(); bitmap.CacheOption = BitmapCacheOption.OnLoad; bitmap.StreamSource = memoryStream; bitmap.EndInit(); Image_SelCard.Source = bitmap; } } else if (File.Exists(zipFileName)) { using (var zipFile = ZipFile.OpenRead(zipFileName)) { var picEntry = zipFile.GetEntry("pics/" + card.Code + ".jpg"); if (picEntry != null) { using (var zipStream = picEntry.Open()) using (var memoryStream = new MemoryStream()) { if (Image_SelCard.Source != null) { ((BitmapImage)Image_SelCard.Source).StreamSource.Close(); } zipStream.CopyTo(memoryStream); // here memoryStream.Position = 0; var bitmap = new BitmapImage(); bitmap.BeginInit(); bitmap.CacheOption = BitmapCacheOption.OnLoad; bitmap.StreamSource = memoryStream; bitmap.EndInit(); Image_SelCard.Source = bitmap; } } } } }
private void ListBox_TransTo_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { if (ListBox_TransTo.SelectedItem == null) { return; } CardItem selectedCard = (CardItem)ListBox_TransTo.SelectedItem; if (selectedCard.IsNew) { LoadFromCard(selectedCard, fromFilePath); } else { LoadFromCard(selectedCard, toFilePath); } }
private void Button_Transfer_Click(object sender, RoutedEventArgs e) { if (TableTo == null || TableFrom == null) { //Check if Database has been Opened (Initialized) MessageBox.Show("Please open a database to continue.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } else if (ListBox_TransFrom.SelectedItem == null) { //Make Sure Item is Selected MessageBox.Show("Select a card to transfer.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } //Add New Card to Changes CardItem selectedCard = (CardItem)ListBox_TransFrom.SelectedItem; int index = changesTo.FindIndex(item => item.Code == selectedCard.Code); //Determine whether to Update or Add card if (index != -1) { if (!changesTo[index].IsNew) { //Set the Change as Replacement IsNew = true & IsDeleted = true changesTo[index].IsNew = true; changesTo[index].IsDeleted = true; } } else { changesTo.Add(selectedCard); //Add New Card to List ListBox_TransTo.Items.Refresh(); selectedCard.IsNew = true; } //Refresh List SortListChanged(); }
private void Button_Delete_Click(object sender, RoutedEventArgs e) { if (TableTo == null) { MessageBox.Show("Please open a database to continue.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } else if (ListBox_TransTo.SelectedItem == null) { MessageBox.Show("Select a card to delete.", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } //Get Selected Item CardItem selectedCard = (CardItem)ListBox_TransTo.SelectedItem; //Remove from List if it is not already in Database Originally if (!selectedCard.IsOriginal) { changesTo.Remove(selectedCard); selectedCard.IsNew = false; } else { if (selectedCard.IsNew) { selectedCard.IsNew = false; selectedCard.IsDeleted = false; } else { selectedCard.IsDeleted = true; } } //Prevent Loading new Database SortListChanged(); }
private bool FilterFunc(CardItem card, System.Windows.Controls.TextBox nameBox, System.Windows.Controls.TextBox codeBox) { return((card.Name.Contains(nameBox.Text) || nameBox.Foreground != Brushes.Black) && (card.Code.ToString().Contains(codeBox.Text) || codeBox.Foreground != Brushes.Black)); }