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 WriteHeader(Prism820Context context, Type820Header header) { var line = string.Format("SH|{0}|{1}|O|", context.TradingPartnerId, header.TraceReferenceNbr); context.AppendLine(line); logger.TraceFormat("Wrote 820 \"SH\" PRISM line for Header {0}", header.HeaderKey); }
public void WriteDetail(Prism820Context context, Type820Header header) { if (!header.HeaderKey.HasValue) { return; } var headerKey = header.HeaderKey.Value; var details = marketDataAccess.ListDetails(headerKey); if (details == null || details.Length == 0) { return; } foreach (var detail in details) { if (!detail.DetailKey.HasValue) { continue; } var premiseNumber = IdentifyEsiId(context, detail); var membershipId = IdentifyLdcAccountNumber(context, detail); var line = string.Format("20|{0}|{5}||{1}|||||{2}||||{3}|||{4}|", context.TradingPartnerId, detail.PaymentAmount, detail.CrossReferenceNbr, detail.ReferenceNbr, premiseNumber, membershipId); context.AppendLine(line); logger.TraceFormat("Wrote 820 \"20\" PRISM line for Header {0}", header.HeaderKey); } }
public Type820Header[] ListUnprocessed(string ldcDuns, string duns, int providerId) { using (var connection = new SqlConnection(connectionString)) using (var command = connection.CreateCommand("esp_820ExportList")) { command.AddIfNotEmptyOrDbNull("@CrDuns", duns) .AddIfNotEmptyOrDbNull("@TdspDuns", ldcDuns); if (connection.State != ConnectionState.Open) { connection.Open(); } var collection = new List <Type820Header>(); using (var reader = command.ExecuteReader()) { while (reader.Read()) { var item = new Type820Header { HeaderKey = reader.GetInt32("820_Key"), ProcessFlag = reader.GetBoolean("ProcessFlag"), Direction = reader.GetBoolean("Direction"), }; reader.TryGetInt32("MarketFileId", x => item.MarketFileId = x); reader.TryGetString("TransactionSetId", x => item.TransactionSetId = x); reader.TryGetString("TransactionSetControlNbr", x => item.TransactionSetControlNbr = x); reader.TryGetString("TransactionTypeCode", x => item.TransactionTypeCode = x); reader.TryGetString("TransactionNbr", x => item.TransactionNbr = x); reader.TryGetString("TransactionDate", x => item.TransactionDate = x); reader.TryGetString("TotalAmount", x => item.TotalAmount = x); reader.TryGetString("CreditDebitFlag", x => item.CreditDebitFlag = x); reader.TryGetString("PaymentMethodCode", x => item.PaymentMethodCode = x); reader.TryGetString("TraceReferenceNbr", x => item.TraceReferenceNbr = x); reader.TryGetString("TdspDunsStructureCode", x => item.TdspDunsStructureCode = x); reader.TryGetString("TdspDuns", x => item.TdspDuns = x); reader.TryGetString("TdspName", x => item.TdspName = x); reader.TryGetString("CrDuns", x => item.CrDuns = x); reader.TryGetString("CrName", x => item.CrName = x); reader.TryGetDateTime("ProcessDate", x => item.ProcessDate = x); reader.TryGetInt32("TransactionTypeID", x => item.TransactionTypeId = x); reader.TryGetInt32("MarketID", x => item.MarketId = x); reader.TryGetInt32("ProviderID", x => item.ProviderId = x); reader.TryGetString("ESPUtilityAccountNumber", x => item.ESPUtilityAccountNumber = x); reader.TryGetString("CreateDate", x => item.CreateDate = x); collection.Add(item); } return(collection.ToArray()); } } }
public void WritePayment(Prism820Context context, Type820Header header) { var partnerId = context.TradingPartnerId; var stateId = partnerId.Substring(3, 2); var line = string.Format("01|{0}|{1}|{2}|{3}|{4}||||||||{5}|{6}|{7}|{8}|{9}|{10}|{11}||||", partnerId, stateId, header.TransactionTypeCode, header.TotalAmount, header.PaymentMethodCode, header.TransactionDate, header.TraceReferenceNbr, header.CrName, header.CrDuns, header.TdspName, header.TdspDuns, header.CreditDebitFlag); context.AppendLine(line); logger.TraceFormat("Wrote 820 \"01\" PRISM line for Header {0}", header.HeaderKey); }
public int InsertHeader(Type820Header model) { using (var connection = new SqlConnection(connectionString)) using (var command = connection.CreateCommand("csp820HeaderInsert")) { SqlParameter keyParameter; command.AddWithValue("@MarketFileId", model.MarketFileId) .AddWithValue("@TransactionSetId", model.TransactionSetId) .AddWithValue("@TransactionSetControlNbr", model.TransactionSetControlNbr) .AddWithValue("@TransactionTypeCode", model.TransactionTypeCode) .AddIfNotEmptyOrDbNull("@TransactionNbr", model.TransactionNbr) .AddIfNotEmptyOrDbNull("@TransactionDate", model.TransactionDate) .AddIfNotEmptyOrDbNull("@TotalAmount", model.TotalAmount) .AddWithValue("@CreditDebitFlag", model.CreditDebitFlag) .AddIfNotEmptyOrDbNull("@PaymentMethodCode", model.PaymentMethodCode) .AddIfNotEmptyOrDbNull("@TraceReferenceNbr", model.TraceReferenceNbr) .AddWithValue("@TdspDunsStructureCode", model.TdspDunsStructureCode) .AddIfNotEmptyOrDbNull("@TdspDuns", model.TdspDuns) .AddIfNotEmptyOrDbNull("@TdspName", model.TdspName) .AddWithValue("@CrDuns", model.CrDuns) .AddWithValue("@CrName", model.CrName) .AddWithValue("@Direction", true) .AddWithValue("@ProviderID", model.ProviderId) .AddWithValue("@MarketID", model.MarketId) .AddWithValue("@TransactionTypeID", model.TransactionTypeId) .AddWithValue("@ESPUtilityAccountNumber", model.ESPUtilityAccountNumber) .AddWithValue("@CreateDate", model.CreateDate) .AddOutParameter("@Key", SqlDbType.Int, out keyParameter); if (connection.State != ConnectionState.Open) { connection.Open(); } command.ExecuteNonQuery(); if (keyParameter.Value == null) { throw new Exception(); } var headerKey = (int)keyParameter.Value; model.HeaderKey = headerKey; return(headerKey); } }
public Type820Header ParseHeader(XElement element, IDictionary <string, XNamespace> namespaces) { XNamespace empty; if (!namespaces.TryGetValue(string.Empty, out empty)) { empty = XNamespace.None; } var model = new Type820Header { CrDuns = element.GetChildText(empty + "CrDuns"), CreateDate = element.GetChildText(empty + "CreateDate"), CreditDebitFlag = element.GetChildText(empty + "CreditDebitFlag"), CrName = element.GetChildText(empty + "CrName"), ESPUtilityAccountNumber = element.GetChildText(empty + "ESPUtilityAccountNumber"), PaymentMethodCode = element.GetChildText(empty + "PaymentMethodCode"), TdspDuns = element.GetChildText(empty + "TdspDuns"), TdspDunsStructureCode = element.GetChildText(empty + "TdspDunsStructureCode"), TdspName = element.GetChildText(empty + "TdspName"), TotalAmount = element.GetChildText(empty + "TotalAmount"), TraceReferenceNbr = element.GetChildText(empty + "TraceReferenceNbr"), TransactionDate = element.GetChildText(empty + "TransactionDate"), TransactionNbr = element.GetChildText(empty + "TransactionNbr"), TransactionSetControlNbr = element.GetChildText(empty + "TransactionSetControlNbr"), TransactionSetId = element.GetChildText(empty + "TransactionSetId"), TransactionTypeCode = element.GetChildText(empty + "TransactionTypeCode"), }; var detailLoopElement = element.Element(empty + "DetailLoop"); if (detailLoopElement != null) { var nameElements = detailLoopElement.Elements(empty + "Detail"); foreach (var nameElement in nameElements) { var detailModel = ParseDetail(nameElement, namespaces); model.AddDetail(detailModel); } } return(model); }
public void WriteHeader(XContainer container, Type820Header header) { if (header == null) { return; } if (!header.HeaderKey.HasValue) { return; } var headerKey = header.HeaderKey.Value; var element = new XElement("Header", new XElement("HeaderKey", headerKey)); element.TryAddElement("TransactionSetId", header.TransactionSetId); element.TryAddElement("TransactionSetControlNbr", header.TransactionSetControlNbr); element.TryAddElement("TransactionDate", header.TransactionDate); element.TryAddElement("TransactionNbr", header.TransactionNbr); element.TryAddElement("TotalAmount", header.TotalAmount); element.TryAddElement("CreditDebitFlag", header.CreditDebitFlag); element.TryAddElement("PaymentMethodCode", header.PaymentMethodCode); element.TryAddElement("TraceReferenceNbr", header.TraceReferenceNbr); element.TryAddElement("TdspDunsStructureCode", header.TdspDunsStructureCode); element.TryAddElement("TdspName", header.TdspName); element.TryAddElement("TdspDuns", header.TdspDuns); element.TryAddElement("CrName", header.CrName); element.TryAddElement("CrDuns", header.CrDuns); element.TryAddElement("ESPUtilityAccountNumber", header.ESPUtilityAccountNumber); element.TryAddElement("CreateDate", header.CreateDate); container.Add(element); logger.TraceFormat("Added 820 \"Header\" XML element for Header {0}", headerKey); var details = exportDataAccess.ListDetails(headerKey); WriteDetail(element, details); }
public void SaveHeader(Type820Header header) { logger.Trace("Start inserting header."); var headerKey = marketDataAccess.InsertHeader(header); logger.DebugFormat("Inserted Header \"{0}\".", headerKey); if (header.HeaderKey > 0) { foreach (var detail in header.Details) { detail.HeaderKey = headerKey; var detailKey = marketDataAccess.InsertDetail(detail); logger.DebugFormat("Inserted Detail \"{0}\" for Header \"{1}\".", detailKey, headerKey); } } else { logger.WarnFormat("Inserted Header returned Header Key: {0}. Failed duplicate check in insert stored procedure."); } logger.Trace("Completed inserting header."); }
public void SaveHeader(Type820Header header, int marketFileId) { header.MarketFileId = marketFileId; SaveHeader(header); }
public void AddHeader(Type820Header item) { headers.Add(item); }