Example #1
0
        public static async Task RunProgram()
        {
            while (willContinue.Equals(true))
            {
                Threads.StartThreadWithJoin(new Thread(new ThreadStart(OutPut.PrintTitleFrame)));
                Threads.StartThreadWithJoin(new Thread(new ThreadStart(OutPut.PrintMenuFrame)));
                Threads.StartThreadWithJoin(new Thread(new ThreadStart(OutPut.PrintMainMenu)));
                try
                {
                    willContinue = await MainMenuNavigation(int.Parse(Console.ReadLine()));// if false program will close
                }
                catch (FormatException)
                {
                    Console.WriteLine(OutPut.PrintErrorMessages("Input cant be empty or in wrong format!!", -2, 2));
                }
                catch (Exception e)
                {
                    Console.WriteLine(OutPut.PrintErrorMessages(e.Message, 5, 2));
                }
                finally
                {
                    if (willContinue.Equals(true))
                    {
                        Console.ReadKey();
                    }

                    Console.Clear();
                }
            }
        }
Example #2
0
        public static async Task <List <string> > InPutString(int i)
        {
            string        input       = string.Empty;
            List <string> apiResponse = new List <string>();

            if (i.Equals(_SearchForOneCity))
            {
                OutPut.PrintTitleFrame();
                OutPut.PrintMenuFrame();
                ColorAndStyle.SetTextColor(Colors.Magenta);
                input = EnterStringValue(ColorAndStyle.SetTextPosition("Enter city name: ", menuX, menuY));
                if (input.Equals(string.Empty))
                {
                    return(null);
                }

                apiResponse = OutPut.PrintWeatherCondition(await data.GetAPIResponse(input, i)).ToList();
            }
            else if (i.Equals(_SearchBylongLat))
            {
                OutPut.PrintTitleFrame();
                OutPut.PrintMenuFrame();
                ColorAndStyle.SetTextColor(Colors.Magenta);
                int lon = int.Parse(EnterStringValue(ColorAndStyle.SetTextPosition("Enter lat value: ", menuX, menuY)));
                int lat = int.Parse(EnterStringValue(ColorAndStyle.SetTextPosition("Enter lon value: ", menuX, menuY)));
                Console.Clear();
                apiResponse = OutPut.PrintWeatherCondition(await data.GetAPIResponse(lat, lon)).ToList();
            }
            else if (i.Equals(_SearchForMultipleCities))
            {
                OutPut.PrintTitleFrame();
                OutPut.PrintMenuFrame();
                ColorAndStyle.SetTextColor(Colors.Magenta);
                List <string> apiData = new List <string>();
                foreach (var s in await AddCityNames(i))
                {
                    apiData = OutPut.PrintWeatherCondition(s).ToList();
                    if (!apiData.Contains("404"))
                    {
                        apiResponse.AddRange(apiData);
                    }
                }
            }
            else if (i.Equals(_FourDaysForeCast))
            {
                OutPut.PrintTitleFrame();
                OutPut.PrintMenuFrame();
                ColorAndStyle.SetTextColor(Colors.Magenta);
                apiResponse = OutPut.PrintFourDaysForecast(await data.GetAPIResponse(EnterStringValue(ColorAndStyle.SetTextPosition("Enter City Name: ", menuX, menuY)), i));
            }
            else if (i.Equals(_DailyForCast))
            {
                OutPut.PrintTitleFrame();
                OutPut.PrintMenuFrame();
                ColorAndStyle.SetTextColor(Colors.Magenta);
                apiResponse = OutPut.PrintDailyForecast(await data.GetAPIResponse(EnterStringValue(ColorAndStyle.SetTextPosition("Enter city name: ", menuX, menuY)), i)).ToList();
            }

            return(apiResponse);
        }