/// <summary> /// /// </summary> /// <param name="lpResult" type="Itron.Metering.DeviceDataTypes.LoadProfileEnergyData"> /// </param> /// <returns> /// A Itron.Metering.Datafiles.TotalizationContributorList.TotalizationResult value... /// </returns> private TotalizationResult Totalize(out LoadProfileEnergyData lpResult) { lpResult = null; TotalizationResult Result = ValidateDataSources(); if (Result == TotalizationResult.Success) { lpResult = new LoadProfileEnergyData(IntervalLength); // Add the appropriate number of channels for (int nChannelIndex = 0; nChannelIndex < NumProfileChannels; nChannelIndex++) { // The channels will assume the same name as the first contributor lpResult.AddChannel(m_lstDataSources[0].LPData.Channels[nChannelIndex].ChannelName, (float)1.0, (float)1.0); } // Next combine the load profile data from all the contributors foreach (LoadProfileDataSource ProfileContributor in m_lstDataSources) { TotalizationDataSource contributor = ProfileContributor as TotalizationDataSource; if (contributor != null) { TotalizeIntervalData(lpResult, contributor.LPData.EnergyData, contributor.Calculation); } } } return(Result); }
/// <summary> /// This method displays a user-readable error message for the given /// totalization result. /// </summary> /// <param name="Result" type="Itron.Metering.Datafiles.AggregratedProfileData.AggregationResult"> /// </param> /// <remarks> /// Revision History /// MM/DD/YY Who Version Issue# Description /// -------- --- ------- ------------- ----------------------------------- /// 08/28/08 MAH 9.50 Created /// </remarks> public static String TranslateTotalizationError(TotalizationResult Result) { String strResult = ""; switch (Result) { case TotalizationResult.DSTMismatch: strResult = "DST settings do not match"; break; case TotalizationResult.IntervalLengthMismatch: strResult = "Interval lengths do not match"; break; case TotalizationResult.NoContributors: strResult = "Some contributors do not contain load profile data"; break; case TotalizationResult.QuantityMismatch: strResult = "Load profile channel quantities do not match"; break; case TotalizationResult.NoCommonIntervalData: strResult = "A common date range does not exist between all contributors"; break; default: strResult = Result.ToString(); break; } return(strResult); }