Exemplo n.º 1
0
        static void Main(string[] args)
        {
            //file binding
            Service1Client server = new Service1Client("BasicHttpBinding_IService1");
            IService1      intf   = server;
            Noleggio       nolo   = intf.GetNoleggio();

            Console.WriteLine(nolo.Id + nolo.Cliente.Nome + nolo.Inizio.ToString() + nolo.fine.ToString());
            Console.ReadLine();
        }
Exemplo n.º 2
0
        private bool CreaNoleggio(DateTime inizio, DateTime fine, Cliente c)
        {
            bool result = true;

            try
            {
                Noleggio n = new Noleggio(gpc.NewId(), c, inizio, fine);
            } catch (Exception e) {
                result = false;
            }
            return(result);
        }
Exemplo n.º 3
0
        public string CreaNoleggio(string username, DateTime inizio, DateTime fine, string[] attr, int[] persone)
        {
            string result = null;

            try
            {
                Cliente c = null;
                foreach (Cliente c1 in gpc.ElencoClienti)
                {
                    if (c1.Username.Equals(username))
                    {
                        c = c1; break;
                    }
                }
                Noleggio nolo = new Noleggio(gpc.NewId(), c, inizio, fine);
                for (int i = 0; i < attr.Length; i++)
                {
                    bool aggiunto = false;
                    foreach (Attrezzatura a in gpc.ElencoAttrezzatura)
                    {
                        if (a.Tipo.Equals(attr[i]) && a.IsLibero(inizio, fine))
                        {
                            IDettaglioPagamento dettaglio = new DettaglioNoleggio(nolo.Id, persone[i],
                                                                                  a, /*MOCK COSTO*/ 99.99, inizio, fine, username);
                            /***PERSISTENZA IDETTAGLIO***/
                            nolo.AddDettaglio((DettaglioNoleggio)dettaglio);
                            aggiunto = true;
                            break;
                        }
                    }
                    if (!aggiunto)
                    {
                        throw new Exception("ATTREZZATURA ADEGUATA NON TROVATA");
                    }
                }
                Pagamento pag = new Pagamento(nolo.Id, 0);
                foreach (IDettaglioPagamento idp in nolo.ElencoDettagli)
                {
                    pag.AddDettaglio(idp);
                }
                /***PERSISTENZA PAGAMENTO***/
                gpc.ElencoNoleggi.Add(nolo);
                result = "La tua prenotazione è stata completata!";
            } catch (Exception e)
            {
                Console.WriteLine(e);
                result = "Si è verificato un errore, la tua prenotazione non è andata a buon fine.\n" +
                         "Controlla di non aver richiesto attrezzatura non disponibile.";
            }
            return(result);
        }
Exemplo n.º 4
0
        private bool AggiungiANoleggio(int id, Attrezzatura a, int utilizzatori)
        {
            bool result = true;

            try
            {
                Noleggio            nol       = gpc.NoloById(id);
                IDettaglioPagamento dettaglio = new DettaglioNoleggio(id, utilizzatori, a, 999.99, nol.Inizio, nol.fine);
            } catch (Exception e)
            {
                result = false;
            }
            return(result);
        }
Exemplo n.º 5
0
 public static void DeleteNoleggio(Noleggio n)
 {
     foreach (DettaglioNoleggio dn in n.ElencoDettagli)
     {
         try
         {
             DeleteDettaglioNoleggio(dn.IdAttrezzatura, dn.Id);
         }
         catch (Exception e)
         {
             Console.Write(e.Message);
         }
     }
 }
Exemplo n.º 6
0
 public static void InsertNoleggio(Noleggio n)
 {
     try
     {
         foreach (DettaglioNoleggio dn in n.ElencoDettagli)
         {
             InsertDettaglioNoleggio(dn);
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e.Message);
     }
 }
Exemplo n.º 7
0
        public static List <Noleggio> GetListaNoleggi()
        {
            List <Noleggio>          res = new List <Noleggio>();
            List <DettaglioNoleggio> temp;
            bool     aggiunto = false;
            ISession sess     = OpenConnection();

            using (sess.BeginTransaction())
            {
                ICriteria criteria = sess.CreateCriteria <DettaglioNoleggio>();
                try
                {
                    temp = GetListaDettagliNoleggio();
                    foreach (DettaglioNoleggio dt in temp)
                    {
                        foreach (Noleggio n in res)
                        {
                            if (n.Id == dt.Id)
                            {
                                n.ElencoDettagli.Add(dt);
                                aggiunto = true;
                            }
                        }
                        if (!aggiunto)
                        {
                            //Cliente c = GetClienteById(dt.Username);
                            //Noleggio n = new Noleggio(dt.Id, c, dt.Inizio, dt.Fine);
                            //n.ElencoDettagli.Add(dt);
                            //res.Add(n);
                            foreach (Cliente c in gpc.ElencoClienti)
                            {
                                if (c.Username.Equals(dt.Username))
                                {
                                    Noleggio n = new Noleggio(dt.Id, c, dt.Inizio, dt.Fine);
                                    n.ElencoDettagli.Add(dt);
                                    res.Add(n);
                                }
                            }
                        }
                        aggiunto = false;
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }
            return(res);
        }
Exemplo n.º 8
0
        private void ConsegnaElementi(object sender, EventArgs e)
        {
            if (_noleggiTabPresenter.DataGridView.CurrentRow != null)
            {
                Noleggio daTerminare = ((NoleggioAdapted)_noleggiTabPresenter.DataGridView.CurrentRow.DataBoundItem).GetWrapped();
                if (daTerminare.IsChiuso)
                {
                    MessageBox.Show("Noleggio già concluso!", "Operazione non permessa", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                NoleggioFormEditOrView    form      = new NoleggioFormEditOrView();
                ChiusuraNoleggioPresenter presenter = new ChiusuraNoleggioPresenter(form, daTerminare);
                if (form.ShowDialog() == DialogResult.OK)
                {
                    Negozio.ConcludiNoleggio(daTerminare, Logged.User);
                }
            }
        }
Exemplo n.º 9
0
        public ChiusuraNoleggioPresenter(NoleggioFormEditOrView target, Noleggio noleggio)
        {
            _noleggio    = noleggio;
            _cliente     = _noleggio.Cliente;
            _target      = target;
            _target.Text = "Chiusura noleggio";
            //Eventi
            _target.AggiungiAgevolazioneEccezionale.Click         += AggiungiAgevolazioneEccezionale;
            _target.ElementiNoleggioDataGridView.SelectionChanged += ShowPrezzoSingoloElemento;

            //Popolamento tabella elementi noleggiati
            _target.ElementiNoleggioDataGridView.DataSource = Adapter <ElementoNoleggio, ElementoNoleggioAdapted> .Convert(_noleggio.ElementiNoleggio);

            //Comunicazione della durata e del noleggio
            _fineEffettiva           = DateTime.Now;
            _durataEffettiva         = _fineEffettiva - _noleggio.DataOraInizio;
            _target.DurataLabel.Text = string.Format("Durata noleggio: {0} giorni, {1} ore, {2} minuti",
                                                     _durataEffettiva.Days, _durataEffettiva.Hours, _durataEffettiva.Minutes);

            //Comunicazione del prezzo del noleggio
            _target.PrezzoTotaleLabel.Text = string.Format("Prezzo totale: {0}", _noleggio.CalcolaPrezzo(_durataEffettiva, Negozio.MINUTI_TOLLERANZA).ToEuroString());

            //Popolamento dati cliente
            TableLayoutPanel clientePanel = _target.DatiClientePanel;

            foreach (PropertyInfo info in _cliente.GetType().GetProperties())
            {
                Label nomeProprietà = new Label();
                nomeProprietà.Text = (info.GetCustomAttributes(typeof(EditableAttribute), false)[0] as EditableAttribute).Label;
                Label valoreProprietà = new Label();
                valoreProprietà.Text = info.GetValue(_cliente).ToString();
                clientePanel.Controls.Add(nomeProprietà);
                clientePanel.Controls.Add(valoreProprietà);
            }

            _target.FormClosing += CheckFascia;
        }
Exemplo n.º 10
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);
                    }
                }
            }
        }