private void saveDraftButton_Click(object sender, EventArgs e) { var saveFile = new SaveFileDialog(); saveFile.Filter = "Json|*.json;"; if (saveFile.ShowDialog() == DialogResult.OK) { try { File.WriteAllText(saveFile.FileName, JsonWorker.CardSerialize(viewedCard)); } catch (Exception) { } MessageBox.Show("Draft saved"); } }
private void loadDraftButton_Click(object sender, EventArgs e) { var openDraftFileDialog = new OpenFileDialog(); Stream fileStream = null; openDraftFileDialog.Filter = "Json files (*.json, *.txt) | *.json; *.txt;"; openDraftFileDialog.FileOk += CheckJsonFileExt; if (openDraftFileDialog.ShowDialog() == DialogResult.OK && (fileStream = openDraftFileDialog.OpenFile()) != null) { try { string fileName = openDraftFileDialog.FileName; using (fileStream) { string filelines = File.ReadAllText(fileName); card = JsonWorker.CardDeserialize(filelines); try { createNewCardButton.Enabled = false; groupBox1.Show(); groupBox2.Show(); groupBox3.Show(); groupBox4.Show(); choosePictureButton.Show(); //fill form fields from drafft file nameTextBox.Text = card.Name; descriptionTextBox.Text = card.Description; picturePathLabel.Text = card.PicturePath; pictureBox1.Image = Image.FromFile(card.PicturePath); switch (card.CardType) { case "ClassCard": doorTypeRadioButton.Checked = true; cardSubTypeGroupBox.Show(); (cardSubTypeGroupBox.Controls[0] as RadioButton).Checked = true; break; case "CurseCard": doorTypeRadioButton.Checked = true; cardSubTypeGroupBox.Show(); (cardSubTypeGroupBox.Controls[1] as RadioButton).Checked = true; break; case "ModifierCard": doorTypeRadioButton.Checked = true; (cardSubTypeGroupBox.Controls[2] as RadioButton).Checked = true; additionalParamsGroupBox.Controls[1].Controls[0].Text = ((ModifierCard)card).Sign; additionalParamsGroupBox.Controls[0].Controls[0].Text = ((ModifierCard)card).Modifier.ToString(); cardSubTypeGroupBox.Show(); break; case "MonsterCard": doorTypeRadioButton.Checked = true; (cardSubTypeGroupBox.Controls[3] as RadioButton).Checked = true; additionalParamsGroupBox.Controls[0].Controls[0].Text = ((MonsterCard)card).Level.ToString(); additionalParamsGroupBox.Controls[1].Controls[0].Text = ((MonsterCard)card).Race.ToString(); additionalParamsGroupBox.Controls[2].Controls[0].Text = ((MonsterCard)card).TreasureReward.ToString(); additionalParamsGroupBox.Controls[3].Controls[0].Text = ((MonsterCard)card).LevelReward.ToString(); additionalParamsGroupBox.Controls[4].Controls[0].Text = ((MonsterCard)card).BadStuff.ToString(); cardSubTypeGroupBox.Show(); break; case "RaceCard": doorTypeRadioButton.Checked = true; (cardSubTypeGroupBox.Controls[4] as RadioButton).Checked = true; cardSubTypeGroupBox.Show(); break; case "GoUpALevelCard": (cardSubTypeGroupBox.Controls[0] as RadioButton).Checked = true; cardSubTypeGroupBox.Show(); break; case "ItemCard": treasureTypeRadioButton.Checked = true; (cardSubTypeGroupBox.Controls[1] as RadioButton).Checked = true; additionalParamsGroupBox.Controls[0].Controls[0].Text = ((ItemCard)card).Modifier.ToString(); additionalParamsGroupBox.Controls[1].Controls[0].Text = ((ItemCard)card).Sign.ToString(); additionalParamsGroupBox.Controls[2].Controls[0].Text = ((ItemCard)card).Restriction.ToString(); additionalParamsGroupBox.Controls[3].Controls[0].Text = ((ItemCard)card).PartOfBody.ToString(); additionalParamsGroupBox.Controls[4].Controls[0].Text = ((ItemCard)card).Cost.ToString(); (additionalParamsGroupBox.Controls[5] as CheckBox).Checked = ((ItemCard)card).IsBigItem; cardSubTypeGroupBox.Show(); break; case "OneShotTreasureCard": treasureTypeRadioButton.Checked = true; (cardSubTypeGroupBox.Controls[2] as RadioButton).Checked = true; (additionalParamsGroupBox.Controls[0].Controls[0] as TextBox).Text = ((OneShotTreasureCard)card).Cost.ToString(); cardSubTypeGroupBox.Show(); additionalParamsGroupBox.Show(); break; case "Other": otherTypeRadioButton.Checked = true; (cardSubTypeGroupBox.Controls[0] as RadioButton).Checked = true; cardSubTypeGroupBox.Show(); break; } } catch (Exception) { MessageBox.Show("Error: Could not set some fields from file"); } } } catch (Exception ex) { MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message); } } }