public async Task<IHttpActionResult> BulkInsertRouteSeats(RouteSeat[] seats) { OBTSResponse rep = new OBTSResponse(); rep.Success = true; rep.Message = ""; if (seats.Length > 0) { using (var context = new ApplicationDbContext()) { // delete existing records context.Database.ExecuteSqlCommand("DELETE FROM RouteSeats WHERE RouteId = {0}", seats[0].RouteId); } } foreach (RouteSeat seat in seats) { seat.RouteSeatId = Guid.NewGuid(); db.RouteSeats.Add(seat); } try { await db.SaveChangesAsync(); } catch (Exception ex) { rep.Fail = false; rep.Message = ex.Message; } return Ok(rep); }
public async Task<IHttpActionResult> PutRouteSeat(Guid id, RouteSeat routeSeat) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != routeSeat.RouteSeatId) { return BadRequest(); } db.Entry(routeSeat).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!RouteSeatExists(id)) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); }
public async Task<IHttpActionResult> PostRoute(Route route) { if (!ModelState.IsValid) { return BadRequest(ModelState); } route.RouteId = Guid.NewGuid(); db.Routes.Add(route); try { await db.SaveChangesAsync(); } catch (DbUpdateException ex) { if (RouteExists(route.RouteId)) { return Conflict(); } else { throw ex; } } //generate seat details List<SeatDTO> seats = await (from b in db.Seats where b.BusId.Equals(route.BusId) select new SeatDTO() { SeatId = b.SeatId, BusId = b.BusId, Company = b._bus.Company, BrandDesc = string.Empty, BusTypeDesc = string.Empty, SeatNo = b.SeatNo, Bookable = b.Bookable, Space = b.Space, SpecialSeat = b.SpecialSeat, Status = b.Status, UpperLower = b.UpperLower, Row = b.Row, Col = b.Col }).OrderBy(u => u.Row).ThenBy(u => u.Col).ToListAsync(); foreach (SeatDTO seat in seats) { RouteSeat sd = new RouteSeat(); // sd.BusId = seat.BusId; sd.Bookable = seat.Bookable; sd.Col = seat.Col; sd.RouteId = route.RouteId; sd.Row = seat.Row; sd.RouteSeatId = seat.SeatId; sd.SeatNo = seat.SeatNo; sd.Space = seat.Space; sd.SpecialSeat = seat.SpecialSeat; sd.State = (short)(seat.Bookable?OBTSEnum.SeatState.Available:OBTSEnum.SeatState.NotAvailable); db.RouteSeats.Add(sd); } try { await db.SaveChangesAsync(); } catch (DbUpdateException ex) { throw ex; } return CreatedAtRoute("DefaultApi", new { id = route.RouteId }, route); }
public async Task<IHttpActionResult> PostRouteSeat(RouteSeat routeSeat) { if (!ModelState.IsValid) { return BadRequest(ModelState); } db.RouteSeats.Add(routeSeat); try { await db.SaveChangesAsync(); } catch (DbUpdateException) { if (RouteSeatExists(routeSeat.RouteSeatId)) { return Conflict(); } else { throw; } } return CreatedAtRoute("DefaultApi", new { id = routeSeat.RouteSeatId }, routeSeat); }
public async Task<IHttpActionResult> BulkUpdateRouteSeats(RouteSeat[] seats) { OBTSResponse rep = new OBTSResponse(); rep.Success = true; rep.Message = ""; foreach (RouteSeat seat in seats) { if (RouteExists(seat.RouteSeatId)) { db.Entry(seat).State = EntityState.Modified; } } try { await db.SaveChangesAsync(); } catch (Exception ex) { rep.Fail = false; rep.Message = ex.Message; } return Ok(rep); }