// 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); } }
// 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); } }
//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); } }