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(); }
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(); }