Exemple #1
0
        private void uiActionPoništiRezervaciju_Click_1(object sender, EventArgs e)
        {
            rezervacijaPraonice brisanjeRezervacije = null;
            praonica            praonicaBrisanje    = null;

            using (var db = new MSDomEntities())
            {
                var idOdabir = from od in db.rezervacijaPraonices
                               join praon in db.praonicas
                               on od.praonicaId equals praon.id
                               where (od.korisnikId == PrijavljeniKorisnik.id)
                               select od.id;
                if (idOdabir.ToList().Count > 0)
                {
                    int    id    = int.Parse(uiOutputMojeRezervacije.CurrentRow.Cells[0].Value.ToString());
                    string naziv = uiOutputMojeRezervacije.CurrentRow.Cells[1].Value.ToString();
                    BindingList <praonica>            listaPraonica = new BindingList <praonica>(db.praonicas.ToList());
                    BindingList <rezervacijaPraonice> listaOdabira  = new BindingList <rezervacijaPraonice>(db.rezervacijaPraonices.ToList());
                    foreach (var item in listaOdabira)
                    {
                        if (item.id == id)
                        {
                            brisanjeRezervacije = item;
                        }
                    }
                    foreach (var item in listaPraonica)
                    {
                        if (item.naziv == naziv)
                        {
                            praonicaBrisanje = item;
                        }
                    }
                    db.praonicas.Attach(praonicaBrisanje);
                    // praonicaBrisanje.zauzeto = 0;
                    db.rezervacijaPraonices.Attach(brisanjeRezervacije);
                    db.rezervacijaPraonices.Remove(brisanjeRezervacije);
                    db.SaveChanges();
                }
                else
                {
                    MessageBox.Show("Nemate rezervacije.");
                }
            }
            DohvatiSlobodnePraonice();
            DohvatiVaseRezervacije();
        }
Exemple #2
0
 private void uiActionRezervirajPraonicu_Click_1(object sender, EventArgs e)
 {
     if (uiOutputSlobodnePraonice.CurrentRow != null)
     {
         bool     postoji          = false;
         praonica praonicaZaUpdate = null;
         int      idPraonice       = int.Parse(uiOutputSlobodnePraonice.CurrentRow.Cells[0].Value.ToString());
         using (var db = new MSDomEntities())
         {
             var idOdabranePraonice = from od in db.rezervacijaPraonices
                                      join praon in db.praonicas
                                      on od.praonicaId equals praon.id
                                      where (od.korisnikId == PrijavljeniKorisnik.id)
                                      select new { od.id, praon.naziv, od.datumVrijeme };
             //ako nema već rezerviranu praonicu
             var idZauzetaPraonica = from od in db.rezervacijaPraonices select new { od.id, od.datumVrijeme };
             if (idOdabranePraonice.ToList().Count == 0)
             {
                 bool proba = false;
                 BindingList <praonica>            listaPraonica    = new BindingList <praonica>(db.praonicas.ToList());
                 BindingList <rezervacijaPraonice> listaRezervacija = new BindingList <rezervacijaPraonice>(db.rezervacijaPraonices.ToList());
                 int      id      = int.Parse(uiOutputSlobodnePraonice.CurrentRow.Cells[0].Value.ToString());
                 TimeSpan razlika = new TimeSpan(1, 0, 0);
                 foreach (var item in listaPraonica)
                 {
                     if (proba == false)
                     {
                         foreach (var item2 in listaRezervacija)
                         {
                             if (id == item2.praonicaId && (item2.datumVrijeme == uiInputDatumRezervacije.Value || uiInputDatumRezervacije.Value.Subtract(item2.datumVrijeme) < razlika) && item2.isteklaRezervacija == 0)
                             {
                                 MessageBox.Show("Taj termin je zauzeo drugi korisnik. Idući slobodan termin za ovu perilicu je: " + item2.datumVrijeme.AddHours(1));
                                 proba = true;
                             }
                         }
                     }
                     if (proba == false && item.id == id)
                     {
                         praonicaZaUpdate = item;
                         proba            = false;
                     }
                 }
                 if (proba == false)
                 {
                     db.praonicas.Attach(praonicaZaUpdate);
                     //  praonicaZaUpdate.zauzeto = 1;
                     rezervacijaPraonice novaRezervacija = new rezervacijaPraonice();
                     novaRezervacija.datumVrijeme       = uiInputDatumRezervacije.Value;
                     novaRezervacija.korisnikId         = PrijavljeniKorisnik.id;
                     novaRezervacija.praonicaId         = idPraonice;
                     novaRezervacija.isteklaRezervacija = 0;
                     db.rezervacijaPraonices.Add(novaRezervacija);
                     db.SaveChanges();
                 }
             }
             // ako je rezerviral već praonicu
             else
             {
                 TimeSpan interval  = new TimeSpan(0, 0, 0);
                 TimeSpan interval2 = new TimeSpan(12, 0, 0);
                 foreach (var item in idOdabranePraonice.ToList())
                 {
                     /* if ( item.datumVrijeme.Subtract(uiInputDatumRezervacije.Value)<=interval2)
                      * {
                      *   postoji = true;
                      * }*/
                     if (uiInputDatumRezervacije.Value.Subtract(item.datumVrijeme) < interval2)
                     {
                         postoji = true;
                     }
                 }
                 if (!postoji)
                 {
                     bool proba = false;
                     BindingList <praonica>            listaPraonica    = new BindingList <praonica>(db.praonicas.ToList());
                     BindingList <rezervacijaPraonice> listaRezervacija = new BindingList <rezervacijaPraonice>(db.rezervacijaPraonices.ToList());
                     int id = int.Parse(uiOutputSlobodnePraonice.CurrentRow.Cells[0].Value.ToString());
                     foreach (var item in listaPraonica)
                     {
                         if (proba == false)
                         {
                             foreach (var item2 in listaRezervacija)
                             {
                                 if (id == item2.praonicaId && item2.datumVrijeme == uiInputDatumRezervacije.Value && item2.isteklaRezervacija == 0)
                                 {
                                     uiInputDatumRezervacije.Value = uiInputDatumRezervacije.Value.AddHours(1);
                                     MessageBox.Show("Taj termin je zauzeo drugi korisnik. Idući slobodan termin za ovu perilicu je: " + uiInputDatumRezervacije.Value);
                                     proba = true;
                                 }
                             }
                         }
                         if (proba == false && item.id == id)
                         {
                             praonicaZaUpdate = item;
                             proba            = false;
                         }
                     }
                     if (proba == false)
                     {
                         db.praonicas.Attach(praonicaZaUpdate);
                         //  praonicaZaUpdate.zauzeto = 1;
                         rezervacijaPraonice novaRezervacija = new rezervacijaPraonice();
                         novaRezervacija.datumVrijeme       = uiInputDatumRezervacije.Value;
                         novaRezervacija.korisnikId         = PrijavljeniKorisnik.id;
                         novaRezervacija.praonicaId         = idPraonice;
                         novaRezervacija.isteklaRezervacija = 0;
                         db.rezervacijaPraonices.Add(novaRezervacija);
                         db.SaveChanges();
                         var Rezervirana = new CustomEvent
                         {
                             Date               = uiInputDatumRezervacije.Value,
                             EventText          = "Vi ste rezervirali praonicu:" + id,
                             EventLengthInHours = 1f,
                             EventColor         = Color.Red
                         };
                         calendar1.AddEvent(Rezervirana);
                     }
                 }
                 else
                 {
                     MessageBox.Show("Ne može se odabrati taj termin");
                 }
             }
         }
     }
     DohvatiSlobodnePraonice();
     DohvatiVaseRezervacije();
 }