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);
            }
Beispiel #3
0
            /*
             * 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);
            }
Beispiel #4
0
        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;
            }
            }
        }
Beispiel #5
0
        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;
            }
        }
Beispiel #6
0
        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);
                }
            }
        }