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 IMarketFileExportResult[] Export(CancellationToken token) { var cspDunsPorts = clientDataAccess.ListCspDunsPort(); var prismPorts = cspDunsPorts .Where(x => x.ProviderId == 1) .ToArray(); var context = new Prism814Context(); foreach (var prismPort in prismPorts) { if (token.IsCancellationRequested) { break; } var headers = exportDataAccess.ListUnprocessed(prismPort.LdcDuns, prismPort.Duns, 1); if (headers.Length == 0) { logger.TraceFormat("Zero 814 Prism records found to export for TDSP Duns \"{0}\" and CR Duns \"{1}\".", prismPort.LdcDuns, prismPort.Duns); continue; } logger.DebugFormat("Exporting {0} unprocessed 814 record(s) for TDSP Duns \"{1}\" and CR Duns \"{2}\".", headers.Length, prismPort.LdcDuns, prismPort.Duns); foreach (var header in headers) { if (!header.HeaderKey.HasValue) { continue; } if (token.IsCancellationRequested) { break; } var headerKey = header.HeaderKey.Value; context.Initialize(); context.ActionCode = header.ActionCode; var identifiedMarket = clientDataAccess.IdentifyMarket(header.TdspDuns); if (identifiedMarket.HasValue) { context.SetMarket(identifiedMarket.Value); } if (context.ActionCode.Equals("PC", StringComparison.Ordinal) || context.ActionCode.Equals("PD", StringComparison.Ordinal) || context.Market != MarketOptions.Texas) { context.SetFileProperties(prismPort, header.TdspDuns, "ENR"); } else { context.SetFileProperties(prismPort, "183529049", "ENR"); } context.SetHeaderId(headerKey); var services = exportDataAccess.ListServices(headerKey); WriteHeader(context, header, services); WriteAccount(context, header); WriteName(context, header); WriteService(context, header, services); } } return(context.Models); }