public int CreateSeance(SeanceInfo seance) { Seance newSeance = new Seance { MovieId = seance.MovieId, HallId = seance.HallId, ShowDate = seance.ShowDate, ShowTime = seance.ShowTime }; foreach (SeanceSeatView seanceSeat in seance.SessionSeats) { var newSeanceSeat = new SeanceSeat { SeanceId = newSeance.Id, SeatId = seanceSeat.SeatId, Price = seanceSeat.Price, IsBooked = seanceSeat.IsBooked }; _db.SeanceSeats.Add(newSeanceSeat); } _db.Seances.Add(newSeance); _db.SaveChanges(); return(newSeance.Id); }
public void EditSeance(int seanceId, SeanceInfo seance) { Seance editSeance = _db.Seances.Find(seanceId); editSeance.ShowDate = seance.ShowDate; editSeance.ShowTime = seance.ShowTime; editSeance.MovieId = seance.MovieId; editSeance.HallId = seance.HallId; editSeance.ShowTime = seance.ShowTime; var seanceSeat = _db.SeanceSeats .Where(s => s.SeanceId == editSeance.Id); foreach (SeanceSeat editSeanceSeat in seanceSeat) { var foundSeanceSeat = seance.SessionSeats .Where(s => s.SeatId == editSeanceSeat.SeatId) .SingleOrDefault(); if (foundSeanceSeat != null) { editSeanceSeat.Price = foundSeanceSeat.Price; editSeanceSeat.IsBooked = foundSeanceSeat.IsBooked; } } _db.SaveChanges(); }
public bool CheckCorrectMovie(SeanceInfo seance) { return(_db.Movies .Any(m => m.Id == seance.MovieId && m.ReleaseDate <= seance.ShowDate && seance.ShowDate <= m.EndingDate)); }
public string Post([FromBody] SeanceInfo value) { try { String date = value.Date + "T00:00:00"; DateTime startDate = DateTime.ParseExact(date, "yyyy-MM-ddTHH:mm:ss", null); DateTime endDate = startDate.AddDays(1); using (var db = new CinemaContext()) { return(JsonConvert.SerializeObject( db.Seance.Where(s => s.FilmId.ToString().Equals(value.FilmId) & s.StartTime > startDate & s.EndTime < endDate) .Join( db.HallInfo.Where(x => x.CinemaId.ToString().Equals(value.CinemaId)), s => s.HallId, h => h.Id, (s, h) => new SeanceResult() { Id = s.Id, HallName = h.Name, StartTime = s.StartTime.ToString("HH:mm"), FilmId = s.FilmId, HallId = s.HallId, EndTime = s.EndTime.ToString("HH:mm") }) )); } } catch (Exception ex) { return(ex.Message); } }
public IActionResult EditSeance([FromBody] SeanceInfo seance, int seanceId) { if (!ModelState.IsValid) { return(BadRequest(new Response(ModelState))); } if (!_seanceService.CheckSeanceExists(seanceId)) { return(NotFound(new Response(ErrorOfSeanceNonexistence))); } if (_seanceService.CheckCorrectSeanceTime(seance)) { return(BadRequest(new Response(ErrorOfSeanceTime))); } if (_seanceService.СheckForNonmatchingSeanceTime(seance, seanceId)) { return(BadRequest(new Response(ErrorOfNonmatchingSeanceTime))); } if (_seanceService.CheckCorrectMovie(seance)) { return(BadRequest(new Response(ErrorOfMovieNonexistence))); } _seanceService.EditSeance(seanceId, seance); return(Ok(new Response())); }
public bool CheckSeanceExists(SeanceInfo seance) { return(_db.Seances.Any(s => s.HallId == seance.HallId && s.ShowTime == seance.ShowTime && s.ShowDate == seance.ShowDate && s.MovieId == seance.MovieId && !s.IsDeleted )); }
public bool СheckForNonmatchingSeanceTime(SeanceInfo seance, int?seanceId = null) { var prevSeance = _db.Seances .Where(s => s.HallId == seance.HallId && seance.ShowDate.Date == s.ShowDate.Date && s.ShowDate < seance.ShowDate && s.Id != seanceId) .OrderBy(s => s.ShowDate) .LastOrDefault(); if (prevSeance == null) { return(true); } if (seance.ShowDate < prevSeance.ShowDate.Add(prevSeance.ShowTime)) { return(false); } var nextSeance = _db.Seances .Where(s => s.HallId == seance.HallId && seance.ShowDate.Date == s.ShowDate.Date && s.ShowDate > seance.ShowDate) .OrderBy(s => s.ShowDate) .FirstOrDefault(); if (nextSeance == null) { return(true); } if (nextSeance.ShowDate < seance.ShowDate.Add(seance.ShowTime)) { return(false); } return(true); }
public IActionResult CreateSeance([FromBody] SeanceInfo seance) { if (!ModelState.IsValid) { return(BadRequest(new Response(ModelState))); } if (_seanceService.CheckHallExists(seance.HallId)) { return(BadRequest(new Response(ErrorOfHallNonexistence))); } if (_seanceService.CheckCorrectSeanceTime(seance)) { return(BadRequest(new Response(ErrorOfSeanceTime))); } if (_seanceService.CheckSeanceExists(seance)) { return(BadRequest(new Response(ErrorOfSeanceExistence))); } if (_seanceService.СheckForNonmatchingSeanceTime(seance)) { return(BadRequest(new Response(ErrorOfNonmatchingSeanceTime))); } if (_seanceService.CheckCorrectMovie(seance)) { return(BadRequest(new Response(ErrorOfMovieNonexistence))); } int id = _seanceService.CreateSeance(seance); var response = new CreateResponse(id); return(CreatedAtAction(nameof(GetSeance), new { id = response.Id }, response)); }
public bool CheckCorrectSeanceTime(SeanceInfo seance) { return(seance.ShowDate.Date > DateTime.Now.Date); }
public IEnumerable <string> Get(SeanceInfo value) { return(new string[] { "value1", "value2" }); }