// Methods that activate on the MessageReceived event. public static Task Nav_Time_Weather_Main_Received(SocketMessage message, MenuIdStructure menuSession) { // Store the text of the message in a string and convert all letters to uppercase. string input_string = message.Content.ToUpper(); // Create an empty string variable. This is where the API request will be stored. string json_location = ""; // Encapsulate the API request in a try-catch block. If the user inputs an invalid parameter, an exception will be thrown. try { // Make an API request with the account key and user input as parameters. using (WebClient client = new WebClient()) { json_location = client.DownloadString($"http://api.weatherapi.com/v1/current.json?key={WeatherAPIConfig.weather_api_account.accountKey}&q={input_string}"); } } catch (Exception ex) { // Write the exception to the console. Console.WriteLine(ex); // Stop the timeout timer associated with the menu. menuSession.MenuTimer.Stop(); // Go to a new menu. _ = Time_Weather_Menu.Time_Weather_Error(menuSession.User, menuSession.MenuMessage); return(Task.CompletedTask); } // Deserialize the JSON object and store it in a variable. var dataObject = JsonConvert.DeserializeObject <dynamic>(json_location); // Get the account information of the user. var account = UserInfoClasses.GetAccount(menuSession.User); // Check if the location name contains any part of the user's input string. // The lowercase forms are compared to check for this match. if (dataObject.location.name.ToString().ToLower().Contains(input_string.ToLower())) { // If so, assign the proper location name to the user's account. account.City = $"{dataObject.location.name.ToString()}"; } // If not, assign the user's input to their account settings. else { account.City = input_string; } //Update the user's account. UserInfoClasses.UpdateAccount(account); // Stop the timeout timer associated with the menu. menuSession.MenuTimer.Stop(); // Go to a new menu. _ = Time_Weather_Menu.Time_Weather_Confirm(menuSession.User, menuSession.MenuMessage); return(Task.CompletedTask); }
public static Task Nav_General_Settings_Main(SocketReaction reaction, MenuIdStructure menuSession) { if (reaction.Emote.Name == "↩️") { // Stop the timeout timer associated with the menu. menuSession.MenuTimer.Stop(); // Go to a new menu. _ = Settings_Menu.Settings_Main_Menu(menuSession.User, menuSession.MenuMessage); return(Task.CompletedTask); } // Keycap One else if (reaction.Emote.Name == "\u0031\ufe0f\u20e3") { // Stop the timeout timer associated with the menu. menuSession.MenuTimer.Stop(); // Go to a new menu. _ = Time_Weather_Menu.Time_Weather_Main(menuSession.User, menuSession.MenuMessage); return(Task.CompletedTask); } // Keycap Two else if (reaction.Emote.Name == "\u0032\ufe0f\u20e3") { // Stop the timeout timer associated with the menu. menuSession.MenuTimer.Stop(); // Go to a new menu. _ = Level_Up_Notifications_Menu.Level_Up_Notifications_Main(menuSession.User, menuSession.MenuMessage); return(Task.CompletedTask); } // Keycap Three else if (reaction.Emote.Name == "\u0033\ufe0f\u20e3") { // Stop the timeout timer associated with the menu. menuSession.MenuTimer.Stop(); // Go to a new menu. _ = Rank_Up_Notifications_Menu.Rank_Up_Notifications_Main(menuSession.User, menuSession.MenuMessage); return(Task.CompletedTask); } // Keycap Four else if (reaction.Emote.Name == "\u0034\ufe0f\u20e3") { // Stop the timeout timer associated with the menu. menuSession.MenuTimer.Stop(); // Go to a new menu. _ = Content_Filter_Menu.Content_Filter_Main(menuSession.User, menuSession.MenuMessage); return(Task.CompletedTask); } return(Task.CompletedTask); }
public static Task Nav_Time_Weather_Error(SocketReaction reaction, MenuIdStructure menuSession) { if (reaction.Emote.Name == "↩️") { // Stop the timeout timer associated with the menu. menuSession.MenuTimer.Stop(); // Go to a new menu. _ = Time_Weather_Menu.Time_Weather_Main(menuSession.User, menuSession.MenuMessage); return(Task.CompletedTask); } return(Task.CompletedTask); }