private async void Book_Clicked(object sender, EventArgs e) { // Get Data BookTicketModel bookTicket = new BookTicketModel(); bookTicket.Key = "00"; bookTicket.Ticket = ticketModel; bookTicket.Type = type.SelectedItem.ToString(); bookTicket.Date = date.Date.ToString(); long total = ticketModel.Price * long.Parse(quantity.SelectedItem.ToString()); bookTicket.Amount = total.ToString(); bookTicket.Status = "Pending"; bookTicket.Quantity = quantity.SelectedItem.ToString(); string uid = await _firebaseAuth.GetCurrentUser(); bookTicket.UserUID = uid; _firebaseDatabase.SetBooking("ticketbookings", bookTicket); await DisplayAlert("Booking", "Your ticket is booked", "OK"); await Navigation.PopAsync(); }
public async Task <IHttpActionResult> Book([FromUri] string userId, [FromBody] BookTicketModel model) { IHttpActionResult result = null; var r = await _ticketRepository.BookTicket(userId, model); result = GetResult(r); return(result); }
private TicketDataModel Convert(BookTicketModel model) { TicketDataModel dataModel = null; if (model != null) { dataModel = new TicketDataModel(); dataModel.InjectFrom(model); } return(dataModel); }
public async Task <BaseResult <DisplayTicketModel> > BookTicket(string userId, BookTicketModel model) { BaseResult <DisplayTicketModel> result = new BaseResult <DisplayTicketModel>(); try { if (model != null && !String.IsNullOrWhiteSpace(userId)) { //Get User var user = await _userRepository.GetUser(userId); if (user != null) { TicketDataModel dataModel = Convert(model); dataModel.Id = Guid.NewGuid().ToString(); dataModel.UserId = user.Id; dataModel.TicketStatus = TicketStatus.Booked; //insert ticket var ticketCollection = _database.GetCollection <TicketDataModel>("cTickets"); await ticketCollection.InsertOneAsync(dataModel); //retrieve ticket var filter = Builders <TicketDataModel> .Filter.Eq("Id", dataModel.Id); var bookedTicket = await ticketCollection.Find(filter).ToListAsync(); if (bookedTicket != null && bookedTicket.Count == 1) { DisplayTicketModel displayModel = Convert(bookedTicket.FirstOrDefault()); result.Value = displayModel; result.Suceeded = true; } } else { result.Suceeded = false; result.AddError("user is unauthenticated"); } } else { result.Suceeded = false; result.SetRequiredFieldsMissing("Fields missing"); } } catch (Exception) { result.Suceeded = false; result.AddError("Error while booking ticket, please try after some time."); } return(result); }