// palautteen tallennus private bool saveFeedback (Feedback newFeedback) { // lisätään xelement tiedostoon this.feedbackFile.Add( new XElement("palaute", new XElement("pvm", newFeedback.Date), new XElement("tekija", newFeedback.Name), new XElement("opittu", newFeedback.Learned), new XElement("haluanoppia", newFeedback.WantToLearn), new XElement("hyvaa", newFeedback.Good), new XElement("parannettavaa", newFeedback.Bad), new XElement("muuta", newFeedback.Other) ) ); // lisätään listaan this.feedbacks.Add(newFeedback); // edellä mainitut tehdään vaikkei tiedostoa voitaisikaan tallentaa! // tässä on kehitysversion paikka, erillinen nappi "yritä tallentamista uudestaan" tai jotain semmoista // koska data kuitenkin säilyy ohjelman sisällä try { // yritetään tallentaa xelement tiedostoa this.feedbackFile.Save(ConfigurationManager.AppSettings["XMLFilePath"]); } catch (Exception) { return false; } return true; }
// tallenna nappi private void button_send_Click(object sender, RoutedEventArgs e) { // rakennetaan olio Feedback newFeedback = new Feedback( textbox_date.Text, textbox_name.Text, textbox_learned.Text, textbox_wanttolearn.Text, textbox_good.Text, textbox_bad.Text, textbox_other.Text ); // tarkistetaan se if (newFeedback.SanityCheck()) { // tallennetaan se if (this.saveFeedback(newFeedback)) { MessageBox.Show("Palaute tallennettu!"); } else { MessageBox.Show("Tiedostoa ei voitu avata. Muutokset eivät ole pysyviä!"); } // tyhjennetään nätisti lootat.. textbox_date.Text = textbox_name.Text = textbox_learned.Text = textbox_wanttolearn.Text = textbox_good.Text = textbox_bad.Text = textbox_other.Text = ""; } else { MessageBox.Show("Kaikki kohdat ovat pakollisia!"); } }