public Type867NonIntervalSummary ParseNonIntervalSummary(XElement element, IDictionary <string, XNamespace> namespaces) { XNamespace empty; if (!namespaces.TryGetValue(string.Empty, out empty)) { empty = XNamespace.None; } var model = new Type867NonIntervalSummary { TypeCode = element.GetChildText(empty + "TypeCode"), MeterUOM = element.GetChildText(empty + "MeterUOM"), MeterInterval = element.GetChildText(empty + "MeterInterval"), CommodityCode = element.GetChildText(empty + "CommodityCode"), NumberOfDials = element.GetChildText(empty + "NumberOfDials"), ServicePointId = element.GetChildText(empty + "ServicePointId"), UtilityRateServiceClass = element.GetChildText(empty + "UtilityRateServiceClass"), RateSubClass = element.GetChildText(empty + "RateSubClass") }; var quantitiesLoopElement = element.Element(empty + "NonIntervalSummaryQtyLoop"); if (quantitiesLoopElement != null) { var quantityElements = quantitiesLoopElement.Elements(empty + "NonIntervalSummaryQty"); foreach (var quantityElement in quantityElements) { var quantityModel = ParseNonIntervalSummaryQty(quantityElement, namespaces); model.AddQuantity(quantityModel); } } return(model); }
private void ParseNonIntervalSummary(Prism867Context context, string[] marketFields) { var current = context.Current; if (current == null || current.ModelType != Type867Types.Header) { throw new InvalidOperationException(); } var header = current as Type867Header; if (header == null) { throw new InvalidOperationException(); } var meterType = string.Empty; switch (context.Market) { case MarketOptions.Texas: meterType = marketFields.AtIndex(6) + marketFields.AtIndex(7); break; case MarketOptions.Maryland: // MD 07 records will be imported along with with the 08 records // because the UOM is a part of the 08 record and must be read from there first context.R07ServicePeriodBeginDate = marketFields.AtIndex(2); context.R07ServicePeriodEndDate = marketFields.AtIndex(3); return; } var model = new Type867NonIntervalSummary { TypeCode = context.RecordType, MeterUOM = string.Empty, MeterInterval = string.Empty, }; if (meterType.Length > 1) { model.MeterUOM = meterType.Substring(0, 2); } if (meterType.Length > 2) { model.MeterInterval = meterType.Substring(2); } context.PushModel(model); header.AddNonIntervalSummary(model); }
public void ParseNonIntervalSummaryForMaryland(Prism867Context context, string[] marketFields) { var current = context.Current; if (current == null || current.ModelType != Type867Types.Header) { throw new InvalidOperationException(); } var header = current as Type867Header; if (header == null) { throw new InvalidOperationException(); } var model = new Type867NonIntervalSummary { TypeCode = context.RecordType, MeterUOM = string.Empty, MeterInterval = string.Empty, }; if (!string.IsNullOrEmpty(context.Uom)) { var meterType = context.Uom; if (meterType.Length > 1) { model.MeterUOM = meterType.Substring(0, 2); } if (meterType.Length > 2) { model.MeterInterval = meterType.Substring(2); } } context.PushModel(model); header.AddNonIntervalSummary(model); }
public int InsertNonIntervalSummary(Type867NonIntervalSummary model) { using (var connection = new SqlConnection(_connectionString)) using (var command = connection.CreateCommand("csp867NonIntervalSummaryInsert")) { SqlParameter keyParameter; command.AddWithValue("@867_Key", model.HeaderKey) .AddIfNotEmptyOrDbNull("@TypeCode", model.TypeCode) .AddIfNotEmptyOrDbNull("@MeterUOM", model.MeterUOM) .AddIfNotEmptyOrDbNull("@MeterInterval", model.MeterInterval) .AddWithValue("@CommodityCode", model.CommodityCode) .AddWithValue("@NumberOfDials", model.NumberOfDials) .AddWithValue("@ServicePointId", model.ServicePointId) .AddWithValue("@UtilityRateServiceClass", model.UtilityRateServiceClass) .AddWithValue("@RateSubClass", model.RateSubClass) .AddOutParameter("@NonIntervalSummary_Key", SqlDbType.Int, out keyParameter); if (connection.State != ConnectionState.Open) { connection.Open(); } command.ExecuteNonQuery(); if (keyParameter.Value == null) { throw new Exception(); } var key = (int)keyParameter.Value; model.NonIntervalSummaryKey = key; return(key); } }