public async Task <SkillResponse> GetResponse(SkillRequest skillRequest) { var session = skillRequest.Session; var context = skillRequest.Context; m_logger.LogDebug("Getting preferences for user."); var user = await m_dbAccess.GetPreferenceAsync(session.User.UserId).ConfigureAwait(false); var input = await m_cinemaDialogWorker.GetInput(skillRequest, user).ConfigureAwait(false); if (input.PendingResponse != null) { return(input.PendingResponse); } m_logger.LogDebug("Retrieving day overview"); var dayOverview = await m_kinoheldService.GetDayOverviewForCinema(input.SelectedCinema, input.SelectedDate, input.SelectedDayTime).ConfigureAwait(false); if (dayOverview == null) { m_logger.LogWarning("Something went wrong during retrieval of the day overview"); return(ResponseBuilder.Tell(m_messages.ErrorRetrievingShows)); } if (user != null && !user.DisableEmails) { m_logger.LogDebug("Sending email"); dayOverview.AlexaId = session.User.UserId; SendEmailAsync(context, dayOverview); } m_logger.LogDebug("Formatting day overview for Alexa"); var result = m_dayOverviewSsmlFormatter.Format(dayOverview); return(ResponseBuilder.Tell(new SsmlOutputSpeech { Ssml = result })); }
public async Task <SkillResponse> GetResponse(SkillRequest skillRequest) { var request = (IntentRequest)skillRequest.Request; var session = skillRequest.Session; var dialogResponse = PendingDialog(request); if (dialogResponse != null) { return(dialogResponse); } if (request.Intent.ConfirmationStatus == "DENIED") { return(ResponseBuilder.Tell(m_messages.EmailSettingsAbort)); } var disableEmails = true; m_logger.LogDebug("Retrieving user preferences"); var userPreferences = await m_kinoheldDbAccess.GetPreferenceAsync(session.User.UserId).ConfigureAwait(false); if (userPreferences != null) { disableEmails = !userPreferences.DisableEmails; } m_logger.LogDebug("Saving user preferences"); await m_kinoheldDbAccess.SetEmailPreferenceAsync(session.User.UserId, disableEmails).ConfigureAwait(false); if (disableEmails) { return(ResponseBuilder.Tell(m_messages.EmailUnsubscribed)); } return(ResponseBuilder.Tell(m_messages.EmailSubscribed)); }