コード例 #1
0
        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;
                }
            }
        }
コード例 #2
0
            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);
            }
コード例 #3
0
            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);
            }
コード例 #4
0
 private void SetValueModificaMode(PrenotazioneSingola selectedPrenotazione)
 {
     _comboBoxIdTessera.Enabled = false;
     SetValueClienteModificaMode(selectedPrenotazione);
     SetValueSalaModificaMode(selectedPrenotazione.Sala);
     SetValueDataOreModificaMode(selectedPrenotazione.DataInizio, selectedPrenotazione.OraInizio, selectedPrenotazione.OraFine);
 }
コード例 #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;
            }
        }
コード例 #6
0
            /*
             * 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);
            }
コード例 #7
0
 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;
 }
コード例 #8
0
 internal bool ModificaPrenotazioneSingola(PrenotazioneSingola prenotazioneSingola)
 {
     if (CheckPrenotazione(prenotazioneSingola))
     {
         ShowConfirmPrenotazioneSingola("Modifica", prenotazioneSingola);
         return(true);
     }
     else
     {
         MessageBox.Show("ERRORE: orario già occupato");
         return(false);
     }
 }
コード例 #9
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;
            }
            }
        }
コード例 #10
0
            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);
            }
コード例 #11
0
        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");
            }
        }
コード例 #12
0
        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);
        }
コード例 #13
0
        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 ");
                }
            }
        }
コード例 #14
0
 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;
             }
         }
     }
 }
コード例 #15
0
        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;
            }
        }
コード例 #16
0
        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();
        }
コード例 #17
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);
            }
コード例 #18
0
            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);
            }
コード例 #19
0
ファイル: MainView.cs プロジェクト: Sallivan80/MUSEICA
        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);
                }
            }
        }
コード例 #20
0
            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);
            }
コード例 #21
0
            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);
            }
コード例 #22
0
ファイル: DataManager.cs プロジェクト: Sallivan80/MUSEICA
 public bool UpdatePrenotazioneSingola(PrenotazioneSingola prenotazioneSingola)
 {
     _prenotazionePersister.GetRemover("XML").RemovePrenotazione(prenotazioneSingola);
     _prenotazionePersister.GetSaver("XML").SavePrenotazioneSingola(prenotazioneSingola);
     return(true);
 }
コード例 #23
0
ファイル: DataManager.cs プロジェクト: Sallivan80/MUSEICA
        public bool SavePrenotazioneSingola(PrenotazioneSingola prenotazioneSingola)
        {
            _prenotazionePersister.GetSaver("XML").SavePrenotazioneSingola(prenotazioneSingola);

            return(true);
        }
コード例 #24
0
 private void ModificaPrenotazionePeriodica(PrenotazioneSingola newPrenotazioneSingola, PrenotazioneSingola oldPrenotazioneSingola)
 {
     _controllerPrenotazionePeriodica.UpdatePrenotazionePeriodica(newPrenotazioneSingola, oldPrenotazioneSingola);
 }
コード例 #25
0
            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);
            }
コード例 #26
0
        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);
        }
コード例 #27
0
 private void ModificaModeComponents()
 {
     _selectedPrenotazione = _controllerPrenotazione.FindPrenotazioneById(_idPrenotazione);
     _idPrenotazione       = _selectedPrenotazione.IdPrenotazione;
     SetValueModificaMode(_selectedPrenotazione);
 }