public void ParseHeader(Prism810Context context, string[] marketFields) { var model = new Type810Header { TransactionSetId = "810", TransactionSetPurposeCode = marketFields.AtIndex(7), InvoiceNbr = marketFields.AtIndex(4), TransactionDate = marketFields.AtIndex(3), ReleaseNbr = marketFields.AtIndex(5), TransactionTypeCode = marketFields.AtIndex(6), OriginalInvoiceNbr = marketFields.AtIndex(12), EsiId = marketFields.AtIndex(53), PaymentDueDate = marketFields.AtIndex(25), TdspDuns = marketFields.AtIndex(20), TdspName = marketFields.AtIndex(19), CrDuns = marketFields.AtIndex(22), CrName = marketFields.AtIndex(21), Direction = true, }; var identifiedMarket = clientDataAccess.IdentifyMarket(model.TdspDuns); if (identifiedMarket.HasValue) { context.SetMarket(identifiedMarket.Value); } model.MarketId = context.MarketId; model.ProviderId = 1; context.PushModel(model); }
public IMarketFileExportResult[] Export(CancellationToken token) { var cspDunsPorts = clientDataAccess.ListCspDunsPort(); var prismPorts = cspDunsPorts .Where(x => x.ProviderId == 1) .ToArray(); var context = new Prism650Context(); foreach (var prismPort in prismPorts) { if (token.IsCancellationRequested) { break; } var headers = marketDataAccess.ListUnprocessed(prismPort.LdcDuns, prismPort.Duns, 1); if (headers.Length == 0) { logger.TraceFormat("Zero 650 Prism records found to export for TDSP Duns \"{0}\" and CR Duns \"{1}\".", prismPort.LdcDuns, prismPort.Duns); continue; } logger.DebugFormat("Exporting {0} unprocessed 650 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(); var identifiedMarket = clientDataAccess.IdentifyMarket(header.TdspDuns); if (identifiedMarket.HasValue) { context.SetMarket(identifiedMarket.Value); } context.SetFileProperties(prismPort, header.TdspDuns, "MTR"); context.SetHeaderId(headerKey); context.TransactionSetPurposeCode = header.TransactionSetPurposeCode; WriteHeader(context, header); WriteAccount(context, header); WriteService(context, header); } } return(context.Models); }
public void ParseHeader(Prism820Context context, string[] marketFields) { var model = new Type820Header { TotalAmount = marketFields.AtIndex(4), PaymentMethodCode = marketFields.AtIndex(5), TransactionDate = marketFields.AtIndex(13), TraceReferenceNbr = marketFields.AtIndex(14), TdspName = marketFields.AtIndex(15), TdspDuns = marketFields.AtIndex(16), CrName = marketFields.AtIndex(17), CrDuns = marketFields.AtIndex(18), CreditDebitFlag = marketFields.AtIndex(19), }; var identifiedMarket = clientDataAccess.IdentifyMarket(model.TdspDuns); if (identifiedMarket.HasValue) { context.SetMarket(identifiedMarket.Value); } model.MarketId = context.MarketId; model.ProviderId = 1; context.PushModel(model); }
public void ParseTransaction(Prism824Context context, string[] marketFields) { var model = new Type824Header { TransactionDate = context.TransactionDate, TransactionNbr = context.TransactionNumber, ActionCode = context.TransactionTypeCode, CrDuns = context.CrDuns, CrName = context.CrName, TdspDuns = context.TdspDuns, TdspName = context.TdspName, AppAckCode = marketFields.AtIndex(2), TransactionSetNbr = marketFields.AtIndex(4), ReferenceNbr = marketFields.AtIndex(3), }; var identifiedMarket = clientDataAccess.IdentifyMarket(model.TdspDuns); if (identifiedMarket.HasValue) { context.SetMarket(identifiedMarket.Value); } model.MarketId = context.MarketId; model.ProviderId = 1; model.EsiId = context.PremiseNumber; if (context.Market == MarketOptions.Texas) { model.EsiId = marketFields.AtIndex(9); } context.PushModel(model); }
public void ParseHeader(Prism650Context context, string[] marketFields) { var headerModel = new Type650Header { TransactionSetPurposeCode = marketFields.AtIndex(3), TransactionDate = marketFields.AtIndex(4), TransactionNbr = marketFields.AtIndex(5), ReferenceNbr = marketFields.AtIndex(6), TransactionType = marketFields.AtIndex(7), ActionCode = marketFields.AtIndex(8), TdspName = marketFields.AtIndex(20), TdspDuns = marketFields.AtIndex(21), CrName = marketFields.AtIndex(22), CrDuns = marketFields.AtIndex(23), ProcessedReceivedDateTime = marketFields.AtIndex(24), }; var identifiedMarket = clientDataAccess.IdentifyMarket(headerModel.TdspDuns); if (identifiedMarket.HasValue) { context.SetMarket(identifiedMarket.Value); } headerModel.MarketId = context.MarketId; headerModel.ProviderId = 1; context.PushModel(headerModel); var hasEntityName = false; var hasContactName = false; marketFields.TryAtIndex(9, x => hasEntityName = true); marketFields.TryAtIndex(17, x => hasContactName = true); if (!hasEntityName || !hasContactName) { return; } var nameModel = new Type650Name { EntityName = marketFields.AtIndex(9), EntityName2 = marketFields.AtIndex(10), EntityName3 = marketFields.AtIndex(11), Address1 = marketFields.AtIndex(12), Address2 = marketFields.AtIndex(13), City = marketFields.AtIndex(14), State = marketFields.AtIndex(15), PostalCode = marketFields.AtIndex(16), ContactName = marketFields.AtIndex(17), ContactPhoneNbr1 = marketFields.AtIndex(18), ContactPhoneNbr2 = marketFields.AtIndex(19), }; headerModel.AddName(nameModel); }
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); }
private void ParseHeader(Prism867Context context, string[] marketFields) { context.TransactionNumber = marketFields.AtIndex(6); context.ReportTypeCode = marketFields.AtIndex(4); // since we are going to end up with the value at 16 // if the value in 35 is null or empty... context.EsiId = marketFields.AtIndex(16); // let's try to the value at 35 // if there it will overwrite what we already have marketFields.TryAtIndex(35, x => context.EsiId = x); var model = new Type867Header { DirectionFlag = true, TransactionSetId = context.Alias, TransactionNbr = context.TransactionNumber, TransactionDate = marketFields.AtIndex(12), ReportTypeCode = context.ReportTypeCode, EsiId = context.EsiId, ActionCode = marketFields.AtIndex(5), PowerRegion = marketFields.AtIndex(38), OriginalTransactionNbr = marketFields.AtIndex(7), ReferenceNbr = marketFields.AtIndex(39), TdspDuns = marketFields.AtIndex(8), TdspName = marketFields.AtIndex(9), CrDuns = marketFields.AtIndex(10), CrName = marketFields.AtIndex(11), UtilityAccountNumber = marketFields.AtIndex(16), EstimationReason = marketFields.AtIndex(48), EstimationDescription = marketFields.AtIndex(49), DoorHangerFlag = marketFields.AtIndex(50), EsnCount = marketFields.AtIndex(51), QoCount = marketFields.AtIndex(52) }; marketFields.TryAtIndex(3, x => model.TransactionSetPurposeCode = x); if (!string.IsNullOrEmpty(model.TransactionDate) && model.TransactionDate.Length > 8) { model.TransactionDate = model.TransactionDate.Substring(0, 8); } var identifiedMarket = clientDataAccess.IdentifyMarket(model.TdspDuns); if (identifiedMarket.HasValue) { context.SetMarket(identifiedMarket.Value); } else { context.MarkAsInvalid(string.Format("Failed to load LDC Record for DUNS \"{0}\".", model.TdspDuns ?? "(null)")); return; } model.MarketID = context.MarketId; model.MarketFileId = context.MarketFileId; 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); }