Schumix.ExtraAddon.Commands.Functions.HandleWeather C# (CSharp) Method

HandleWeather() public method

public HandleWeather ( IRCMessage sIRCMessage ) : void
sIRCMessage Schumix.Framework.Irc.IRCMessage
return void
        public void HandleWeather(IRCMessage sIRCMessage)
        {
            var sSendMessage = sIrcBase.Networks[sIRCMessage.ServerName].sSendMessage;
            var text = sLManager.GetCommandTexts("weather", sIRCMessage.Channel, sIRCMessage.ServerName);
            if(text.Length < 5)
            {
                sSendMessage.SendChatMessage(sIRCMessage, sLConsole.Translations("NoFound2", sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName)));
                return;
            }

            if(sIRCMessage.Info.Length < 5)
            {
                sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoCountryName", sIRCMessage.Channel, sIRCMessage.ServerName));
                return;
            }

            if(sIRCMessage.Info.Length < 6  && sIRCMessage.Info[4].ToLower() != "home")
            {
                sSendMessage.SendChatMessage(sIRCMessage, sLManager.GetWarningText("NoCityName", sIRCMessage.Channel, sIRCMessage.ServerName));
                return;
            }

            bool home = false;
            string language = string.Empty;

            switch(sLManager.GetChannelLocalization(sIRCMessage.Channel, sIRCMessage.ServerName))
            {
                case "huHU":
                    language = "HU";
                    break;
                case "enUS":
                case "enGB":
                    language = "US";
                    break;
                default:
                    language = "US";
                    break;
            }

            if(sIRCMessage.Info[4].ToLower() == "home")
                home = true;

            try
            {
                ForecastData source = null;
                string country = sIRCMessage.Info[4];
                WApi wApi = new WApi(WeatherConfig.Key);

                if(home)
                    source = wApi.GetForecast(WeatherConfig.Country, WeatherConfig.City, language);
                else
                    source = wApi.GetForecast(country, sIRCMessage.Info.SplitToString(5, SchumixBase.Space).Trim(), language);

                var day = source.Forecast.Txt_Forecast.ForecastDay[0].FctText_Metric;
                var night = source.Forecast.Txt_Forecast.ForecastDay[1].FctText_Metric;

                if(home)
                    sSendMessage.SendChatMessage(sIRCMessage, text[0]);
                else
                    sSendMessage.SendChatMessage(sIRCMessage, text[1], sIRCMessage.Info[4] + ", " + sIRCMessage.Info.SplitToString(5, SchumixBase.Space).Trim());

                sSendMessage.SendChatMessage(sIRCMessage, text[2], day);
                sSendMessage.SendChatMessage(sIRCMessage, text[3], night);
            }
            catch
            {
                sSendMessage.SendChatMessage(sIRCMessage, text[4]);
            }
        }