示例#1
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);
        }
示例#2
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);
        }
示例#3
0
 public static void InsertDettaglioNoleggio(DettaglioNoleggio dt)
 {
     try
     {
         ISession sess = OpenConnection();
         using (sess.BeginTransaction())
         {
             sess.Persist(dt);
             sess.Transaction.Commit();
         }
     }
     catch (Exception e)
     {
         Console.WriteLine(e.Message);
     }
 }
示例#4
0
        public static void DeleteDettaglioNoleggio(int idAttrezzatura, int id)
        {
            ISession session = OpenConnection();

            using (session.BeginTransaction())
            {
                try
                {
                    DettaglioNoleggio dettaglioNoleggio = (DettaglioNoleggio)session.CreateCriteria <DettaglioNoleggio>()
                                                          .Add(Restrictions.Eq("IdAttrezzatura", idAttrezzatura)).Add(Restrictions.Eq("Id", id)).UniqueResult();
                    session.Delete(dettaglioNoleggio);
                    session.Transaction.Commit();
                }
                catch (Exception e)
                {
                    Console.Write(e.Message);
                }
            }
        }