private async Task AfterReservationConfirmationAsync(IDialogContext context, IAwaitable <bool> result) { try { var confirm = await result; if (confirm) { ReservationForm reservationForm = context.UserData.GetValue <ReservationForm>("reservationForm"); var bookingResult = await CampingService.Book(context.Activity.From.Id, reservationForm); if (bookingResult.Errors != null && bookingResult.Errors.Count > 0) { await context.PostAsync("Houve um erro ao emitir sua reserva. Por favor, tente novamente."); } else { await context.PostAsync($"Sua reserva foi confirmada com o ID {bookingResult.Id}."); } } else { await context.PostAsync("Ok, posso te ajudar em mais alguma coisa?"); } } finally { context.UserData.RemoveValue("reservationForm"); } context.Wait(MessageReceived); }
public async Task BookingInfo(IDialogContext context, LuisResult result) { var entity = result.Entities.FirstOrDefault(); if (entity != null) { var bookingId = entity.Entity; var bookingData = await CampingService.GetBookingData(context.Activity.From.Id, bookingId); if (bookingData != null) { await context.PostAsync($"\n\nID: {bookingData.Id}\n\nPassageiro principal: {bookingData.MainPaxName}\n\nNúmero total de hóspedes: {bookingData.NumberOfGuests}" + $"\n\nData da chegada: {bookingData.ArrivalDate.ToString("dd/MM/yyyy")}\n\nData da volta: {bookingData.DepartureDate.ToString("dd/MM/yyyy")}" + $"\n\nIncluir barraca: {(bookingData.IncludeTent ? "Sim" : "Não")}\n\nValor da reserva: R$ {bookingData.Price.ToString("N2")}"); } else { await context.PostAsync("Não consegui identificar o número da sua reserva."); } } else { await context.PostAsync("Não consegui identificar o número da sua reserva."); } }
private CampingInfo GetCampingInfo() { if (_campingInfo == null) { var campingTask = Task.Run(() => CampingService.GetCampingInfo()); campingTask.Wait(); _campingInfo = campingTask.Result; } return(_campingInfo); }
private async Task ReservationFormCompletedAsync(IDialogContext context, IAwaitable <ReservationForm> result) { var reservationForm = await result; context.UserData.SetValue("reservationForm", reservationForm); decimal?price = await CampingService.GetPrice(reservationForm); if (price == null) { await context.PostAsync("Existem dados inválidos na sua reserva, por favor tente novamente."); context.Wait(MessageReceived); } else { PromptDialog.Confirm(context, AfterReservationConfirmationAsync, $"Sua reserva totalizou R$ {price.Value.ToString("N2")}. Posso confirmar?", "Não entendi, por favor, responda 'Sim' ou 'Não'", promptStyle: PromptStyle.Keyboard); } }
public StreamingModule(CampingService campingService, LyricaContext db, CodePasteService paste) { _campingService = campingService; _db = db; _paste = paste; }