//metodo per inserire una prenotazione in DB utilizzando i valori inviati dal client, //verificando se esiste una prenotazione che si sovrappone per orario nella stessa sala public static string AddPrenotazione(PrenotazioneDetail prenotazione) { var db = new DAL.AperitivoEntities(); var dbPrenotazioniInizio = from p in db.Prenotazione where p.PrenotazioneSala == prenotazione.PrenotazioneSala select p.DataInizio; var dbPrenotazioniFine = from p in db.Prenotazione where p.PrenotazioneSala == prenotazione.PrenotazioneSala select p.DataFine; var verifica_prima = "ok"; var verifica_dopo = "ok"; foreach (var datai in dbPrenotazioniInizio) { if ((prenotazione.DataInizio < datai) && (prenotazione.DataFine < datai)) { verifica_prima = "ok"; } else { verifica_prima = "ko"; break; } } if (verifica_prima == "ko") { foreach (var dataf in dbPrenotazioniFine) { if ((prenotazione.DataInizio > dataf) && (prenotazione.DataFine > dataf)) { verifica_dopo = "ok"; } else { verifica_dopo = "ko"; break; } } } if ((verifica_prima == "ok") || (verifica_dopo == "ok")) { var myPrenotazione = DTOtoEntity(prenotazione); var result = db.Prenotazione.Add(myPrenotazione); db.SaveChanges(); Interaction.MsgBox(result.Descrizione + " inserita", MsgBoxStyle.OkOnly | MsgBoxStyle.Information, "Inserimento Nuova Prenotazione"); return("ok"); } else { return("ko"); } }
public static DAL.Prenotazione DTOtoEntity(PrenotazioneDetail prenotazione) { return(new DAL.Prenotazione() { ID = prenotazione.ID, DataInizio = prenotazione.DataInizio, DataFine = prenotazione.DataFine, Descrizione = prenotazione.Descrizione, PrenotazioneEvento = prenotazione.PrenotazioneEvento, PrenotazioneRisorsa = prenotazione.PrenotazioneRisorsa, PrenotazioneSala = prenotazione.PrenotazioneSala }); }