示例#1
0
        // Method using the implementations of the members of RateGettersLogic<ResidentialChargeResult>
        // to populate the properties of a ResidentialChargeResult (a comparison of electricity rates)
        // and persist that instance of a ResidentialChargeResult to the database.
        public void PopulateAndDisplayResult(ResidentialChargeResult chargeResult, ResidentialChargeResultLogic logic)
        {
            try
            {
                logic.GetInput(chargeResult);
                if (!logic.CheckValidInput(chargeResult))
                {
                    return;
                }

                string zipCode = ZIPCodeLogic.GetZipCode(chargeResult.City, chargeResult.StateAbbreviation).Result;
                if (!DoesCityExist(zipCode, chargeResult.City, chargeResult.StateAbbreviation))
                {
                    return;
                }

                chargeResult.Rate   = logic.GetRate(zipCode);
                chargeResult.Charge = chargeResult.Rate * chargeResult.Usage;

                if (!logic.CheckIfRate0(chargeResult))
                {
                    return;
                }
                Console.WriteLine(string.Format("Your estimated non-fixed charges for {0} kilowatt hours is {1:C}!", chargeResult.Usage, chargeResult.Charge));
                logic.Save(chargeResult);
            }
            catch (System.Exception e)
            {
                Console.WriteLine(e.InnerException.Message);
            }
        }
示例#2
0
        // Method using implementations of the members of Result<T> to populate the properties
        // of a UtilitySearchResult (the name of the electric utility provider for a city),
        // and persist that instance of a UtilitySearchResult to the database.
        public void PopulateAndDisplayResult(UtilitySearchResult utilitySearch, UtilitySearchLogic logic)
        {
            try
            {
                logic.GetInput(utilitySearch);
                if (!logic.CheckValidInput(utilitySearch))
                {
                    return;
                }

                string zipCode = ZIPCodeLogic.GetZipCode(utilitySearch.City, utilitySearch.StateAbbreviation).Result;

                if (!DoesCityExist(zipCode, utilitySearch.City, utilitySearch.StateAbbreviation))
                {
                    return;
                }

                utilitySearch.UtilityName = GetUtilityProviderName(zipCode);

                if (utilitySearch.UtilityName == null)
                {
                    Console.WriteLine("Unfortunately, we do not have any information on electric utility providers in {0}, {1}.", utilitySearch.City, utilitySearch.StateAbbreviation);
                    utilitySearch.UtilityName = "No Provider Info Found";
                }
                else
                {
                    Console.WriteLine(string.Format("The electric utility provider in {0}, {1} is {2}.", utilitySearch.City, utilitySearch.StateAbbreviation, utilitySearch.UtilityName));
                }
                logic.Save(utilitySearch);
            }
            catch (System.Exception e)
            {
                Console.WriteLine(e.InnerException.Message);
            }
        }
示例#3
0
        //private ZipCodeLogic _zipCodeLogic = new ZipCodeLogic();

        // Method using the implementations of the members of RateGettersLogic<RateComparisonResult>
        // to populate the properties of a RateComparsionResult (a comparison of electricity rates)
        // and persist that instance of a ResidentialChargeResult to the database.
        public void PopulateAndDisplayResult(RateComparisonResult rateComparison, RateComparisonLogic logic)
        {
            try
            {
                logic.GetInput(rateComparison);
                if (!logic.CheckValidInput(rateComparison))
                {
                    return;
                }

                string zipCode1 = ZIPCodeLogic.GetZipCode(rateComparison.City1, rateComparison.StateAbbreviation1).Result;
                string zipCode2 = ZIPCodeLogic.GetZipCode(rateComparison.City2, rateComparison.StateAbbreviation2).Result;

                if (!DoesCityExist(zipCode1, rateComparison.City1, rateComparison.StateAbbreviation1,
                                   zipCode2, rateComparison.City2, rateComparison.StateAbbreviation2))
                {
                    return;
                }

                rateComparison.Rate1 = logic.GetRate(zipCode1);
                rateComparison.Rate2 = logic.GetRate(zipCode2);

                if (!logic.CheckIfRate0(rateComparison))
                {
                    return;
                }

                rateComparison.Difference = (rateComparison.Rate1 - rateComparison.Rate2) / rateComparison.Rate2;

                if (rateComparison.Rate1 > rateComparison.Rate2)
                {
                    Console.WriteLine(String.Format("The rate in {0}, {1} is {2:P2} more than in {3}, {4}.",
                                                    rateComparison.City1, rateComparison.StateAbbreviation1, Math.Abs(rateComparison.Difference),
                                                    rateComparison.City2, rateComparison.StateAbbreviation2));
                }
                else if (rateComparison.Rate2 > rateComparison.Rate1)
                {
                    Console.WriteLine(String.Format("The rate in  {0}, {1} is {2:P2} less than in {3}, {4}.",
                                                    rateComparison.City1, rateComparison.StateAbbreviation1, Math.Abs(rateComparison.Difference),
                                                    rateComparison.City2, rateComparison.StateAbbreviation2));
                }
                else
                {
                    Console.WriteLine(string.Format("The rates in {0}, {1} and {2}, {3} are the same.", rateComparison.City1, rateComparison.StateAbbreviation1,
                                                    rateComparison.City2, rateComparison.StateAbbreviation2));
                }
                logic.Save(rateComparison);
            }
            catch (SystemException e)
            {
                Console.WriteLine(e.InnerException.Message);
            }
        }