private decimal?[] GetHeatElecData(string CustId, int YY) { var db = new EnergyNetEntities(); ObjectParameter HeatEnergyUse_FuelOil = new ObjectParameter("HeatEnergyUse_FuelOil", typeof(decimal)); ObjectParameter HeatEnergyUse_LPG = new ObjectParameter("HeatEnergyUse_LPG", typeof(decimal)); ObjectParameter HeatEnergyUse_NG = new ObjectParameter("HeatEnergyUse_NG", typeof(decimal)); ObjectParameter HeatEnergyUse_Gas = new ObjectParameter("HeatEnergyUse_Gas", typeof(decimal)); ObjectParameter HeatEnergyUse_DieselOil = new ObjectParameter("HeatEnergyUse_DieselOil", typeof(decimal)); ObjectParameter HeatTotalFee = new ObjectParameter("HeatTotalFee", typeof(decimal)); ObjectParameter ElecEnergyUse_ReqularContract = new ObjectParameter("ElecEnergyUse_ReqularContract", typeof(decimal)); ObjectParameter ElecEnergyUse_HPD = new ObjectParameter("ElecEnergyUse_HPD", typeof(decimal)); ObjectParameter ElecEnergyUse_TotalElec = new ObjectParameter("ElecEnergyUse_TotalElec", typeof(decimal)); ObjectParameter ElecEnergyUse_PowerFactor = new ObjectParameter("ElecEnergyUse_PowerFactor", typeof(decimal)); ObjectParameter ElecEnergyUse_TotalElecCost = new ObjectParameter("ElecEnergyUse_TotalElecCost", typeof(decimal)); ObjectParameter UniteElec = new ObjectParameter("UniteElec", typeof(int)); var items = db.p_UnitAreaConsumesEnergy_Get(CustId, YY, HeatEnergyUse_FuelOil, HeatEnergyUse_LPG, HeatEnergyUse_NG, HeatEnergyUse_Gas, HeatEnergyUse_DieselOil, HeatTotalFee, ElecEnergyUse_ReqularContract, ElecEnergyUse_HPD, ElecEnergyUse_TotalElec, ElecEnergyUse_PowerFactor, ElecEnergyUse_TotalElecCost, UniteElec).ToList(); //Log.Write(new string[] { "HeatEnergyUse_FuelOil", HeatEnergyUse_FuelOil.Value == DBNull.Value }); //Log.WriteToFile(); var v1 = HeatEnergyUse_FuelOil.Value == DBNull.Value ? 0 : (decimal)HeatEnergyUse_FuelOil.Value; var v2 = HeatEnergyUse_LPG.Value == DBNull.Value ? 0 : (decimal)HeatEnergyUse_LPG.Value; var v3 = HeatEnergyUse_NG.Value == DBNull.Value ? 0 : (decimal)HeatEnergyUse_NG.Value; var v4 = HeatEnergyUse_Gas.Value == DBNull.Value ? 0 : (decimal)HeatEnergyUse_Gas.Value; var v5 = HeatEnergyUse_DieselOil.Value == DBNull.Value ? 0 : (decimal)HeatEnergyUse_DieselOil.Value; var Heat_TotalValue = v1 + v2 + v3 + v4 + v5; var Str_ElecEnergyUse_TotalElec = ElecEnergyUse_TotalElec.Value == DBNull.Value ? 0 : (decimal)ElecEnergyUse_TotalElec.Value; var Str_ElecEnergyUse_TotalHeat = Str_ElecEnergyUse_TotalElec * 2236 / 1000; var Str_HeatElec_OValue = Heat_TotalValue + Str_ElecEnergyUse_TotalHeat; var Str_FloorSquareMeasure = items == null ? 0 : items.Select(x => x.FloorSquareMeasure).Sum(); var Str_AreaEnergy = Str_FloorSquareMeasure == 0 ? 0 : Str_HeatElec_OValue / Str_FloorSquareMeasure; var Str_AreaElecEnergy = Str_FloorSquareMeasure == 0 ? 0 : Str_ElecEnergyUse_TotalElec / Str_FloorSquareMeasure; var Str_AreaElec = Str_FloorSquareMeasure == 0 || ElecEnergyUse_HPD.Value == DBNull.Value ? 0 : (decimal)ElecEnergyUse_HPD.Value * 1000 / Str_FloorSquareMeasure; return new decimal?[] { Str_AreaEnergy, Str_AreaElecEnergy, Str_AreaElec }; }