コード例 #1
0
        private void AggiungiAgevolazioneEccezionale(object sender, EventArgs args)
        {
            ElementoNoleggio elementoNoleggio = (ElementoNoleggio)Adapter <ElementoNoleggio, ElementoNoleggioAdapted>
                                                .Revert((ElementoNoleggioAdapted)_target.ElementiNoleggioDataGridView.CurrentRow.DataBoundItem);

            using (ChooseForm form = new ChooseForm())
            {
                //creazione filtro (che in realtà è solo un messaggio)
                Label messaggio = new Label();
                messaggio.Text  = "Seleziona l'agevolazione eccezionale";
                messaggio.Width = 300;
                Panel p = new Panel();
                p.Controls.Add(messaggio);
                form.AddFilter(p);

                //form
                form.DataGridView.MultiSelect = false;

                //popolamento tabella
                form.DataGridView.DataSource = Negozio.GetInstance().AgevolazioniEccezionali.Cast <Agevolazione>().ToList();

                if (form.ShowDialog() == DialogResult.OK)
                {
                    elementoNoleggio.AgevolazioneEccezionale = (IAgevolazioneEccezionale)form.DataGridView.CurrentRow.DataBoundItem;
                    Console.WriteLine((elementoNoleggio.AgevolazioneEccezionale as Agevolazione).Nome);
                    _target.ElementiNoleggioDataGridView.Refresh();

                    /*La nuova agevolazione eccezionale non è visualizzata nella tabella perchè è un'interfaccia,
                     * anche se da come si vede dalla stampa su console l'oggetto viene aggiornato*/
                    _target.PrezzoTotaleLabel.Text = string.Format("Prezzo totale: {0}",
                                                                   _noleggio.CalcolaPrezzo(_durataEffettiva, Negozio.MINUTI_TOLLERANZA).ToEuroString());
                }
                ShowPrezzoSingoloElemento(this, EventArgs.Empty);
            }
        }
コード例 #2
0
        private void SostituisciElementi(object sender, EventArgs e)
        {
            if (_noleggiTabPresenter.DataGridView.CurrentRow != null)
            {
                Noleggio noleggio = ((NoleggioAdapted)_noleggiTabPresenter.DataGridView.CurrentRow.DataBoundItem).GetWrapped();
                Console.WriteLine(noleggio.DataOraInizio);

                Label message = new Label();
                message.Width = 1000;
                message.Text  = "Scegli l'elemento del noleggio da sostituire.";

                ChooseForm chooseForm = new ChooseForm();
                chooseForm.DataGridView.MultiSelect = false;
                chooseForm.Text = "Scelta elemento da sostituire";
                chooseForm.AddFilter(message);
                chooseForm.DataGridView.DataSource = Adapter <ElementoNoleggio, ElementoNoleggioAdapted> .Convert(noleggio.ElementiNoleggio);

                chooseForm.ShowDialog();

                IEnumerator rowEnum = chooseForm.DataGridView.SelectedRows.GetEnumerator();
                rowEnum.MoveNext();
                if (chooseForm.DialogResult == DialogResult.OK && rowEnum.Current != null)
                {
                    ElementoNoleggio elementoNoleggio = ((ElementoNoleggioAdapted)((DataGridViewRow)rowEnum.Current).DataBoundItem).GetWrapped();

                    Elemento daSostituire = elementoNoleggio.Originario;
                    Console.WriteLine("Tipo da cercare: " + daSostituire.GetType());
                    List <Elemento> validi = new List <Elemento>();
                    foreach (Elemento elemento in Negozio.Elementi)
                    {
                        if (elemento.IsLibero && elemento.GetType().Equals(daSostituire.GetType()))
                        {
                            validi.Add(elemento);
                        }
                    }
                    if (validi.Count == 0)
                    {
                        MessageBox.Show("Nel negozio non sono presenti elementi per la sostituzione", "", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return;
                    }
                    message.Text    = "Scegli l'elemento con cui sostituire " + daSostituire.Id + ".";
                    chooseForm.Text = "Scelta nuovo elemento";
                    chooseForm.DataGridView.DataSource = Adapter <Elemento, ElementoAdapted> .Convert(validi);

                    chooseForm.FormClosing += delegate(object inSender, FormClosingEventArgs inE)
                    {
                        if (MessageBox.Show("Confermare la sostituzione di " + daSostituire.Id + " ?", "Conferma sostituzione", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel)
                        {
                            inE.Cancel = true;
                        }
                    };
                    chooseForm.ShowDialog();

                    Elemento sostituto;
                    rowEnum = chooseForm.DataGridView.SelectedRows.GetEnumerator();
                    rowEnum.MoveNext();
                    if (chooseForm.DialogResult == DialogResult.OK && rowEnum.Current != null)
                    {
                        sostituto = ((ElementoAdapted)((DataGridViewRow)rowEnum.Current).DataBoundItem).GetWrapped();
                        Console.WriteLine("Sostituisco " + daSostituire.Id + " con " + sostituto.Id);
                        elementoNoleggio.SostituisciCon(sostituto, DateTime.Now, Logged.User);
                    }
                }
            }
        }