public async Task <IActionResult> RemoveSeat(int flightId, int column, int row)
        {
            var user = await adminService.GetAdminAsync(User.Identity.Name);

            if (user == null)
            {
                return(BadRequest(new { Message = "User does not exist" }));
            }

            var ret = await service.RemoveSeat(row, column, user.AirlineID, flightId);

            if (ret.Success)
            {
                return(Ok(mapper.Map <FlightResource>(ret.Resource)));
            }
            else
            {
                return(BadRequest(new { Message = ret.Message }));
            }
        }
        public void RemoveLayout(int layoutId)
        {
            // for transaction
            List <AreaDto> areas = _areaService.GetAllArea()
                                   .Where(a => a.TMLayoutId == layoutId).ToList();
            List <SeatDto> seats = _seatService.GetAllSeat()
                                   .Where(s => areas.Any(a => a.Id == s.AreaId)).ToList();

            seats.ForEach(s => _seatService.RemoveSeat(s.Id));
            areas.ForEach(a => _areaService.RemoveArea(a.Id));

            try
            {
                _tmlayoutService.RemoveTMLayout(layoutId);
            }
            catch (System.Data.SqlClient.SqlException)
            {
                areas.ForEach(a => _areaService.CreateArea(a));
                seats.ForEach(s => _seatService.CreateSeat(s));
            }
        }
 [Route("api/Theaters/{theaterId}/Projections/{projectionId}/Seats/Delete")] // TODO: LOW Seperate route for speed and vip seats?
 // TODO: AUTH THEATER ADMIN
 public void RemoveSeat(int theaterId, int playId, int stageId, int projectionId, int seatRow, int seatColumn)
 {
     _seatService.RemoveSeat(theaterId, playId, stageId, projectionId, seatRow, seatColumn);
 }