public AjaxResponse SubmitBooking([FromBody] PostBooking newBooking) { try { int prod; var httpRequest = HttpContext.Current.Request; if (!string.IsNullOrEmpty(newBooking.BookingNumber)) { prod = _helper.PostBooking(newBooking); } return(new AjaxResponse { Success = true, Response = "Transaction successful", }); } catch (Exception x) { //req.CreateResponse(HttpStatusCode.InternalServerError); return(new AjaxResponse { Success = false, Response = "Request Failed", ExceptionMessage = x.ToString() }); } }
public static async Task UpdateBooking(Booking booking) { using (HttpClient httpClient1 = new HttpClient()) { PostBooking b = new PostBooking() { UserID = LogInViewModel.User.ID, RoomId = booking.BookedRoom.ID, StartDate = booking.StartDate.DateTime, EndDate = booking.EndDate.DateTime, Adress = booking.Adress, PhoneNumber = booking.PhoneNumber }; var json = JsonConvert.SerializeObject(b); HttpContent httpContent = new StringContent(json); httpClient1.Timeout = new TimeSpan(0, 0, 5); httpContent.Headers.Clear(); httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); await httpClient1.PutAsync(WebServiceUrl + "Bookings/" + booking.BookingID, httpContent); httpClient1.Dispose(); } }
public async Task <IActionResult> PostBookingDetails([FromBody] PostBooking booking) { using (var conn = _context.Database.GetDbConnection() as SqlConnection) { SqlTransaction transaction = null; try { await conn.OpenAsync(); transaction = conn.BeginTransaction(); int insertedRow = -1; using (SqlCommand cmd = new SqlCommand(@"INSERT INTO Booking(BookingDate,StartTime,EndTime,RoomId,CustomerId) VALUES(@BookingDate,@StartTime,@EndTime,@RoomId,@CustomerId);SELECT SCOPE_IDENTITY();", (SqlConnection)conn, transaction)) { cmd.Parameters.AddWithValue("@BookingDate", booking.DateTimeDetails.BookDate); cmd.Parameters.AddWithValue("@StartTime", booking.DateTimeDetails.StartTime); cmd.Parameters.AddWithValue("@EndTime", booking.DateTimeDetails.EndTime); cmd.Parameters.AddWithValue("@RoomId", booking.Room.RoomId); cmd.Parameters.AddWithValue("@CustomerId", booking.Customer.CustomerId); var modified = await cmd.ExecuteScalarAsync(); insertedRow = Convert.ToInt32(modified); } foreach (var addons in booking.Addons) { using (SqlCommand cmd = new SqlCommand(@"INSERT INTO BookingAddOn(BookingId,AddOnId,Quantity) VALUES(@BookingId,@AddOnId,@Quantity)", (SqlConnection)conn, transaction)) { cmd.Parameters.AddWithValue("@BookingId", insertedRow); cmd.Parameters.AddWithValue("@AddOnId", addons.AddOnId); cmd.Parameters.AddWithValue("@Quantity", addons.Quantity); await cmd.ExecuteNonQueryAsync(); } } transaction.Commit(); return(Ok(booking)); } catch (Exception ex) { transaction.Rollback(); return(BadRequest(ex)); } } }
//post booking public int PostBooking(PostBooking booking) { using (var con = new NpgsqlConnection(_Ycon)) { int result; var cmd = new NpgsqlCommand("\"submitbooking\"", con); cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.Parameters.Add(new NpgsqlParameter("reqMovieId", NpgsqlTypes.NpgsqlDbType.Integer)); cmd.Parameters[0].Value = booking.MovieId; cmd.Parameters.Add(new NpgsqlParameter("reqBookDate", NpgsqlTypes.NpgsqlDbType.Timestamp)); //cmd.Parameters[1].Value = booking.BookingDate; cmd.Parameters[1].Value = DateTime.Now; cmd.Parameters.Add(new NpgsqlParameter("reqPaymentMethodId", NpgsqlTypes.NpgsqlDbType.Integer)); cmd.Parameters[2].Value = booking.PaymentMethodId; cmd.Parameters.Add(new NpgsqlParameter("reqHouseId", NpgsqlTypes.NpgsqlDbType.Integer)); cmd.Parameters[3].Value = booking.HouseId; cmd.Parameters.Add(new NpgsqlParameter("reqAmount", NpgsqlTypes.NpgsqlDbType.Integer)); cmd.Parameters[4].Value = booking.Amount; cmd.Parameters.Add(new NpgsqlParameter("reqShowMomentId", NpgsqlTypes.NpgsqlDbType.Integer)); cmd.Parameters[5].Value = booking.ShowMomentId; cmd.Parameters.Add(new NpgsqlParameter("reqCustomerId", NpgsqlTypes.NpgsqlDbType.Integer)); cmd.Parameters[6].Value = booking.CustomerId; cmd.Parameters.Add(new NpgsqlParameter("reqBookingNum", NpgsqlTypes.NpgsqlDbType.Varchar)); //cmd.Parameters[7].Value = booking.BookingNumber; cmd.Parameters[7].Value = randomStringToAdd(); con.Open(); result = Convert.ToInt32(cmd.ExecuteScalar()); con.Close(); con.Dispose(); return(result); } }
public async Task <ActionResult <Booking> > PostBooking(PostBooking postBooking) { Booking booking = new Booking() { BookedRoomID = postBooking.RoomId, StartDate = postBooking.StartDate, EndDate = postBooking.EndDate, UserID = postBooking.UserID, PhoneNumber = postBooking.PhoneNumber, Adress = postBooking.Adress, BookingID = 0 }; _context.Booking.Add(booking); var result = await _context.SaveChangesAsync(); if (result <= 0) { return(BadRequest()); } return(Ok()); //Booking booking = new Booking(); //booking.roomID = postBooking.BookingRooms[0].ID; //booking.BookingID = 0; //booking.EndDate = postBooking.EndDate; //booking.StartDate = postBooking.StartDate; //booking.UserID = postBooking.UserID; //_context.Booking.Add(booking); //try //{ // var result = await _context.SaveChangesAsync(); //} //catch (Exception e) //{ // Debug.WriteLine(e.Message); //} //return Ok(); CTRL + K, CTRL + C }
public async Task <IActionResult> PutBooking(int id, PostBooking booking) { Booking b = new Booking() { BookedRoomID = booking.RoomId, UserID = booking.UserID, BookingID = id, StartDate = booking.StartDate, EndDate = booking.EndDate, Adress = booking.Adress, PhoneNumber = booking.PhoneNumber }; if (id != b.BookingID) { return(BadRequest()); } _context.Entry(b).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!BookingExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult> CreateBooking(CreateBookingModel createBookingModel) { createBookingModel = CreateBookingModelWithoutInfoQuestions(createBookingModel); if (createBookingModel.EventId <= 0) { throw new Exception(_localizer["AnErrorOccurred"]); } if (!ModelState.IsValid) { return(GetJsonResultFromModelStateErrors()); } if (_bookingService.DateHasPassed(createBookingModel.StartDate) || _bookingService.DateHasPassed(createBookingModel.LastApplicationDate)) { ModelState.AddModelError("", _localizer["BookingLastDayPassedError"]); return(GetJsonResultFromModelStateErrors()); } var newToken = await _token.GetNewToken(); var client = new EduAdminAPIClient.Client(newToken); var booking = new PostBooking { Answers = _questionService.GetBookingAnswers(createBookingModel.BookingQuestions), ContactPerson = new PostBookingContactPerson { FirstName = createBookingModel.CustomerContact?.FirstName, LastName = createBookingModel.CustomerContact?.LastName, Email = createBookingModel.CustomerContact?.Email }, Customer = new PostBookingCustomer { CustomerName = createBookingModel.Customer?.CustomerName, OrganisationNumber = createBookingModel.Customer?.InvoiceOrgnr, Address = createBookingModel.Customer?.Address1, Zip = createBookingModel.Customer?.Zip, City = createBookingModel.Customer?.City }, EventId = createBookingModel.EventId, Participants = createBookingModel.Participants?.Select(x => new BookingParticipant { Answers = _questionService.GetBookingAnswers(x.ParticipantQuestions), FirstName = x.FirstName, LastName = x.LastName, Email = x.Email, CivicRegistrationNumber = x.CivicRegistrationNumber, PriceNameId = x.PriceNameId != 0 ? (int?)x.PriceNameId : null, Sessions = x.Sessions?.Where(s => s.Participating).Select(y => new BookingParticipantSession { SessionId = y.SessionId, PriceNameId = y.PriceNameId }).ToList() }).ToList(), SendConfirmationEmail = new SendInfoBase { SendToParticipants = true }, }; BookingCreated newBooking; try { newBooking = await client.Booking.PostAsync(booking); } catch (EduAdminApi.EduAdminException <ForbiddenResponse> ex) { var errorResult = ex.Result; var errorStr = ""; foreach (var item in errorResult.Errors) { //If multiple errors would exist, separate these if (!string.IsNullOrWhiteSpace(errorStr)) { errorStr += "<br />"; } switch (item?.ErrorCode ?? 0) { case 40: //No seats left errorStr += _localizer["NotEnoughSeatsLeft"]; break; case 45: //Person already booked errorStr += _localizer["BookingContainsBookedParticipants"]; break; case 200: //Person exists on overlapping sessions errorStr += _localizer["BookingContainsOverlapPersons"]; break; default: errorStr += _localizer["CouldntCreateBookingTryAgain"]; break; } } ModelState.AddModelError("", errorStr); return(GetJsonResultFromModelStateErrors()); } return(Json(new CreateBookingResult { Success = true, SuccessRedirectUrl = Url.Action("BookingCreated", "Booking", new { eclID = newBooking.BookingId }) })); }