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(); }
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); }
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); }
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); }
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); } } }
public static void InsertNoleggio(Noleggio n) { try { foreach (DettaglioNoleggio dn in n.ElencoDettagli) { InsertDettaglioNoleggio(dn); } } catch (Exception e) { Console.WriteLine(e.Message); } }
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); }
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); } } }
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; }
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); } } } }