public void ParseServiceMeter(Prism814Context context, string[] marketFields) { var current = context.Current; if (current == null || current.ModelType != Type814Types.Service) { throw new InvalidOperationException(); } var service = current as Type814Service; if (service == null) { throw new InvalidOperationException(); } var model = new Type814ServiceMeter { EntityIdCode = marketFields.AtIndex(4), MeterNumber = marketFields.AtIndex(2), MeterType = marketFields.AtIndex(5), LoadProfile = marketFields.AtIndex(8), RateClass = marketFields.AtIndex(6), RateSubClass = marketFields.AtIndex(7), MeterCycle = marketFields.AtIndex(10), MeterCycleDayOfMonth = marketFields.AtIndex(36), SpecialNeedsIndicator = marketFields.AtIndex(21), OldMeterNumber = marketFields.AtIndex(3), MeterOwnerIndicator = marketFields.AtIndex(23), AmsIndicator = marketFields.AtIndex(51), SummaryInterval = marketFields.AtIndex(51), }; service.AddMeter(model); context.PushModel(model); marketFields.TryAtIndex(11, x => context.ProductType = x); marketFields.TryAtIndex(13, x => context.UnmeterQuantity = x); marketFields.TryAtIndex(14, x => context.UnmeterDescription = x); var hasIntervalType = false; var hasProductType = false; marketFields.TryAtIndex(5, x => hasIntervalType = true); marketFields.TryAtIndex(11, x => hasProductType = true); if (hasIntervalType || !hasProductType) { return; } var meterTypeModel = new Type814ServiceMeterType { ProductType = marketFields.AtIndex(11), UnmeteredNumberOfDevices = marketFields.AtIndex(13), UnmeteredDescription = marketFields.AtIndex(37), }; model.AddType(meterTypeModel); }
public void ParseHeader(Prism814Context context, string[] marketFields) { var model = new Type814Header { TransactionSetPurposeCode = "11", TransactionSetId = marketFields.AtIndex(16), TransactionNbr = marketFields.AtIndex(4), TransactionDate = marketFields.AtIndex(11), ReferenceNbr = marketFields.AtIndex(5), TdspDuns = marketFields.AtIndex(6), TdspName = marketFields.AtIndex(7), CrDuns = marketFields.AtIndex(8), CrName = marketFields.AtIndex(9), }; marketFields.TryAtIndex(3, x => model.TransactionSetPurposeCode = x); var identifiedMarket = clientDataAccess.IdentifyMarket(model.TdspDuns); if (identifiedMarket.HasValue) { context.SetMarket(identifiedMarket.Value); } else { context.SetMarket((int)MarketOptions.Texas); } model.MarketId = context.MarketId; model.ProviderId = 1; model.ActionCode = context.Alias; if (context.Market == MarketOptions.Texas) { model.ActionCode = marketFields.AtIndex(16); } context.PushModel(model); }
public void ParseService(Prism814Context context, string[] marketFields) { var current = context.Current; if (current == null || current.ModelType != Type814Types.Header) { throw new InvalidOperationException(); } var header = current as Type814Header; if (header == null) { throw new InvalidOperationException(); } var model = new Type814Service { AssignId = marketFields.AtIndex(5), ServiceType1 = marketFields.AtIndex(2), ServiceTypeCode1 = string.Empty, ServiceType2 = marketFields.AtIndex(3), ServiceTypeCode2 = string.Empty, ServiceType3 = marketFields.AtIndex(4), ServiceTypeCode3 = string.Empty, ServiceType4 = marketFields.AtIndex(42), ServiceTypeCode4 = string.Empty, ActionCode = marketFields.AtIndex(7), DistributionLossFactorCode = marketFields.AtIndex(44), PremiseType = marketFields.AtIndex(47), BillType = marketFields.AtIndex(30), StationId = marketFields.AtIndex(33), EnergizedFlag = marketFields.AtIndex(46), PriorityCode = marketFields.AtIndex(45), PermitIndicator = marketFields.AtIndex(23), MembershipId = marketFields.AtIndex(9), PolrClass = marketFields.AtIndex(14), LdcBillingCycle = marketFields.AtIndex(28), LdcBudgetBillingStatus = marketFields.AtIndex(32), SpecialNeedsIndicator = marketFields.AtIndex(66), HumanNeeds = marketFields.AtIndex(54), SwitchHoldStatusIndicator = marketFields.AtIndex(60), SpecialMeterConfig = marketFields.AtIndex(69), MaximumGeneration = marketFields.AtIndex(70), DaysInArrears = marketFields.AtIndex(71), }; marketFields.TryAtIndex(2, x => model.ServiceTypeCode1 = "SH"); marketFields.TryAtIndex(3, x => model.ServiceTypeCode2 = "SH"); marketFields.TryAtIndex(4, x => model.ServiceTypeCode3 = "SH"); marketFields.TryAtIndex(42, x => model.ServiceTypeCode4 = "SH"); if (context.Market == MarketOptions.Texas) { model.BillCalculator = string.Empty; model.EsiId = marketFields.AtIndex(43); var alias = context.Alias.TrimStart('0'); switch (alias) { case "19": model.MaintenanceTypeCode = marketFields.AtIndex(6); break; case "8": case "9": case "11": case "14": case "28": model.MaintenanceTypeCode = marketFields.AtIndex(8); break; case "20": model.MaintenanceTypeCode = marketFields.AtIndex(24); break; } } if (context.Market == MarketOptions.Maryland) { model.BillCalculator = marketFields.AtIndex(31); model.EsiId = marketFields.AtIndex(9); model.MaintenanceTypeCode = marketFields.AtIndex(6); } if (context.Market == MarketOptions.Maryland) { if (header.ActionCode.Equals("E", StringComparison.Ordinal) && model.ServiceType2.Equals("HU", StringComparison.Ordinal)) { header.ActionCode = "HU"; header.ReferenceNbr = model.AssignId; } } header.AddService(model); context.PushModel(model); }