internal PrenotazioneSingola FindPrenotazioneSingolaById(string selectedStringListBoxRisultatiRicerca)
        {
            string[] splitString    = selectedStringListBoxRisultatiRicerca.Split(new Char[] { '-', ':', ' ' });
            string   idPrenotaizone = splitString[0].Trim();
            string   data           = splitString[8].Trim();

            if (idPrenotaizone.StartsWith("P"))
            {
                foreach (Prenotazione p in CentroSaleProve.GetIstance().Agenda.Prenotazioni)
                {
                    if (p.IdPrenotazione == idPrenotaizone && p.GetType() == typeof(PrenotazionePeriodica))
                    {
                        foreach (PrenotazioneSingola ps in (p as PrenotazionePeriodica).Prenotazioni)
                        {
                            if (ps.DataInizio.ToShortDateString() == data)
                            {
                                return(ps);
                            }
                        }
                    }
                }
            }
            else
            {
                foreach (Prenotazione p in CentroSaleProve.GetIstance().Agenda.Prenotazioni)
                {
                    if (idPrenotaizone == p.IdPrenotazione)
                    {
                        return(p as PrenotazioneSingola);
                    }
                }
            }
            return(null);
        }
示例#2
0
        private bool ReadPrenotazioni()
        {
            List <PrenotazioneSingola>   _prenotazioniSingole    = _prenotazionePersister.GetLoader("XML").LoadPrenotazioniSingole();
            List <PrenotazionePeriodica> _prenotazioniPeriodiche = _prenotazionePersister.GetLoader("XML").LoadPrenotazioniPeriodiche();

            if (_prenotazioniSingole == null)
            {
                return(false);
            }


            foreach (PrenotazioneSingola p in _prenotazioniSingole)
            {
                CentroSaleProve.GetIstance().Agenda.AggiungiPrenotazione(p);
            }
            foreach (PrenotazionePeriodica p in _prenotazioniPeriodiche)
            {
                CentroSaleProve.GetIstance().Agenda.AggiungiPrenotazione(p);
            }


            if (CentroSaleProve.GetIstance().Agenda.Prenotazioni == null)
            {
                return(false);
            }

            return(true);
        }
示例#3
0
        private void ShowConfirm(string operazione, ClienteRegistrato cliente)
        {
            DialogResult result = DialogResult.No;

            switch (operazione)
            {
            case "Aggiungi":
                result = MessageBox.Show("Confermare la registrazione?", "Conferma Registrazione", MessageBoxButtons.YesNo);
                if (result == DialogResult.Yes)
                {
                    CentroSaleProve.GetIstance().AggiungiCliente(cliente);
                    this.DataManager.SaveClienti();
                    MessageBox.Show("Cliente registrato con successo ");
                }

                break;

            case "Modifica":
                result = MessageBox.Show("Confermare la modifica?", "Modifica Cliente", MessageBoxButtons.YesNo);
                if (result == DialogResult.Yes)
                {
                    CentroSaleProve.GetIstance().ModificaClienteRegistrato(cliente);
                    this.DataManager.SaveClienti();
                    MessageBox.Show("Cliente moodificato con successo ");
                }
                break;
            }
        }
 private void LoadComboBoxSale()
 {
     foreach (Sala s in CentroSaleProve.GetIstance().Sale)
     {
         _comboBoxSala.Items.Add(s.NomeSala);
     }
 }
示例#5
0
        private void AggiungiModeComponents()
        {
            Random rnd = new Random();

            _textBoxIdSala.Text = "000" + (rnd.Next(CentroSaleProve.GetIstance().Clienti.Count, 1000000000));
            LoadComboBoxTipologiaValue();
        }
示例#6
0
        private void ShowConfirm(string operazione, Sala sala)
        {
            DialogResult result = DialogResult.No;

            switch (operazione)
            {
            case "Aggiungi":
                result = MessageBox.Show("Confermare l'aggiunta della nuova sala?", "Conferma Aggiunta SAla", MessageBoxButtons.YesNo);
                if (result == DialogResult.Yes)
                {
                    CentroSaleProve.GetIstance().AggiungiSala(sala);
                    this.DataManager.SaveSale();
                    MessageBox.Show("Sala aggiunta con successo ");
                }

                break;

            case "Modifica":
                result = MessageBox.Show("Confermare la modifica?", "Modifica Sala", MessageBoxButtons.YesNo);
                if (result == DialogResult.Yes)
                {
                    CentroSaleProve.GetIstance().ModificaSala(sala);
                    this.DataManager.SaveSale();
                    MessageBox.Show("Sala moodificata con successo ");
                }
                break;
            }
        }
示例#7
0
 private void LoadDataProfilo()
 {
     _textBoxNomeCentroSaleProva.Text = CentroSaleProve.GetIstance().Profilo.NomeCentro;
     _textBoxIndirizzo.Text           = CentroSaleProve.GetIstance().Profilo.Indirizzo;
     _textBoxEmail.Text    = CentroSaleProve.GetIstance().Profilo.Email;
     _textBoxTelefono.Text = CentroSaleProve.GetIstance().Profilo.Telefono;
 }
示例#8
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;
            }
        }
示例#9
0
        private bool ReadClienti()
        {
            List <Cliente>           _clientiNormali    = _clientePersister.GetLoader("XML").LoadClienti();
            List <ClienteRegistrato> _clientiRegistrati = _clientePersister.GetLoader("XML").LoadClientiRegistrati();

            if (_clientiNormali == null || _clientiRegistrati == null)
            {
                return(false);
            }


            foreach (ClienteRegistrato cr in _clientiRegistrati)
            {
                CentroSaleProve.GetIstance().Clienti.Add(cr);
            }
            foreach (Cliente c in _clientiNormali)
            {
                CentroSaleProve.GetIstance().Clienti.Add(c);
            }

            if (CentroSaleProve.GetIstance().Clienti == null)
            {
                return(false);
            }

            return(true);
        }
示例#10
0
 public bool SaveSale()
 {
     foreach (Sala s in CentroSaleProve.GetIstance().Sale)
     {
         _salaPersister.GetSaver("XML").SaveUpdateSala(s);
     }
     return(true);
 }
示例#11
0
 private void LoadDataPolitica()
 {
     _textBoxPreavvisoDisdetta.Text = CentroSaleProve.GetIstance().Politica.PreavvisoDisdetta.ToString();
     _comboBoxScontoClienteRegistrato.Items.AddRange(ScontoRange());
     _comboBoxScontoPrenotazionePeriodica.Items.AddRange(ScontoRange());
     _comboBoxScontoClienteRegistrato.Text     = (CentroSaleProve.GetIstance().Politica.ScontoClienteRegistrato * 100).ToString();
     _comboBoxScontoPrenotazionePeriodica.Text = (CentroSaleProve.GetIstance().Politica.ScontoPrenotazionePeriodica * 100).ToString();
 }
示例#12
0
 private void LoadDataClienti()
 {
     _listBoxClienti.Items.Clear();
     _listBoxDettagliCliente.Items.Clear();
     foreach (ClienteRegistrato cliente in CentroSaleProve.GetIstance().Clienti)
     {
         _listBoxClienti.Items.Add(cliente.Nome + " " + cliente.Cognome);
     }
 }
示例#13
0
 private void LoadDataSale()
 {
     _listBoxSale.Items.Clear();
     _listBoxDescrizioneSale.Items.Clear();
     foreach (Sala sala in CentroSaleProve.GetIstance().Sale)
     {
         _listBoxSale.Items.Add(sala.NomeSala);
     }
 }
示例#14
0
 private bool ReadSale()
 {
     CentroSaleProve.GetIstance().Sale = _salaPersister.GetLoader("XML").LoadSale();
     if (CentroSaleProve.GetIstance().Sale == null)
     {
         return(false);
     }
     return(true);
 }
示例#15
0
        internal ClienteRegistrato FindClienteRegistratoByName(string nomeCognomeCliente)
        {
            string[] splitString = nomeCognomeCliente.Split(new Char[] { ' ', ',', '.', ':', '\t' });
            var      query       = (from cliente in CentroSaleProve.GetIstance().Clienti
                                    where cliente.GetType() == typeof(ClienteRegistrato) &&
                                    cliente.Nome == splitString[0].Trim() && cliente.Cognome == splitString[1].Trim()
                                    select cliente);

            return(query.ToList().Count == 0 ? null : query.First() as ClienteRegistrato);
        }
示例#16
0
        internal void EliminaSala(Sala salaSelected)
        {
            DialogResult result = MessageBox.Show("Confermare l'eliminazione?", "Conferma Eliminazione", MessageBoxButtons.YesNo);

            if (result == DialogResult.Yes)
            {
                CentroSaleProve.GetIstance().RimuoviSala(salaSelected);
                this.DataManager.DeleteSala(salaSelected);
                MessageBox.Show("Sala eliminata con successo ");
            }
        }
 internal ClienteRegistrato FindClienteRegistratoByIdTessera(string idTessera)
 {
     foreach (ClienteRegistrato cliente in CentroSaleProve.GetIstance().Clienti)
     {
         if (cliente.IdTessera == idTessera)
         {
             return(cliente);
         }
     }
     return(null);
 }
示例#18
0
        internal void EliminaClienteRegistrato(ClienteRegistrato clienteSelected)
        {
            DialogResult result = MessageBox.Show("Confermare l'eliminazione?", "Conferma Eliminazione", MessageBoxButtons.YesNo);

            if (result == DialogResult.Yes)
            {
                CentroSaleProve.GetIstance().RimuoviCliente(clienteSelected);
                this.DataManager.DeleteCliente(clienteSelected);
                MessageBox.Show("Cliente eliminato con successo ");
            }
        }
 private void _comboBoxSala_SelectedIndexChanged(object sender, EventArgs e)
 {
     foreach (Sala sala in CentroSaleProve.GetIstance().Sale)
     {
         if (sala.NomeSala == _comboBoxSala.SelectedItem.ToString())
         {
             _textBoxTipoSala.Text = sala.Tipo.NomeTipologia;
             _selectedSala         = sala;
         }
     }
 }
        internal void DeletePrenotazione(string p)
        {
            Prenotazione prenotazione = FindPrenotazioneSingolaById(p);
            DialogResult result       = MessageBox.Show("Confermare l'eliminazione?", "Conferma Eliminazione", MessageBoxButtons.YesNo);

            if (result == DialogResult.Yes)
            {
                CentroSaleProve.GetIstance().Agenda.RimuoviPrenotazione(prenotazione);
                this.DataManager.DeletePrenotazione(prenotazione);
                MessageBox.Show("Prenotazione eliminata con successo ");
            }
        }
示例#21
0
 internal PrenotazioneSingola FindPrenotazioneById(string idPrenotazione)
 {
     string[] splitString = idPrenotazione.Split(new Char[] { '-', ':' });
     foreach (PrenotazioneSingola s in CentroSaleProve.GetIstance().Agenda.Prenotazioni)
     {
         if (splitString[0].Trim() == s.IdPrenotazione)
         {
             return(s);
         }
     }
     return(null);
 }
示例#22
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;
            }
            }
        }
示例#23
0
        internal void SetParameters(string nome, string indirizzo, string email, string telefono, string disdetta, string scontoClienteRegistrato, string scontoPrenPeriodica)
        {
            Profilo        profilo  = new Profilo(nome, indirizzo, telefono, email);
            PoliticaCentro politica = new PoliticaCentro(Convert.ToSingle(scontoClienteRegistrato) / 100, Convert.ToSingle(scontoPrenPeriodica) / 100, Convert.ToInt32(disdetta));
            DialogResult   result   = DialogResult.No;

            result = MessageBox.Show("Vuoi salvare le modifiche?", "Conferma Modifiche", MessageBoxButtons.YesNo);
            if (result == DialogResult.Yes)
            {
                CentroSaleProve.GetIstance().Profilo  = profilo;
                CentroSaleProve.GetIstance().Politica = politica;
                MessageBox.Show("Modifiche salvate con successo!");
            }
        }
示例#24
0
 private List <PrenotazionePeriodica> FindPrenotazioniPeriodicheById(string IdPrenotazione, List <PrenotazionePeriodica> result)
 {
     foreach (Prenotazione p in CentroSaleProve.GetIstance().Agenda.Prenotazioni)
     {
         if (p.GetType() == typeof(PrenotazionePeriodica) && p.IdPrenotazione == IdPrenotazione)
         {
             if (!result.Contains(p as PrenotazionePeriodica))
             {
                 result.Add(p as PrenotazionePeriodica);
             }
         }
     }
     return(result);
 }
示例#25
0
        public bool UpdatePrenotazionePeriodica(PrenotazionePeriodica newPrenotazionePeriodica)
        {
            foreach (Prenotazione p in CentroSaleProve.GetIstance().Agenda.Prenotazioni)
            {
                if (p.IdPrenotazione == newPrenotazionePeriodica.IdPrenotazione && p.GetType() == typeof(PrenotazionePeriodica))
                {
                    _prenotazionePersister.GetRemover("XML").RemovePrenotazione(p);
                    _prenotazionePersister.GetSaver("XML").SavePrenotazionePeriodica(newPrenotazionePeriodica);
                    break;
                }
            }

            return(true);
        }
示例#26
0
 public Sala FindSalaByName(string nomeSala)
 {
     if (nomeSala == null)
     {
         return(null);
     }
     else
     {
         var query = (from sala in CentroSaleProve.GetIstance().Sale
                      where sala.NomeSala == nomeSala
                      select sala);
         return(query.ToList().Count == 0 ? null : query.First() as Sala);
     }
 }
        private void LoadComboBoxIdTessera()
        {
            List <ClienteRegistrato> orderedList = new List <ClienteRegistrato>();;

            foreach (ClienteRegistrato cliente in CentroSaleProve.GetIstance().Clienti)
            {
                orderedList.Add(cliente);
            }

            orderedList.OrderBy(cliente => cliente.IdTessera);
            foreach (ClienteRegistrato cliente in orderedList)
            {
                _comboBoxIdTessera.Items.Add(cliente.IdTessera);
            }
        }
示例#28
0
        private void _comboBoxCriterioRicerca_SelectedIndexChanged(object sender, EventArgs e)
        {
            this._labelParametro.Visible = true;

            switch (this._comboBoxCriterioRicerca.SelectedItem.ToString())
            {
            case "Cliente":
                this._labelParametro.Text           = "Nome e Cognome:";
                this._dateTimePickerRicerca.Visible = false;
                this._comboBoxSalaTipo.Visible      = false;
                this._textBoxNomeCognome.Visible    = true;
                break;

            case "Data":
                this._labelParametro.Text           = "Data:";
                this._textBoxNomeCognome.Visible    = false;
                this._comboBoxSalaTipo.Visible      = false;
                this._dateTimePickerRicerca.Visible = true;
                break;

            case "Sala":
                this._labelParametro.Text = "Id Sala:";
                this._comboBoxSalaTipo.Items.Clear();
                foreach (Sala s in CentroSaleProve.GetIstance().Sale)
                {
                    this._comboBoxSalaTipo.Items.Add(s.IdSala);
                }
                this._textBoxNomeCognome.Visible    = false;
                this._dateTimePickerRicerca.Visible = false;
                this._comboBoxSalaTipo.Visible      = true;
                break;

            case "Tipo":
                this._labelParametro.Text = "Nome Tipologia:";
                this._comboBoxSalaTipo.Items.Clear();
                foreach (ITipologiaSala t in TipologiaSalaFactory.GetTipologie())
                {
                    this._comboBoxSalaTipo.Items.Add(t.NomeTipologia);
                }
                this._textBoxNomeCognome.Visible    = false;
                this._dateTimePickerRicerca.Visible = false;
                this._comboBoxSalaTipo.Visible      = true;
                break;

            default:
                throw new ArgumentException();
            }
        }
示例#29
0
        public bool SavePrenotazioni()
        {
            foreach (Prenotazione p in CentroSaleProve.GetIstance().Agenda.Prenotazioni)
            {
                if (p.GetType() == typeof(PrenotazioneSingola) && p.IdPrenotazione.StartsWith("S"))
                {
                    _prenotazionePersister.GetSaver("XML").SaveUpdatePrenotazioneSingola((PrenotazioneSingola)p);
                }
                else if (p.GetType() == typeof(PrenotazionePeriodica) && p.IdPrenotazione.StartsWith("P"))
                {
                    _prenotazionePersister.GetSaver("XML").SaveUpdatePrenotazionePeriodica(p as PrenotazionePeriodica);
                }
            }

            return(true);
        }
示例#30
0
        public bool SaveClienti()
        {
            foreach (Cliente p in CentroSaleProve.GetIstance().Clienti)
            {
                if (p.GetType() == typeof(ClienteRegistrato))
                {
                    _clientePersister.GetSaver("XML").SaveUpdateClienteRegistrato((ClienteRegistrato)p);
                }
                if (p.GetType() == typeof(Cliente))
                {
                    _clientePersister.GetSaver("XML").SaveUpdateCliente(p);
                }
            }

            return(true);
        }