private void _buttonOK_Click(object sender, EventArgs e) { if (CheckParameters()) { int oraInizio = Convert.ToInt32(_numericUpDownOraInizio.Value); int oraFine = Convert.ToInt32(_numericUpDownOraFine.Value); Cliente cliente = BuildCliente(); PrenotazioneSingola prenotazioneSingola = new PrenotazioneSingola(_idPrenotazione, cliente, _selectedSala, _dateTimePickerDataPrenotazione.Value, oraInizio, oraFine, _textBoxNote.Text); switch (_operazione) { case "Aggiungi": if (_controllerPrenotazione.AggiungiPrenotazioneSingola(prenotazioneSingola)) { this.Close(); } break; case "Modifica": if (_controllerPrenotazione.ModificaPrenotazioneSingola(prenotazioneSingola)) { this.Close(); } break; } } }
private void CreaNodoCliente(XmlElement clienteNode, PrenotazioneSingola prenotazioneSingola) { XmlElement IdTesseraElement = null; XmlElement scadenzaTesseraElement = null; if (prenotazioneSingola.Cliente.GetType() == typeof(ClienteRegistrato)) { IdTesseraElement = _xmlDocument.CreateElement("IdTessera"); scadenzaTesseraElement = _xmlDocument.CreateElement("ScadenzaTessera"); IdTesseraElement.InnerText = (prenotazioneSingola.Cliente as ClienteRegistrato).IdTessera; scadenzaTesseraElement.InnerText = (prenotazioneSingola.Cliente as ClienteRegistrato).ScadenzaTessera.ToShortDateString(); clienteNode.AppendChild(IdTesseraElement); clienteNode.AppendChild(scadenzaTesseraElement); } XmlElement nomeElement = _xmlDocument.CreateElement("Nome"); XmlElement cognomeElement = _xmlDocument.CreateElement("Cognome"); XmlElement telefonoElement = _xmlDocument.CreateElement("Telefono"); XmlElement indirizzoElement = _xmlDocument.CreateElement("Indirizzo"); nomeElement.InnerText = prenotazioneSingola.Cliente.Nome; cognomeElement.InnerText = prenotazioneSingola.Cliente.Cognome; telefonoElement.InnerText = prenotazioneSingola.Cliente.Telefono; indirizzoElement.InnerText = prenotazioneSingola.Cliente.Indirizzo; clienteNode.AppendChild(nomeElement); clienteNode.AppendChild(cognomeElement); clienteNode.AppendChild(telefonoElement); clienteNode.AppendChild(indirizzoElement); }
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); }
private void SetValueModificaMode(PrenotazioneSingola selectedPrenotazione) { _comboBoxIdTessera.Enabled = false; SetValueClienteModificaMode(selectedPrenotazione); SetValueSalaModificaMode(selectedPrenotazione.Sala); SetValueDataOreModificaMode(selectedPrenotazione.DataInizio, selectedPrenotazione.OraInizio, selectedPrenotazione.OraFine); }
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; } }
/* * public void UpdatePrenotazioneSingola(PrenotazioneSingola prenotazioneSingolaToUpdate) * { * * XmlNodeList nodes = _xmlDocument.SelectNodes("/Prenotazioni/PrenotazioneSingola"); * * foreach (XmlNode node in nodes) * { * string idPrenotazione = node.SelectSingleNode("IdPrenotazione").InnerText; * * if (idPrenotazione.ToLower() == prenotazioneSingolaToUpdate.IdPrenotazione.ToLower()) * { * node.SelectSingleNode("DataInizio").InnerText = prenotazioneSingolaToUpdate.DataInizio.ToShortDateString(); * node.SelectSingleNode("OraInizio").InnerText = prenotazioneSingolaToUpdate.OraInizio.ToString(); * node.SelectSingleNode("OraFine").InnerText = prenotazioneSingolaToUpdate.OraFine.ToString(); * node.SelectSingleNode("Totale").InnerText = prenotazioneSingolaToUpdate.GetTotale().ToString(); * * } * } * * _xmlDocument.Save(_fileName); * } */ public void SavePrenotazioneSingola(PrenotazioneSingola prenotazioneSingolaToSave) { XmlNodeList nodes = _xmlDocument.SelectNodes("/Prenotazioni/PrenotazioneSingola"); XmlElement prenotazioneSingolaNode = _xmlDocument.CreateElement("PrenotazioneSingola"); CreaNodoPrenotazioneSingola(prenotazioneSingolaNode, prenotazioneSingolaToSave); _xmlDocument.DocumentElement.InsertAfter(prenotazioneSingolaNode, _xmlDocument.DocumentElement.LastChild); _xmlDocument.Save(_fileName); }
private void SetValueClienteModificaMode(PrenotazioneSingola selectedPrenotazione) { if (selectedPrenotazione.Cliente.GetType() == typeof(ClienteRegistrato)) { SetValueClienteRegistratoModificaMode(selectedPrenotazione.Cliente as ClienteRegistrato); } _textBoxNomeCliente.Text = selectedPrenotazione.Cliente.Nome; _textBoxCognomeCliente.Text = selectedPrenotazione.Cliente.Cognome; _textBoxIndirizzoCliente.Text = selectedPrenotazione.Cliente.Indirizzo; _textBoxTelefono.Text = selectedPrenotazione.Cliente.Telefono; }
internal bool ModificaPrenotazioneSingola(PrenotazioneSingola prenotazioneSingola) { if (CheckPrenotazione(prenotazioneSingola)) { ShowConfirmPrenotazioneSingola("Modifica", prenotazioneSingola); return(true); } else { MessageBox.Show("ERRORE: orario già occupato"); return(false); } }
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 List <PrenotazioneSingola> LoadPrenotazioniSingoleNodes(string idPrenotazionePeriodica, Cliente cliente, Sala sala, XmlNodeList nodesPrenotazioniSingole) { List <PrenotazioneSingola> result = new List <PrenotazioneSingola>(); foreach (XmlNode node in nodesPrenotazioniSingole) { DateTime data = DateTime.Parse(node.SelectSingleNode("DataInizio").InnerText); int oraInizio = Convert.ToInt32(node.SelectSingleNode("OraInizio").InnerText); int oraFine = Convert.ToInt32(node.SelectSingleNode("OraFine").InnerText); float totale = Convert.ToSingle(node.SelectSingleNode("Totale").InnerText); //NOTA BENE: IdPrenotazione Cliente Sala vengono passate al metodo perchè sono le stesse istanze della prenotazione periodica PrenotazioneSingola prenotazione = new PrenotazioneSingola(idPrenotazionePeriodica, cliente, sala, data, oraInizio, oraFine); prenotazione.Totale = totale; result.Add(prenotazione); } return(result); }
private void _buttonAggiungi_Click(object sender, EventArgs e) { DateTime data = _dateTimePickerDataPrenotazione.Value; int oraInizio = Convert.ToInt32(_numericBoxOraInizio.Value); int oraFine = Convert.ToInt32(_numericBoxOraFine.Value); string note = _textBoxNote.Text; string idPrenotazione = _idPrenotazione; PrenotazioneSingola newPrenotazione = new PrenotazioneSingola(idPrenotazione, _selectedClienteRegistrato, _selectedSala, data, oraInizio, oraFine, note); if (_prenotazioneController.CheckPrenotazioneSingola(newPrenotazione)) { _prenotazioniSingole.Add(newPrenotazione); this.Close(); } else { MessageBox.Show("ERRORE: orario già occupato"); } }
public bool CheckPrenotazioneSingola(PrenotazioneSingola prenotazioneSingola) { foreach (PrenotazioneSingola p in CentroSaleProve.GetIstance().Agenda.Prenotazioni) { if (p.Data.DayOfYear == prenotazioneSingola.Data.DayOfYear) { if (p.Sala.IdSala == prenotazioneSingola.Sala.IdSala) { if (p.OraInizio == prenotazioneSingola.OraInizio || (p.OraInizio < prenotazioneSingola.OraInizio && prenotazioneSingola.OraInizio < p.OraFine)) { return(false); } } } } return(true); }
internal void UpdatePrenotazionePeriodica(PrenotazioneSingola newPrenotazioneSingola, PrenotazioneSingola oldPrenotazioneSingola) { DialogResult result = DialogResult.No; if (CheckPrenotazione(newPrenotazioneSingola)) { result = MessageBox.Show("Confermare la modifica?", "Modifica Prenotazione", MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { //Modifico l'istanza della prenotazione nell'agenda PrenotazionePeriodica prenotazionePeriodicaToUpdate = CentroSaleProve.GetIstance().Agenda.ModificaPrenotazionePeriodica(newPrenotazioneSingola, oldPrenotazioneSingola); //Rendo persistente la modifica this.DataManager.UpdatePrenotazionePeriodica(prenotazionePeriodicaToUpdate); MessageBox.Show("Prenotazione modificata con successo "); } } }
private void CreaPrenotazionePeriodica(List <PrenotazioneSingola> prenotazioniSingole, PrenotazionePeriodica prenotazionePeriodica) { foreach (PrenotazioneSingola ps in prenotazioniSingole) { for (int i = 0; i < prenotazionePeriodica.DataFine.DayOfYear - ps.DataInizio.DayOfYear; i++) { DateTime dataTemp = ps.DataInizio.AddDays(7 * i); if (dataTemp.CompareTo(prenotazionePeriodica.DataFine) < 0) { PrenotazioneSingola newPrenotazioneSingola = new PrenotazioneSingola(prenotazionePeriodica.IdPrenotazione, prenotazionePeriodica.Cliente, prenotazionePeriodica.Sala, dataTemp, ps.OraInizio, ps.OraFine); prenotazionePeriodica.Prenotazioni.Add(newPrenotazioneSingola); } else { break; } } } }
public void AggiungiModificaPrenotazioneSingola(PrenotazioneSingola prenotazioneSingola) { switch (_operazione) { case "Aggiungi": if (_controllerPrenotazioneSingola.AggiungiPrenotazioneSingola(prenotazioneSingola)) { this.Close(); } break; case "Modifica": if (_controllerPrenotazioneSingola.ModificaPrenotazioneSingola(prenotazioneSingola)) { this.Close(); } break; } }
private void _buttonOK_Click(object sender, EventArgs e) { if (CheckParameters()) { int oraInizio = Convert.ToInt32(_numericUpDownOraInizio.Value); int oraFine = Convert.ToInt32(_numericUpDownOraFine.Value); Cliente cliente = BuildCliente(); PrenotazioneSingola newPrenotazioneSingola = new PrenotazioneSingola(_idPrenotazione, cliente, _selectedSala, _dateTimePickerDataPrenotazione.Value, oraInizio, oraFine); if (_idPrenotazione.StartsWith("S")) { AggiungiModificaPrenotazioneSingola(newPrenotazioneSingola); } else if (_idPrenotazione.StartsWith("P")) { ModificaPrenotazionePeriodica(newPrenotazioneSingola, _selectedPrenotazione); } } this.Close(); }
/* * 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 CreaNodoSala(XmlElement salaNode, PrenotazioneSingola prenotazioneSingola) { XmlElement idSalaElement = _xmlDocument.CreateElement("IdSala"); XmlElement indirizzoSalaElement = _xmlDocument.CreateElement("Indirizzo"); XmlElement nomeSalaElement = _xmlDocument.CreateElement("NomeSala"); XmlElement tipologiaElement = _xmlDocument.CreateElement("Tipologia"); XmlElement prezzoElement = _xmlDocument.CreateElement("Prezzo"); idSalaElement.InnerText = prenotazioneSingola.Sala.IdSala; indirizzoSalaElement.InnerText = prenotazioneSingola.Sala.Indirizzo; nomeSalaElement.InnerText = prenotazioneSingola.Sala.NomeSala; tipologiaElement.InnerText = prenotazioneSingola.Sala.Tipo.NomeTipologia; prezzoElement.InnerText = prenotazioneSingola.Sala.Prezzo.ToString(); salaNode.AppendChild(idSalaElement); salaNode.AppendChild(indirizzoSalaElement); salaNode.AppendChild(nomeSalaElement); salaNode.AppendChild(tipologiaElement); salaNode.AppendChild(prezzoElement); }
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); } } }
public List <PrenotazioneSingola> LoadPrenotazioniSingole() { List <PrenotazioneSingola> prenotazioniSingole = new List <PrenotazioneSingola>(); XmlNodeList nodes = _xmlDocument.DocumentElement.SelectNodes("/Prenotazioni/PrenotazioneSingola"); foreach (XmlNode node in nodes) { string idPrenotazione = node.SelectSingleNode("IdPrenotazione").InnerText; Cliente cliente = LoadClienteNodes(node.SelectSingleNode("Cliente")); Sala sala = LoadSalaNodes(node.SelectSingleNode("Sala")); DateTime data = DateTime.Parse(node.SelectSingleNode("DataInizio").InnerText); int oraInizio = Convert.ToInt32(node.SelectSingleNode("OraInizio").InnerText); int oraFine = Convert.ToInt32(node.SelectSingleNode("OraFine").InnerText); float totale = Convert.ToSingle(node.SelectSingleNode("Totale").InnerText); PrenotazioneSingola prenotazione = new PrenotazioneSingola(idPrenotazione, cliente, sala, data, oraInizio, oraFine); prenotazione.Totale = totale; prenotazioniSingole.Add(prenotazione); } return(prenotazioniSingole); }
private List <PrenotazioneSingola> LoadPrenotazioniSingoleNodes(XmlNodeList prenotazioniNodes) { List <PrenotazioneSingola> result = new List <PrenotazioneSingola>(); foreach (XmlNode node in prenotazioniNodes) { string idPrenotazione = node.SelectSingleNode("IdPrenotazione").InnerText; Cliente cliente = LoadClienteNodes(node.SelectSingleNode("Cliente")); Sala sala = LoadSalaNodes(node.SelectSingleNode("Sala")); DateTime data = DateTime.Parse(node.SelectSingleNode("Data").InnerText); int oraInizio = Convert.ToInt32(node.SelectSingleNode("OraInizio").InnerText); int oraFine = Convert.ToInt32(node.SelectSingleNode("OraFine").InnerText); string descrizione = node.SelectSingleNode("Note").InnerText; float totale = Convert.ToSingle(node.SelectSingleNode("Totale").InnerText); PrenotazioneSingola prenotazione = new PrenotazioneSingola(idPrenotazione, cliente, sala, data, oraInizio, oraFine, descrizione); prenotazione.Totale = totale; result.Add(prenotazione); } return(result); }
public bool UpdatePrenotazioneSingola(PrenotazioneSingola prenotazioneSingola) { _prenotazionePersister.GetRemover("XML").RemovePrenotazione(prenotazioneSingola); _prenotazionePersister.GetSaver("XML").SavePrenotazioneSingola(prenotazioneSingola); return(true); }
public bool SavePrenotazioneSingola(PrenotazioneSingola prenotazioneSingola) { _prenotazionePersister.GetSaver("XML").SavePrenotazioneSingola(prenotazioneSingola); return(true); }
private void ModificaPrenotazionePeriodica(PrenotazioneSingola newPrenotazioneSingola, PrenotazioneSingola oldPrenotazioneSingola) { _controllerPrenotazionePeriodica.UpdatePrenotazionePeriodica(newPrenotazioneSingola, oldPrenotazioneSingola); }
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); }
internal bool CheckPrenotazione(Prenotazione prenotazione) { bool trovato = true; //Verifico il tipo di prenotazione passata if (prenotazione.GetType() == typeof(PrenotazioneSingola)) { //Controllo prima sovrapposizione con le prenotazioniSingole PrenotazioneSingola prenotazioneToCheck = prenotazione as PrenotazioneSingola; var querySingola = from prenotazioniSingole in CentroSaleProve.GetIstance().Agenda.Prenotazioni where prenotazioniSingole.GetType() == typeof(PrenotazioneSingola) select prenotazioniSingole; foreach (PrenotazioneSingola p in querySingola) { if (p.DataInizio.DayOfYear == prenotazioneToCheck.DataInizio.DayOfYear) { if (p.Sala.IdSala == prenotazioneToCheck.Sala.IdSala) { if (p.OraInizio == prenotazioneToCheck.OraInizio || (p.OraInizio < prenotazioneToCheck.OraInizio && prenotazioneToCheck.OraInizio < p.OraFine)) { trovato = false; break; } } } } //Poi controllo le prenotazioniSingole all'interno delle prenotazioniPeriodiche var queryPeriodica = from prenotazioniPeriodiche in CentroSaleProve.GetIstance().Agenda.Prenotazioni where prenotazioniPeriodiche.GetType() == typeof(PrenotazionePeriodica) select prenotazioniPeriodiche; foreach (PrenotazionePeriodica pp in queryPeriodica) { foreach (PrenotazioneSingola ps in pp.Prenotazioni) { if (ps.DataInizio.DayOfYear == prenotazioneToCheck.DataInizio.DayOfYear) { if (ps.Sala.IdSala == prenotazioneToCheck.Sala.IdSala) { if (ps.OraInizio == prenotazioneToCheck.OraInizio || (ps.OraInizio < prenotazioneToCheck.OraInizio && prenotazioneToCheck.OraInizio < ps.OraFine)) { trovato = false; break; } } } } } } else if (prenotazione.GetType() == typeof(PrenotazionePeriodica)) { PrenotazionePeriodica prenotazioneToCheck = prenotazione as PrenotazionePeriodica; foreach (PrenotazioneSingola ps in prenotazioneToCheck.Prenotazioni) { //Mando in ricorsione la funzione che verifichera per ogni prenotazioneSingola che stiamo andando ad aggiungere //non ci sia una sovrapposizione CheckPrenotazione(ps); } } return(trovato); }
private void ModificaModeComponents() { _selectedPrenotazione = _controllerPrenotazione.FindPrenotazioneById(_idPrenotazione); _idPrenotazione = _selectedPrenotazione.IdPrenotazione; SetValueModificaMode(_selectedPrenotazione); }