private void CreaNodoPrenotazioneSingola(XmlElement prenotazioneSingolaNode, PrenotazioneSingola prenotazioneSingola) { XmlElement idPrenotazioneElement = _xmlDocument.CreateElement("IdPrenotazione"); XmlElement clienteNode = _xmlDocument.CreateElement("Cliente"); XmlElement salaNode = _xmlDocument.CreateElement("Sala"); XmlElement dataElement = _xmlDocument.CreateElement("Data"); XmlElement oraInizioElement = _xmlDocument.CreateElement("OraInizio"); XmlElement oraFineElement = _xmlDocument.CreateElement("OraFine"); XmlElement descrizioneElement = _xmlDocument.CreateElement("Note"); XmlElement totaleElement = _xmlDocument.CreateElement("Totale"); idPrenotazioneElement.InnerText = prenotazioneSingola.IdPrenotazione; //CLIENTE CreaNodoCliente(clienteNode, prenotazioneSingola); //SALA CreaNodoSala(salaNode, prenotazioneSingola); dataElement.InnerText = prenotazioneSingola.Data.ToString(); oraInizioElement.InnerText = prenotazioneSingola.OraInizio.ToString(); oraFineElement.InnerText = prenotazioneSingola.OraFine.ToString(); descrizioneElement.InnerText = prenotazioneSingola.Note; totaleElement.InnerText = prenotazioneSingola.GetTotale().ToString(); prenotazioneSingolaNode.AppendChild(idPrenotazioneElement); prenotazioneSingolaNode.AppendChild(clienteNode); prenotazioneSingolaNode.AppendChild(salaNode); prenotazioneSingolaNode.AppendChild(dataElement); prenotazioneSingolaNode.AppendChild(oraInizioElement); prenotazioneSingolaNode.AppendChild(oraFineElement); prenotazioneSingolaNode.AppendChild(descrizioneElement); prenotazioneSingolaNode.AppendChild(totaleElement); }
public void SaveUpdatePrenotazioneSingola(PrenotazioneSingola prenotazioneSingola) { PrenotazioneSingola prenotazioneSingolaToSave = prenotazioneSingola; bool trovato = false; XmlNodeList nodes = _xmlDocument.SelectNodes("/Prenotazioni/PrenotazioneSingola"); foreach (XmlNode node in nodes) { string idPrenotazione = node.SelectSingleNode("IdPrenotazione").InnerText; if (idPrenotazione.ToLower() == prenotazioneSingola.IdPrenotazione.ToLower()) { node.SelectSingleNode("Data").InnerText = prenotazioneSingolaToSave.Data.ToShortDateString(); node.SelectSingleNode("OraInizio").InnerText = prenotazioneSingolaToSave.OraInizio.ToString(); node.SelectSingleNode("OraFine").InnerText = prenotazioneSingolaToSave.OraFine.ToString(); node.SelectSingleNode("Totale").InnerText = prenotazioneSingolaToSave.GetTotale().ToString(); node.SelectSingleNode("Note").InnerText = prenotazioneSingolaToSave.Note; _xmlDocument.Save(_fileName); trovato = true; break; } } if (!trovato)//Testato e funzionante...speriamo { XmlElement prenotazioneSingolaNode = _xmlDocument.CreateElement("PrenotazioneSingola"); CreaNodoPrenotazioneSingola(prenotazioneSingolaNode, prenotazioneSingola); _xmlDocument.DocumentElement.InsertAfter(prenotazioneSingolaNode, _xmlDocument.DocumentElement.LastChild); } _xmlDocument.Save(_fileName); }
/* * public void UpdatePrenotazionePeriodica(PrenotazionePeriodica prenotazionePeriodicaToUpdate) * { * * XmlNodeList nodes = _xmlDocument.SelectNodes("/Prenotazioni/PrenotazionePeriodica"); * foreach (XmlNode prenotazionePeriodicaNode in nodes) * { * string idPrenotazione = prenotazionePeriodicaNode.SelectSingleNode("IdPrenotazione").InnerText; * * //verifico prima l'ID Padre delle prenotazione periodica * if (idPrenotazione.ToLower() == prenotazionePeriodicaToUpdate.IdPrenotazione.ToLower()) * { * //Riscrivo la prenotazione periodica e la salvo con le nuove prenotazioni * var doc = XDocument.Load(_fileName); * * * var nodiDaRimuovere = from nodo in doc.Descendants("IdPrenotazione") * where nodo.Value == prenotazionePeriodicaToUpdate.IdPrenotazione * select nodo.Parent; //seleziono il genitore, cioè la prenotazione Periodica * string parent = nodiDaRimuovere.ToList().First().ToString(); * //rimuovo il nodo padre, cioe la prenotazione Periodica * nodiDaRimuovere.Remove(); * _xmlDocument.Save(_fileName); * doc.Save(_fileName); * break; * } * } * //Ricreo la prenotazione periodica * SavePrenotazionePeriodica(prenotazionePeriodicaToUpdate); * * } */ #region CreaNodi private private void CreaNodoPrenotazioneSingolaForPrenotazionePeriodica(PrenotazioneSingola ps, XmlElement prenotazioneSingolaNode, XmlNode prenotazionePeriodicaNode) { //Per le prenotazioni singole che fanno parte delle prenotazioni periodiche salvo solamente //la data interessata , ora inizio , ora fine, e il totale di quella determinata prenotazione singola XmlElement dataElement = _xmlDocument.CreateElement("DataInizio"); XmlElement oraInizioElement = _xmlDocument.CreateElement("OraInizio"); XmlElement oraFineElement = _xmlDocument.CreateElement("OraFine"); XmlElement totaleElement = _xmlDocument.CreateElement("Totale"); dataElement.InnerText = ps.DataInizio.ToShortDateString(); oraInizioElement.InnerText = ps.OraInizio.ToString(); oraFineElement.InnerText = ps.OraFine.ToString(); totaleElement.InnerText = ps.GetTotale().ToString(); prenotazioneSingolaNode.AppendChild(dataElement); prenotazioneSingolaNode.AppendChild(oraInizioElement); prenotazioneSingolaNode.AppendChild(oraFineElement); prenotazioneSingolaNode.AppendChild(totaleElement); prenotazionePeriodicaNode.AppendChild(prenotazioneSingolaNode); }
private void ShowConfirmPrenotazioneSingola(string operazione, PrenotazioneSingola prenotazioneSingola) { DialogResult result = DialogResult.No; switch (operazione) { case "Aggiungi": { //Verifico se il cliente è reigstrato, in caso positivo faccio calcolare lo sconto alla classe PrezzoProvider if (prenotazioneSingola.Cliente.GetType() == typeof(ClienteRegistrato)) { PrezzoProvider.CalcolaScontoClienteRegistrato(prenotazioneSingola); } //Costruisco la stringa che mostra il resoconto della prenotazione string resoconto = String.Format(" IdPrenotazione: {0} \r\n Cliente: {1} {2} \r\n Sala: {3} \r\n Data: {4} \r\n Ora Inizio: {5} \r\n OraFine: {6} \r\n Totale: {7} €", prenotazioneSingola.IdPrenotazione, prenotazioneSingola.Cliente.Nome, prenotazioneSingola.Cliente.Cognome, prenotazioneSingola.Sala.NomeSala, prenotazioneSingola.DataInizio.ToShortDateString(), prenotazioneSingola.OraInizio, prenotazioneSingola.OraFine, prenotazioneSingola.GetTotale()); //Mostro la MessageBox, processando poi la scelta result = MessageBox.Show(resoconto, "Conferma Prenotazione", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { //Aggiungo l'istanza della nuova prenotazione all'agenda CentroSaleProve.GetIstance().Agenda.AggiungiPrenotazione(prenotazioneSingola); //Rendo persistente su XML la nuova prenotazione this.DataManager.SavePrenotazioneSingola(prenotazioneSingola); MessageBox.Show("Prenotazione aggiunta con successo "); } break; } case "Modifica": { result = MessageBox.Show("Confermare la modifica?", "Modifica Prenotazione", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { //Modifico l'istanza della prenotazione nell'agenda CentroSaleProve.GetIstance().Agenda.ModificaPrenotazioneSingola(prenotazioneSingola); //Rendo persistente la modifica this.DataManager.UpdatePrenotazioneSingola(prenotazioneSingola); MessageBox.Show("Prenotazione modificata con successo "); } break; } } }
private void ShowConfirmPrenotazioneSingola(string operazione, PrenotazioneSingola prenotazioneSingola) { DialogResult result = DialogResult.No; switch (operazione) { case "Aggiungi": if (prenotazioneSingola.Cliente.GetType() == typeof(ClienteRegistrato)) { PrezzoProvider.CalcolaScontoClienteRegistrato(prenotazioneSingola); } string resoconto = String.Format(" IdPrenotazione: {0} \r\n Cliente: {1} {2} \r\n Sala: {3} \r\n Data: {4} \r\n Ora Inizio: {5} \r\n OraFine: {6} \r\n Totale: {7} €", prenotazioneSingola.IdPrenotazione, prenotazioneSingola.Cliente.Nome, prenotazioneSingola.Cliente.Cognome, prenotazioneSingola.Sala.NomeSala, prenotazioneSingola.Data.ToShortDateString(), prenotazioneSingola.OraInizio, prenotazioneSingola.OraFine, prenotazioneSingola.GetTotale()); result = MessageBox.Show(resoconto, "Conferma Prenotazione", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { CentroSaleProve.GetIstance().Agenda.AggiungiPrenotazione(prenotazioneSingola); this.DataManager.SavePrenotazioni(); MessageBox.Show("Prenotazione aggiunta con successo "); } break; case "Modifica": result = MessageBox.Show("Confermare la modifica?", "Modifica Prenotazione", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { CentroSaleProve.GetIstance().Agenda.ModificaPrenotazioneSingola(prenotazioneSingola); this.DataManager.SavePrenotazioni(); MessageBox.Show("Prenotazione modificata con successo "); } break; } }
private void SetValueListBoxRisultati(List <Prenotazione> result) { string prenotazioneToShow = null; _listBoxRisultatiRicerca.Items.Clear(); _labelRisultati.Text = String.Format("Risultati: {0} corrispondenze trovate", result.Count); if (result.Count == 0) { MessageBox.Show("Nessun Risultato Trovato"); } else { foreach (Prenotazione p in result) { PrenotazioneSingola temp = (PrenotazioneSingola)p; prenotazioneToShow = String.Format("{0}- {1} - {2} ({3}:00/{4}:00) - {5} - {6} €", p.IdPrenotazione, p.Cliente.ToString(), p.Data.ToShortDateString(), temp.OraInizio, temp.OraFine, temp.Sala.NomeSala, temp.GetTotale()); _listBoxRisultatiRicerca.Items.Add(prenotazioneToShow); } } }