/// <summary>
        /// Get two dates from the user and perform the operaiton of average temperature in between
        /// two given dates
        /// </summary>
        /// <returns>return the operation true or not</returns>
        public static bool getAverageTemperature()
        {
            bool state = false;

            try
            {
                Console.WriteLine("starting Date : Formate Must Be in DD/MM/YYYY eg. (30/12/2018)");
                string start = Convert.ToString(Console.ReadLine());

                Console.WriteLine("Ending Date : Formate Must Be in DD/MM/YYYY eg. (30/12/2018)");
                string end = Convert.ToString(Console.ReadLine());

                double averageTempearture = TemperatureReport.findAverageInBetweenTwoDate(start, end);
                Console.WriteLine("Average Temparature between ({0} to {1}) :{2} degree Celcious", start, end, averageTempearture);
                Console.ReadKey();

                askQuery();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            return(state);
        }
        /// <summary>
        /// Get date from the user and perform the operaiton of find min and max temparature
        /// </summary>
        /// <returns>return the operation true or not</returns>
        public static bool getMinMaxTempareture(string type)
        {
            bool status = false;

            try
            {
                Console.WriteLine("Enter Date  : Formate must be in (MM/DD/YYYY) eg. 12/30/2018");
                string date = Convert.ToString(Console.ReadLine());
                if (type == "Max")
                {
                    Console.WriteLine("{0} Degree Celcious", TemperatureReport.getMaximumTemperature(date));
                }
                else
                {
                    Console.WriteLine("{0} Degree Celcious", TemperatureReport.getMinimumTemperature(date));
                }
                Console.ReadKey();
                askQuery();
                status = true;
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            return(status);
        }
        /// <summary>
        /// To store temparature details into hashtable
        /// </summary>
        /// <returns>return the operation true or not</returns>
        public static bool addTemperatureData()
        {
            bool status = false;

            try
            {
                string[] dateAndTemperature = getQueryForInsertDateWithTemperature();
                if (dateAndTemperature[0] != "00/00/0000")
                {
                    if (TemperatureReport.addTemperatureDataToHashTable(dateAndTemperature) == true)
                    {
                        askQuery();
                        status = true;
                    }
                    else
                    {
                        addTemperatureData();
                        status = false;
                    }
                }
                else
                {
                    getQueryForInsertDateWithTemperature();
                }
            }
            catch (Exception dataNotStored)
            {
                Console.WriteLine(dataNotStored);
            }

            return(status);
        }
        /// <summary>
        /// return the date and temperature value to store in hashtable
        /// </summary>
        /// <returns>temperature values</returns>
        public static string[] getQueryForInsertDateWithTemperature()
        {
            string[] dateAndTemp = new string[2];
            try
            {
                // get multiple temperature values from user.
                Console.WriteLine("Enter a date (e.g. 10/22/1987 or 7/22/1996 - MM/DD/YYYY): ");
                string   getDate               = Convert.ToString(Console.ReadLine());
                string   TempeartureDate       = TemperatureReport.setDateForUserTemperatureEntry(getDate);
                string[] splitTemperatureValue = new string[] { };
                string   celciousData          = string.Empty;
                if (TempeartureDate == "00/00/0000")
                {
                    askQuery();
                }
                else
                {
                    Console.WriteLine("Enter Temperature Values (Please Enter More Then One value) \nTemperature Formate : 100F or 35C  like 23c,100f,36c,123F :");
                    string temperatureValues = Convert.ToString(Console.ReadLine());
                    splitTemperatureValue = temperatureValues.Split(',');
                    celciousData          = TemperatureReport.splitAndConvertToCelcious(splitTemperatureValue);
                }
                dateAndTemp[0] = TempeartureDate;
                dateAndTemp[1] = celciousData;
            }
            catch (ArgumentOutOfRangeException arrayException)
            {
                Console.WriteLine(arrayException);
            }

            return(dateAndTemp);
        }
        public void checkHastTable()
        {
            TemperatureReport tr = new TemperatureReport();

            TemperatureReport.setSampleTemperatureTable();
            Assert.AreEqual(7, TemperatureReport.TemperatureTable.Count);
            Assert.AreNotEqual(8, TemperatureReport.TemperatureTable.Count);
        }
        public void CheckCelciousConversion()
        {
            double celcious_I  = TemperatureReport.convertToCelcious(120.2);
            double celcious_II = TemperatureReport.convertToCelcious(100.0);

            Assert.AreEqual(49, celcious_I);
            Assert.AreNotEqual(53, celcious_I);
            Assert.AreNotEqual(33.45, celcious_II);
        }
예제 #7
0
 static void Main(string[] args)
 {
     try
     {
         // if you want pre defind temperature data to uncomment the below line
         TemperatureReport.setSampleTemperatureTable();
         TemperatureProcessFlow.askQuery();
     }
     catch (Exception cannotAccessTheClass)
     {
         Console.WriteLine(cannotAccessTheClass);
     }
 }
        public void stringConvertion()
        {
            new TemperatureReport();
            TemperatureReport.setSampleTemperatureTable();
            int valueCount = TemperatureReport.TemperatureTable.Count;

            Assert.AreEqual(7, valueCount);
            string pareOfTemparetureValue   = TemperatureReport.splitAndConvertToCelcious(new string[] { "120.2F", "20C" });
            string pareOfTemparetureValue_I = TemperatureReport.splitAndConvertToCelcious(new string[] { "22c", "1200C", "120.2f" });

            Assert.AreEqual("22,1200,49", pareOfTemparetureValue_I);
            Assert.AreNotEqual("22C,1200F,49", pareOfTemparetureValue_I);
            Assert.AreEqual("49,20", pareOfTemparetureValue);
            Assert.AreNotEqual("49F,20c", pareOfTemparetureValue);
        }
 public void addData()
 {
     try
     {
         bool check  = TemperatureReport.addTemperatureDataToHashTable(new string[] { "7/7/2018", "23c,100f" });
         bool check1 = TemperatureReport.addTemperatureDataToHashTable(new string[] { "7/7/2018" });
         Assert.IsTrue(check);
         Assert.IsFalse(check1);
     }
     catch (Exception e)
     {
         StringAssert.Contains(e.Message, "File Not Found Exception");
         return;
     }
 }
 public void checkMaxValue()
 {
     try
     {
         TemperatureReport tp = new TemperatureReport();
         TemperatureReport.setSampleTemperatureTable();
         string max = TemperatureReport.getMaximumTemperature("7/23/2018");
         Assert.AreEqual("32.4", max);
         Assert.AreNotEqual("34.4C", max);
         Assert.AreNotEqual("346", max);
     }
     catch (Exception e)
     {
         StringAssert.Contains(e.Message, "File Not Found Exception");
         return;
     }
 }
        public void checkTheGivenDateHasBeenReturn()
        {
            string checkDateOne = TemperatureReport.setDateForUserTemperatureEntry("7/23/2018");
            string checkDateTwo = TemperatureReport.setDateForUserTemperatureEntry("7/24/2018");

            string invalidDate   = TemperatureReport.setDateForUserTemperatureEntry("24/07/2018");
            string invalidDate_I = TemperatureReport.setDateForUserTemperatureEntry("32/65/1400");

            Assert.AreEqual("7/23/2018", checkDateOne);
            Assert.AreEqual("7/24/2018", checkDateTwo);

            Assert.AreEqual("00/00/0000", invalidDate);
            Assert.AreEqual("00/00/0000", invalidDate_I);

            Assert.AreNotEqual("24/07/2018", checkDateOne);
            Assert.AreNotEqual("23/07/2018", checkDateTwo);
        }
 public void checkAverage()
 {
     try
     {
         TemperatureReport tp = new TemperatureReport();
         TemperatureReport.setSampleTemperatureTable();
         double average = TemperatureReport.findAverageInBetweenTwoDate("23/7/2018", "25/7/2018");
         Assert.AreEqual(28.55, average);
         Assert.AreNotEqual("28.55", average);
         Assert.AreNotEqual(28, average);
     }
     catch (Exception e)
     {
         StringAssert.Contains(e.Message, "File Not Found Exception");
         return;
     }
 }
예제 #13
0
        /// <summary>
        /// To convert all user temperature  values as celcious
        /// </summary>
        /// <returns>return celcious value set</returns>
        public static string splitAndConvertToCelcious(string[] splitedTemperatureValue)
        {
            string listOfTemparatureValue = string.Empty;

            try
            {
                double convertToCelcious = 0.0;
                int    inputFromUser     = 0;
                // split and convert all values as celcious
                foreach (string temperature in splitedTemperatureValue)
                {
                    if (temperature.Contains("F") || temperature.Contains("f"))
                    {
                        double farenheat = Convert.ToDouble(temperature.Trim('F').Trim('f'));
                        convertToCelcious = TemperatureReport.convertToCelcious(farenheat);
                        if (listOfTemparatureValue == string.Empty || inputFromUser == splitedTemperatureValue.Length)
                        {
                            listOfTemparatureValue += convertToCelcious;
                        }
                        else
                        {
                            listOfTemparatureValue += "," + convertToCelcious;
                        }
                    }
                    else
                    {
                        double celcious = Convert.ToDouble(temperature.Trim('C').Trim('c'));
                        if (listOfTemparatureValue == string.Empty || inputFromUser == splitedTemperatureValue.Length)
                        {
                            listOfTemparatureValue += celcious;
                        }
                        else
                        {
                            listOfTemparatureValue += "," + celcious;
                        }
                    }
                    inputFromUser++;
                }
            }
            catch (FormatException temparatureIsNotInFormate)
            {
                Console.WriteLine(temparatureIsNotInFormate);
            }

            return(listOfTemparatureValue);
        }
        /// <summary>
        /// Initial state of the program it can be ask the question to user
        /// </summary>
        /// <returns>queryIndex</returns>
        public static int askQuery()
        {
            int query = 0;

            try
            {
                query = TemperatureReport.getQuery();
                if (query == 1 || query == 2)
                {
                    if (query == 2)
                    {
                        addTemperatureData();
                    }
                    else if (query == 1)
                    {
                        Console.WriteLine("Available Date with Temarature Value");
                        ICollection key = TemperatureReport.TemperatureTable.Keys;
                        foreach (string k in key)
                        {
                            Console.WriteLine(k + ": " + TemperatureReport.TemperatureTable[k]);
                        }

                        Console.WriteLine("\nIf you like to find Min temperature Press (1) ");
                        Console.WriteLine("\nIf you like to find Min temperature Press (2) ");
                        Console.WriteLine("\nIf you like to find Average temperature between two Date Press (3)");

                        int avgOrMinMax = Convert.ToInt32(Console.ReadLine());
                        if (avgOrMinMax == 1)
                        {
                            getMinMaxTempareture("Min");
                        }
                        else if (avgOrMinMax == 2)
                        {
                            getMinMaxTempareture("Max");
                        }
                        else if (avgOrMinMax == 3)
                        {
                            getAverageTemperature();
                        }
                        else
                        {
                            Console.WriteLine("Wrong Input");
                        }
                    }
                    else
                    {
                        Console.WriteLine("Wrong Input");
                    }
                }
                else
                {
                    Console.WriteLine("Wrong Input");
                }

                Console.ReadKey();
                askQuery();
            }
            catch (Exception queryException)
            {
                Console.WriteLine(queryException);
            }

            return(query);
        }