private void InitPageContent(MovieScreeningDTO MovieScreening) { MoviePoster.ImageUrl = "/Content/Images/" + MovieScreening.PosterFileName; MovieTitle.Text = MovieScreening.MovieTitle; MovieStartDate.Text = MovieScreening.StartDate.ToString(); MovieEndDate.Text = MovieScreening.EndDate.ToString();; }
protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString["Done"] == "1") { RaiseAlert("Tak for din bestilling - Bekræftelse er sendt til din mail"); } int ScreeningId = Convert.ToInt32(Request.QueryString["Id"]); SQLConnector con = new SQLConnector(); List <MovieScreeningDTO> MovieScreening = new List <MovieScreeningDTO>(); MovieScreening = con.GetAll("MovieScreening", "ScreeningId", ScreeningId.ToString(), typeof(int)).Cast <MovieScreeningDTO>().ToList(); MovieScreeningDTO MovieScreeningSingle = new MovieScreeningDTO(); try { MovieScreeningSingle = MovieScreening[1]; } catch (Exception) { RaiseAlert("Filmen kunne ikke findes - prøv igen"); return; } // Initialize page with content from requested movie InitPageContent(MovieScreeningSingle); // Draw dynamic html for reservation foreach (var SeatRow in MovieScreening.Select(x => x.SeatRow).Distinct()) { TableRow tr = new TableRow(); tr.ID = "TableRow" + SeatRow.ToString(); foreach (var item in MovieScreening.Where(x => x.SeatRow == SeatRow)) { // Afhængig af item.AvailableStatusID Indsæt <td> som read-only med en klasse der farver elementet rødt TableCell td = new TableCell() { }; td.ID = item.SeatId.ToString(); if (true) { } td.Text = String.Format("<a href=\"#\"><span Id=" + "SeatMainContent_" + item.SeatId.ToString() + " class=\"glyphicon glyphicon-print TableSeat " + ((item.AvailableStatusId != 0) ? "BookedSeat" : "") + "\"></span></a>"); tr.Cells.Add(td); } Reservation.Rows.Add(tr); } }
//Henter alt fra et tablenavn public List <object> GetAll(string TableName, string ColumnToCheckName = null, string ValueToMatch = null, Type Type = null) { List <object> LisReturn = new List <object>(); string FilterString = string.Empty; if (ColumnToCheckName != null && ValueToMatch != null && Type != null) { if (Type == typeof(decimal)) { FilterString = (" WHERE " + ColumnToCheckName + " = " + ValueToMatch.Replace(",", ".")); } else if (Type == typeof(string)) { FilterString = (" WHERE " + ColumnToCheckName + " = '" + ValueToMatch + "'"); } else if (Type == typeof(bool)) { FilterString = (" WHERE " + ColumnToCheckName + " = " + (Convert.ToBoolean(ValueToMatch) ? 1 : 0)); } else if (Type == typeof(DateTime)) { FilterString = (" WHERE " + ColumnToCheckName + " = '" + Convert.ToDateTime(ValueToMatch).ToString("yyyy-MM-dd HH:mm:ss.fffffff") + "'"); } else if (Type == typeof(int)) { FilterString = (" WHERE " + ColumnToCheckName + " = " + ValueToMatch); } } try { using (SqlConnection Con = new SqlConnection(ConfigConnectionString)) { Con.Open(); string CommandString = "SELECT * FROM " + TableName + FilterString; using (SqlCommand Com = new SqlCommand(CommandString, Con)) { using (SqlDataReader reader = Com.ExecuteReader()) { while (reader.Read()) { bool Skip = false; object ObjReturn = new object(); switch (TableName) { case "Movie": MovieDTO Movie = new MovieDTO(); ObjReturn = Movie; break; case "Reservation": ReservationDTO Reservation = new ReservationDTO(); ObjReturn = Reservation; break; case "Resource": ResourceDTO Resource = new ResourceDTO(); ObjReturn = Resource; break; case "Screening": ScreeningDTO Screening = new ScreeningDTO(); ObjReturn = Screening; break; case "Seat": SeatDTO Seat = new SeatDTO(); ObjReturn = Seat; break; case "Theater": TheaterDTO Theater = new TheaterDTO(); ObjReturn = Theater; break; case "MovieScreening": MovieScreeningDTO MovieScreening = new MovieScreeningDTO(); ObjReturn = MovieScreening; break; case "ResourceScreening": ResourceScreeningDTO ResourceScreening = new ResourceScreeningDTO(); ObjReturn = ResourceScreening; break; default: ObjReturn = null; Skip = true; break; } if (!Skip) { //Løber igennem properties og sætter property til værdien den finder i rækkens felt med samme kolonnenavn som propertyname foreach (PropertyInfo pi in ObjReturn.GetType().GetProperties()) { pi.SetValue(ObjReturn, reader.GetValue(reader.GetOrdinal(pi.Name))); } LisReturn.Add(ObjReturn); } } } } } } catch (Exception Ex) { LisReturn.Add(Ex); } return(LisReturn); }
//Henter en række fra et tablenavn hvor id findes public object Get(string TableName, int Id) { object ObjReturn = new object(); switch (TableName) { case "Movie": MovieDTO Movie = new MovieDTO(); ObjReturn = Movie; break; case "Reservation": ReservationDTO Reservation = new ReservationDTO(); ObjReturn = Reservation; break; case "Resource": ResourceDTO Resource = new ResourceDTO(); ObjReturn = Resource; break; case "Screening": ScreeningDTO Screening = new ScreeningDTO(); ObjReturn = Screening; break; case "Seat": SeatDTO Seat = new SeatDTO(); ObjReturn = Seat; break; case "Theater": TheaterDTO Theater = new TheaterDTO(); ObjReturn = Theater; break; case "MovieScreening": MovieScreeningDTO MovieScreening = new MovieScreeningDTO(); ObjReturn = MovieScreening; break; default: ObjReturn = null; break; } if (ObjReturn != null) { try { using (SqlConnection con = new SqlConnection(ConfigConnectionString)) { con.Open(); using (SqlCommand com = new SqlCommand("SELECT * FROM " + TableName + " where id = " + Id.ToString(), con)) { using (SqlDataReader reader = com.ExecuteReader()) { while (reader.Read()) { //Løber igennem properties og sætter property til værdien den finder i rækkens felt med samme kolonnenavn som propertyname foreach (PropertyInfo pi in ObjReturn.GetType().GetProperties()) { pi.SetValue(ObjReturn, reader.GetValue(reader.GetOrdinal(pi.Name))); } } } } } } catch (Exception Ex) { return(Ex); } } return(ObjReturn); }
protected void ReservationConfirm_Click(object sender, EventArgs e) { // Input checks if (String.IsNullOrEmpty(ChosenSeatString.Value)) { RaiseAlert("Minimum et sæde skal vælges."); return; } // Initialize variables int ScreeningId = Convert.ToInt32(Request.QueryString["Id"]); int UserId = 0; List <ResourceDTO> Resource = new List <ResourceDTO>(); ResourceDTO resourceSingle = new ResourceDTO(); SQLConnector con = new SQLConnector(); Resource = con.GetAll("Resource", "LoginName", Context.User.Identity.Name, typeof(string)).Cast <ResourceDTO>().ToList(); try { resourceSingle = Resource[0]; } catch (Exception) { throw; } UserId = resourceSingle.Id; MovieScreeningDTO MovieScreeningSingle = new MovieScreeningDTO(); List <MovieScreeningDTO> MovieScreening = new List <MovieScreeningDTO>(); MovieScreening = con.GetAll("MovieScreening", "ScreeningId", ScreeningId.ToString(), typeof(int)).Cast <MovieScreeningDTO>().ToList(); try { MovieScreeningSingle = MovieScreening[0]; } catch (Exception) { return; } List <String> ConfirmedSeats; ConfirmedSeats = ChosenSeatString.Value.Split(',').ToList(); ReservationDTO Reservation = new ReservationDTO() { ResourceId = UserId, ScreeningId = ScreeningId }; // Ensure that other users haven't reserved we're about to insert. // Get existing reservations List <ReservationDTO> ExistingReservation = new List <ReservationDTO>(); ExistingReservation = con.GetAll("Reservation", "ScreeningId", ScreeningId.ToString(), typeof(int)).Cast <ReservationDTO>().ToList(); // Only check against ConfirmedSeats if there are existing reservations if (ExistingReservation.Count() > 0) { foreach (var item in ConfirmedSeats) { if (ExistingReservation.Where(x => x.SeatId == Convert.ToInt32(item.Substring(12))).Count() > 0) { Response.Redirect("~/MovieReservation?ScreeningId=" + ScreeningId.ToString() + "\""); RaiseAlert("Sæderne er ikke længere ledige - prøv igen"); return; } } } // Opret nye reservationer foreach (var item in ConfirmedSeats) { Reservation.SeatId = Convert.ToInt32(item.Substring(12)); // Create screening con.CreateObject(Reservation); } // Redirect to same page string strMessage = string.Format("Hej {0}, tak for din bestilling!\r\n\r\nDu har reserveret {1} {3} til filmen {2}\r\n\r\nMvh.\r\nTEC BioBooking!", resourceSingle.FirstName, ConfirmedSeats.Count().ToString(), MovieScreeningSingle.MovieTitle, (ConfirmedSeats.Count() == 1 ? "billet" : "billetter")); string strSubject = string.Format("Tak for din bestilling"); Mailor mailor = new Mailor(); mailor.SendMail(resourceSingle.Email, strSubject, strMessage); Response.Redirect("/MovieReservation?Id=" + ScreeningId.ToString() + "&Done=1"); }