// Get Parsed Wind Generator Data public List <ClsGenaratorWind> GetWindDataList(XDocument xdoc) { List <ClsGenaratorWind> windGenerators = new List <ClsGenaratorWind>(); //Parse Wind Genarator Data var selectWindGen = from windResult in xdoc.Descendants("WindGenerator") select windResult; foreach (var windData in selectWindGen) { ClsGenaratorWind windGenerator = new ClsGenaratorWind(); var selectGen = from genResult in windData.Descendants("Day") select genResult; windGenerator.FuelGenName = windData.Element("Name").Value; windGenerator.FuelGenaratorType = windData.Element("Location").Value; //Daily Generation Value = Energy x Price x ValueFactor foreach (var genData in selectGen) { if (windGenerator.FuelGenaratorType == "Offshore") { windGenerator.DailyGenerationValue = double.Parse(genData.Element("Energy").Value) * double.Parse(genData.Element("Price").Value) * ClsFactors.ValueFactorLow + windGenerator.DailyGenerationValue; } else if (windData.Element("Location").Value == "Onshore") { windGenerator.DailyGenerationValue = double.Parse(genData.Element("Energy").Value) * double.Parse(genData.Element("Price").Value) * ClsFactors.ValueFactorHigh + windGenerator.DailyGenerationValue; } windGenerator.Date = DateTime.Parse(genData.Element("Date").Value).ToUniversalTime(); Console.WriteLine("Total:-" + windGenerator.DailyGenerationValue); } windGenerators.Add(windGenerator); } return(windGenerators); }
//This method processes the file public void ProcessFile(string FilePath) { Console.WriteLine("Reading File: " + FilePath); List <ClsGenaratorWind> windGenerators = new List <ClsGenaratorWind>(); List <ClsGenaratorGas> gasGenerators = new List <ClsGenaratorGas>(); List <ClsGenaratorCoal> coalGenerators = new List <ClsGenaratorCoal>(); XDocument xdoc = XDocument.Load(FilePath); //Parse Wind Genarator Data var selectWindGen = from windResult in xdoc.Descendants("WindGenerator") select windResult; foreach (var windData in selectWindGen) { ClsGenaratorWind windGenerator = new ClsGenaratorWind(); var selectGen = from genResult in windData.Descendants("Day") select genResult; windGenerator.FuelGenName = windData.Element("Name").Value; windGenerator.FuelGenaratorType = windData.Element("Location").Value; foreach (var genData in selectGen) { if (windGenerator.FuelGenaratorType == "Offshore") { windGenerator.DailyGenerationValue = double.Parse(genData.Element("Energy").Value) * double.Parse(genData.Element("Price").Value) * ClsFactors.ValueFactorLow + windGenerator.DailyGenerationValue; } else if (windData.Element("Location").Value == "Onshore") { windGenerator.DailyGenerationValue = double.Parse(genData.Element("Energy").Value) * double.Parse(genData.Element("Price").Value) * ClsFactors.ValueFactorHigh + windGenerator.DailyGenerationValue; } Console.WriteLine("Total:-" + windGenerator.DailyGenerationValue); } windGenerators.Add(windGenerator); } //Parse Gas Genarator Data Console.WriteLine("Gas"); var selectGasGen = from r in xdoc.Descendants("GasGenerator") select r; foreach (var gasData in selectGasGen) { ClsGenaratorGas gasGenerator = new ClsGenaratorGas(); var selectGen = from genResult in gasData.Descendants("Day") select genResult; gasGenerator.FuelGenName = gasData.Element("Name").Value; foreach (var genData in selectGen) { gasGenerator.DailyGenerationValue = double.Parse(genData.Element("Energy").Value) * double.Parse(genData.Element("Price").Value) * ClsFactors.ValueFactorMedium + gasGenerator.DailyGenerationValue; gasGenerator.DailyEmissionsValue = double.Parse(genData.Element("Energy").Value) * double.Parse(gasData.Element("EmissionsRating").Value) * ClsFactors.EmissionFactorMedium + gasGenerator.DailyEmissionsValue; Console.WriteLine("Total:-" + gasGenerator.DailyGenerationValue + " Emission:- " + gasGenerator.DailyEmissionsValue); } gasGenerators.Add(gasGenerator); } //Parse Coal Generation Data Console.WriteLine("Coal"); var selectCoalGen = from r in xdoc.Descendants("CoalGenerator") select r; // Daily Generation Value = Energy x Price x ValueFactor //Daily Emissions = Energy x EmissionRating x EmissionFactor //Actual Heat Rate = TotalHeatInput / ActualNetGeneration foreach (var coalData in selectCoalGen) { ClsGenaratorCoal coalGenerator = new ClsGenaratorCoal(); var selectGen = from genResult in coalData.Descendants("Day") select genResult; coalGenerator.FuelGenName = coalData.Element("Name").Value; coalGenerator.ActualHeatRate = double.Parse(coalData.Element("TotalHeatInput").Value) / double.Parse(coalData.Element("ActualNetGeneration").Value); foreach (var genData in selectGen) { coalGenerator.DailyGenerationValue = double.Parse(genData.Element("Energy").Value) * double.Parse(genData.Element("Price").Value) * ClsFactors.ValueFactorMedium + coalGenerator.DailyGenerationValue; coalGenerator.DailyEmissionsValue = double.Parse(genData.Element("Energy").Value) * double.Parse(coalData.Element("EmissionsRating").Value) * ClsFactors.EmissionFactorHigh + coalGenerator.DailyEmissionsValue; Console.WriteLine("Total:-" + coalGenerator.DailyGenerationValue + " Emission:- " + coalGenerator.DailyEmissionsValue + " Actual Heat Rate:- " + coalGenerator.ActualHeatRate); } coalGenerators.Add(coalGenerator); } GetTotalGeneratorValues(windGenerators, gasGenerators, coalGenerators); }