public void MultpleRecordsWriteAsync() { engine = new MultiRecordEngine(new RecordTypeSelector(CustomSelector), typeof(OrdersVerticalBar), typeof(CustomersSemiColon), typeof(SampleType)); object[] records = engine.ReadFile(FileTest.Good.MultiRecord1.Path); engine.BeginWriteFile("tempoMulti.txt"); foreach (var o in records) { engine.WriteNext(o); } engine.Close(); File.Delete("tempoMulti.txt"); object[] res = engine.ReadFile(FileTest.Good.MultiRecord1.Path); Assert.AreEqual(12, res.Length); Assert.AreEqual(12, engine.TotalRecords); Assert.AreEqual(typeof(OrdersVerticalBar), res[0].GetType()); Assert.AreEqual(typeof(OrdersVerticalBar), res[1].GetType()); Assert.AreEqual(typeof(CustomersSemiColon), res[2].GetType()); Assert.AreEqual(typeof(SampleType), res[5].GetType()); }
public void MultpleRecordsWriteAsync() { engine = new MultiRecordEngine(new RecordTypeSelector(CustomSelector), typeof(OrdersVerticalBar), typeof(CustomersSemiColon), typeof(SampleType)); object[] records = engine.ReadFile(Common.TestPath(@"Good\MultiRecord1.txt")); engine.BeginWriteFile("tempoMulti.txt"); foreach (object o in records) { engine.WriteNext(o); } engine.Close(); File.Delete("tempoMulti.txt"); object[] res = engine.ReadFile(Common.TestPath(@"Good\MultiRecord1.txt")); Assert.AreEqual(12, res.Length); Assert.AreEqual(12, engine.TotalRecords); Assert.AreEqual(typeof(OrdersVerticalBar), res[0].GetType()); Assert.AreEqual(typeof(OrdersVerticalBar), res[1].GetType()); Assert.AreEqual(typeof(CustomersSemiColon), res[2].GetType()); Assert.AreEqual(typeof(SampleType), res[5].GetType()); }
private static void Main() { var engine = new MultiRecordEngine(typeof(Record00), typeof(Record01)) { RecordSelector = new RecordTypeSelector((_, str) => { if (string.IsNullOrWhiteSpace(str)) { return(null); } if (str.StartsWith("00", StringComparison.Ordinal)) { return(typeof(Record00)); } if (str.StartsWith("01", StringComparison.Ordinal)) { return(typeof(Record01)); } return(null); }) }; var res = engine.ReadFile("Input.txt"); foreach (var rec in res) { Write("new "); Write(rec.GetType().Name); Write("( "); Write(rec.ToString()); WriteLine(" );"); } }
public void WhenSelectorReturnsTypeThatIsNotInEngine_ShouldThrowBadUsageException_WhenReadingFileAtATime() { engine = new MultiRecordEngine(new RecordTypeSelector(CustomSelectorReturningBadType), typeof(OrdersVerticalBar), typeof(CustomersSemiColon), typeof(SampleType)); Assert.Throws <BadUsageException>(() => engine.ReadFile(FileTest.Good.MultiRecord1.Path)); }
public static void Execute(string[] args) { MultiRecordEngine engine = new MultiRecordEngine(new RecordTypeSelector(RecordSelector), typeof(FileHeader), typeof(FileTrailer), typeof(BatchHeader), typeof(BatchTrailer), typeof(PaymentRecord), typeof(IgnoreRecord)); object[] res = engine.ReadFile(args[0]); int count = 0; DataTable dtPaymentRecords = null; foreach (object obj in res) { if (obj is PaymentRecord) { DataTable dt = obj.ToDataTable(); if (dtPaymentRecords == null) { dtPaymentRecords = dt; } else { dtPaymentRecords.Rows.Add(dt.Rows[0].ItemArray); } count++; } } }
static void Main(string[] args) { MultiRecordEngine engine; engine = new MultiRecordEngine(typeof(OrdersVerticalBar), typeof(CustomersSemiColon)); engine.RecordSelector = new RecordTypeSelector(CustomSelector); object[] res = engine.ReadFile(@"C:\Documents and Settings\l0737860\Mis documentos\Multi.txt"); }
public void MultpleRecordsFile() { engine = new MultiRecordEngine(new Type[] { typeof(OrdersVerticalBar), typeof(CustomersSemiColon), typeof(SampleType) }, new RecordTypeSelector(Test1Selector)); object[] res = engine.ReadFile(TestCommon.TestPath(@"Good\MultiRecord1.txt")); Assert.AreEqual(12, res.Length); Assert.AreEqual(12, engine.TotalRecords); }
public object[] LerArquivo(string urlArquivo) { var engine = new MultiRecordEngine(typeof(ArquivoCieloCabecalho), typeof(ArquivoCieloDetalhes), typeof(ArquivoCieloDetalhesCv), typeof(ArquivoCieloTrailer)) { RecordSelector = CustomSelector }; return(engine.ReadFile(urlArquivo)); }
public void MultpleRecordsFileRW() { engine = new MultiRecordEngine(typeof(OrdersVerticalBar), typeof(CustomersSemiColon), typeof(SampleType)); engine.RecordSelector = new RecordTypeSelector(CustomSelector); object[] res2 = engine.ReadFile(FileTest.Good.MultiRecord1.Path); Assert.AreEqual(12, res2.Length); Assert.AreEqual(12, engine.TotalRecords); engine.WriteFile("tempMR.txt", res2); object[] res = engine.ReadFile("tempMR.txt"); File.Delete("tempMR.txt"); Assert.AreEqual(12, res.Length); Assert.AreEqual(12, engine.TotalRecords); Assert.AreEqual(typeof(OrdersVerticalBar), res[0].GetType()); Assert.AreEqual(typeof(OrdersVerticalBar), res[1].GetType()); Assert.AreEqual(typeof(CustomersSemiColon), res[2].GetType()); Assert.AreEqual(typeof(SampleType), res[5].GetType()); }
public void MultpleRecordsFileRW() { engine = new MultiRecordEngine(typeof(OrdersVerticalBar), typeof(CustomersSemiColon), typeof(SampleType)); engine.RecordSelector = new RecordTypeSelector(CustomSelector); object[] res2 = engine.ReadFile(FileTest.Good.MultiRecord1.Path); Assert.AreEqual(12, res2.Length); Assert.AreEqual(12, engine.TotalRecords); engine.WriteFile("tempMR.txt", res2); object[] res = engine.ReadFile("tempMR.txt"); File.Delete("tempMR.txt"); Assert.AreEqual(12, res.Length); Assert.AreEqual(12, engine.TotalRecords); Assert.AreEqual(typeof(OrdersVerticalBar), res[0].GetType()); Assert.AreEqual(typeof(OrdersVerticalBar), res[1].GetType()); Assert.AreEqual(typeof(CustomersSemiColon), res[2].GetType()); Assert.AreEqual(typeof(SampleType), res[5].GetType()); }
//-> File:Input.txt /*10248|VINET|5|04071996|01081996|16071996|3|32.38 10249|TOMSP|6|05071996|16081996|10071996|1|11.61 ALFKI;Alfreds Futterkiste;Maria Anders;Sales Representative;Obere Str. 57;Berlin;Germany ANATR;Ana Trujillo Emparedados y helados;Ana Trujillo;Owner;Avda. de la Constitución 2222;México D.F.;Mexico 10250|HANAR|4|08071996|05081996|12071996|2|65.83 10111314012345 11101314123456 10251|VICTE|3|08071996|05081996|15071996|1|41.34 11121314901234 10101314234567 ANTON;Antonio Moreno Taquería;Antonio Moreno;Owner;Mataderos 2312;México D.F.;Mexico BERGS;Berglunds snabbköp;Christina Berglund;Order Administrator;Berguvsvägen 8;Luleå;Sweden */ //-> /File //-> File:RunEngine.cs /// <summary> /// The idea of this engine is to parse files with different record types /// (this engine doesn't use any hierarical structure like the /// master-details, all the records are in linear relation for it). /// With the MultiRecordEngine you can parse also mixed delimited and /// fixed length records. /// </summary> public override void Run() { MultiRecordEngine engine; engine = new MultiRecordEngine(typeof(Orders), typeof(Customer), typeof(SampleType)); engine.RecordSelector = new RecordTypeSelector(CustomSelector); object[] res = engine.ReadFile("Input.txt"); foreach (var rec in res) this.Console.WriteLine(res.ToString()); }
public void MultpleRecordsFile() { engine = new MultiRecordEngine(new RecordTypeSelector(CustomSelector), typeof(OrdersVerticalBar), typeof(CustomersSemiColon), typeof(SampleType)); object[] res = engine.ReadFile(Common.TestPath(@"Good\MultiRecord1.txt")); Assert.AreEqual(12, res.Length); Assert.AreEqual(12, engine.TotalRecords); Assert.AreEqual(typeof(OrdersVerticalBar), res[0].GetType()); Assert.AreEqual(typeof(OrdersVerticalBar), res[1].GetType()); Assert.AreEqual(typeof(CustomersSemiColon), res[2].GetType()); Assert.AreEqual(typeof(SampleType), res[5].GetType()); }
//-> {Example.File:Input.txt} /*10248|VINET|5|04071996|01081996|16071996|3|32.38 * 10249|TOMSP|6|05071996|16081996|10071996|1|11.61 * ALFKI;Alfreds Futterkiste;Maria Anders;Sales Representative;Obere Str. 57;Berlin;Germany * ANATR;Ana Trujillo Emparedados y helados;Ana Trujillo;Owner;Avda. de la Constitución 2222;México D.F.;Mexico * 10250|HANAR|4|08071996|05081996|12071996|2|65.83 * 10111314012345 * 11101314123456 * 10251|VICTE|3|08071996|05081996|15071996|1|41.34 * 11121314901234 * 10101314234567 * ANTON;Antonio Moreno Taquería;Antonio Moreno;Owner;Mataderos 2312;México D.F.;Mexico * BERGS;Berglunds snabbköp;Christina Berglund;Order Administrator;Berguvsvägen 8;Luleå;Sweden */ //-> {/Example.File} //-> {Example.File:RunEngine.cs} /// <summary> /// The idea of this engine is to parse files with different record types /// (this engine doesn't use any hierarical structure like the /// master-details, all the records are in linear relation for it). /// With the MultiRecordEngine you can parse also mixed delimited and /// fixed length records. /// </summary> public override void Run() { MultiRecordEngine engine; engine = new MultiRecordEngine(typeof(Orders), typeof(Customer), typeof(SampleType)); engine.RecordSelector = new RecordTypeSelector(CustomSelector); object[] res = engine.ReadFile("Input.txt"); foreach (object rec in res) { this.Console.WriteLine(res.ToString()); } }
//-> /File //-> To work with this engine you must create one instance of it in this way: public override void Run() { //-> File:RunEngine.cs var engine = new MultiRecordEngine(typeof (Orders), typeof (Customer), typeof (SampleType)); engine.RecordSelector = new RecordTypeSelector(CustomSelector); var res = engine.ReadFile("Input.txt"); foreach (var rec in res) Console.WriteLine(rec.ToString()); //-> /File }
public void MultipleRecordsFile() { mEngine = new MultiRecordEngine(CustomSelector, typeof(OrdersVerticalBar), typeof(CustomersSemiColon), typeof(SampleType)); object[] res = mEngine.ReadFile(FileTest.Good.MultiRecord1.Path); Assert.AreEqual(12, res.Length); Assert.AreEqual(12, mEngine.TotalRecords); Assert.AreEqual(typeof(OrdersVerticalBar), res[0].GetType()); Assert.AreEqual(typeof(OrdersVerticalBar), res[1].GetType()); Assert.AreEqual(typeof(CustomersSemiColon), res[2].GetType()); Assert.AreEqual(typeof(SampleType), res[5].GetType()); }
static void Main(string[] args) { MultiRecordEngine engine = new MultiRecordEngine(typeof(SmartPlusRowH1), typeof(SmartPlusRowH2), typeof(SmartPlusRowH3), typeof(SmartPlusRowB1), typeof(SmartPlusRowB2), typeof(SmartPlusRowS1), typeof(SmartPlusRowS2), typeof(SmartPlusRowS3)); SmartPlusData spd = new SmartPlusData(); engine.RecordSelector = new RecordTypeSelector(spd.RowSelector); var result = engine.ReadFile("\\\\Mac\\Home\\Documents\\Visual Studio 2015\\Projects\\SmartPlusParser\\SmartPlusParser\\FINANCE.DAT"); List <SmartPlusOrder> orders = SmartPlusData.dataToOrder(result); Console.WriteLine("done"); }
//-> /File //-> To work with this engine you must create one instance of it in this way: public override void Run() { //-> File:RunEngine.cs var engine = new MultiRecordEngine(typeof(Orders), typeof(Customer), typeof(SampleType)); engine.RecordSelector = new RecordTypeSelector(CustomSelector); var res = engine.ReadFile("Input.txt"); foreach (var rec in res) { Console.WriteLine(rec.ToString()); } //-> /File }
public DadosRetornoArquivoModel InterpretarArquivo(string caminhoArquivo) { var engine = new MultiRecordEngine(typeof(VendedorViewModel), typeof(ClienteViewModel), typeof(VendaViewModel)); engine.RecordSelector = new RecordTypeSelector(CustomSelector); var objetos = engine.ReadFile(caminhoArquivo); var vendedores = new List <Vendedor>(); var clientes = new List <Cliente>(); var vendas = new List <Venda>(); foreach (var objeto in objetos) { if (objeto is VendedorViewModel) { var objetoTipado = (VendedorViewModel)objeto; var vendedor = new Vendedor(objetoTipado.Type, objetoTipado.Cpf, objetoTipado.Name, objetoTipado.Salary); vendedores.Add(vendedor); } else if (objeto is ClienteViewModel) { var objetoTipado = (ClienteViewModel)objeto; var cliente = new Cliente(objetoTipado.Type, objetoTipado.Cnpj, objetoTipado.Name, objetoTipado.BusinessArea); clientes.Add(cliente); } if (objeto is VendaViewModel) { var vendaTipada = (VendaViewModel)objeto; var venda = new Venda(vendaTipada.Type, vendaTipada.SaleId, vendaTipada.Salesman); InserirItensDaVenda(vendaTipada, venda); vendas.Add(venda); } } return(new DadosRetornoArquivoModel { Vendas = vendas, Clientes = clientes, Vendedores = vendedores, }); }
public object[] ReadWellGroupCSVFile(String filePath) { //parse with 2 record types for Well and Group var engine = new MultiRecordEngine(typeof(WellRecord), typeof(GroupRecord)); engine.RecordSelector = new RecordTypeSelector(CustomSelector); //to return errors encountered while parsing engine.ErrorManager.ErrorMode = ErrorMode.SaveAndContinue; //Read object[] result = engine.ReadFile(filePath); if (engine.ErrorManager.HasErrors) { engine.ErrorManager.SaveErrors("errors.out"); } return(result); }
/// <summary> /// Method to import file with the help of multi record engine /// </summary> /// <param name="filePath">path where file is located</param> /// <returns>list of data records in the file</returns> public List <DataRecord> EvaluateFileContents(string filePath) { List <DataRecord> results = new List <DataRecord>(); MultiRecordEngine file72ByteEngine = new MultiRecordEngine(typeof(DataRecord), typeof(ColumHeaderRecord), typeof(IgnoreRowRecord)) { RecordSelector = new RecordTypeSelector(CustomSelector), ErrorMode = ErrorMode.ThrowException }; var res = file72ByteEngine.ReadFile(filePath); foreach (var rec in res) { if (rec.GetType() == typeof(DataRecord)) { results.Add((DataRecord)rec); } else if (rec.GetType() == typeof(ColumHeaderRecord)) { var columnRecord = (ColumHeaderRecord)rec; if (!(ColumnHeader1.Equals(columnRecord.TeamName.ToLower(), StringComparison.OrdinalIgnoreCase) && ColumnHeader2.Equals(columnRecord.P.ToLower(), StringComparison.OrdinalIgnoreCase) && ColumnHeader3.Equals(columnRecord.W.ToLower(), StringComparison.OrdinalIgnoreCase) && ColumnHeader4.Equals(columnRecord.L.ToLower(), StringComparison.OrdinalIgnoreCase) && ColumnHeader5.Equals(columnRecord.D.ToLower(), StringComparison.OrdinalIgnoreCase) && ColumnHeader6.Equals(columnRecord.F.ToLower(), StringComparison.OrdinalIgnoreCase) && ColumnHeader7.Equals(columnRecord.A.ToLower(), StringComparison.OrdinalIgnoreCase) && ColumnHeader8.Equals(columnRecord.Pts.ToLower(), StringComparison.OrdinalIgnoreCase))) { throw new FormatException(ErrorMessageInvalidColumns); } } } return(results); }
/// <summary> /// Read an external currency exchange file using MultiRecordEngine /// </summary> /// <param name="FullFilePath"></param> /// <returns>An single dimentional array with all the rows in the file</returns> public object[] ReadExternalCurrencyExchageFile(string FullFilePath) { try { FileInfo finfo = new FileInfo(FullFilePath); if (finfo.Length == 0) { throw new Exception($"The file <{FullFilePath}> is empty"); } using (FileStream fs = new FileStream(FullFilePath, FileMode.Open, FileAccess.Read)) { var engine = new MultiRecordEngine(typeof(CurrencyToConvert), typeof(CurrencyRate)); engine.RecordSelector = new RecordTypeSelector(CustomSelector); return(engine.ReadFile(FullFilePath)); } } catch (FileNotFoundException e) { throw new FileNotFoundException($"The file <{FullFilePath}> was not found: '{e.Message}'"); } catch (DirectoryNotFoundException e) { throw new DirectoryNotFoundException($"The directory was not found: '{e.Message}'"); } catch (IOException e) { throw new IOException($"The file <{FullFilePath}> could not be opened: '{e.Message}'"); } catch (Exception e) { throw new Exception($"An error in method ReadExternalCurrencyExchageFile : '{e.Message}'"); } }
public Models.Files.PurchaseAcknowledgement.DataSequence.V3 ReadFile(string filename, int batchnumber) { List <Models.Files.PurchaseAcknowledgement.R02_FileHeader> r02 = null; List <Models.Files.PurchaseAcknowledgement.R11_PurchaseOrderHeader> r11 = null; List <Models.Files.PurchaseAcknowledgement.R21_FreeFormVendor> r21 = null; List <Models.Files.PurchaseAcknowledgement.R40_LineItem> r40 = null; List <Models.Files.PurchaseAcknowledgement.R41_AdditionalDetail> r41 = null; List <Models.Files.PurchaseAcknowledgement.R42_AdditionalLineItem> r42 = null; List <Models.Files.PurchaseAcknowledgement.R43_AdditionalLineItem> r43 = null; List <Models.Files.PurchaseAcknowledgement.R44_Item_NumberOrPrice> r44 = null; List <Models.Files.PurchaseAcknowledgement.R45_AdditionalLineItem> r45 = null; List <Models.Files.PurchaseAcknowledgement.R59_PurchaseOrderControlTotals> r59 = null; List <Models.Files.PurchaseAcknowledgement.R91_FileTrailer> r91 = null; // Models.Files.PurchaseAcknowledgement.DataSequence.V3 file = null; Models.Files.PurchaseAcknowledgement.DataSequence.AcknowledgementItem acknowledgement = null; // string typename = string.Empty; int acknowledgementCount = 0; bool savedokay = false; try { MultiRecordEngine engine = new MultiRecordEngine ( typeof(Models.Files.PurchaseAcknowledgement.R02_FileHeader), typeof(Models.Files.PurchaseAcknowledgement.R11_PurchaseOrderHeader), typeof(Models.Files.PurchaseAcknowledgement.R21_FreeFormVendor), typeof(Models.Files.PurchaseAcknowledgement.R40_LineItem), typeof(Models.Files.PurchaseAcknowledgement.R41_AdditionalDetail), typeof(Models.Files.PurchaseAcknowledgement.R42_AdditionalLineItem), typeof(Models.Files.PurchaseAcknowledgement.R43_AdditionalLineItem), typeof(Models.Files.PurchaseAcknowledgement.R44_Item_NumberOrPrice), typeof(Models.Files.PurchaseAcknowledgement.R45_AdditionalLineItem), typeof(Models.Files.PurchaseAcknowledgement.R59_PurchaseOrderControlTotals), typeof(Models.Files.PurchaseAcknowledgement.R91_FileTrailer) ) { RecordSelector = new RecordTypeSelector(Models.Files.PurchaseAcknowledgement.Selectors.V3.Custom) }; var res = engine.ReadFile(filename); if (res != null && res.Length > 0) { file = new Models.Files.PurchaseAcknowledgement.DataSequence.V3(); foreach (var rec in res) { typename = rec.GetType().Name.ToUpper(); switch (typename) { case "R02_FILEHEADER": Common.Initialize(ref r02); r02.Add((Models.Files.PurchaseAcknowledgement.R02_FileHeader)rec); file.FileHeaderRecord = r02.LastItem(); break; case "R11_PURCHASEORDERHEADER": Common.Initialize(ref r11); r11.Add((Models.Files.PurchaseAcknowledgement.R11_PurchaseOrderHeader)rec); file.PurchaseOrderHeaderRecord = r11.LastItem(); break; case "R21_FREEFORMVENDOR": Common.Initialize(ref r21); r21.Add((Models.Files.PurchaseAcknowledgement.R21_FreeFormVendor)rec); if (file.FreeFormVendor == null) { file.FreeFormVendor = new List <Models.Files.PurchaseAcknowledgement.R21_FreeFormVendor>(); } if (file.FreeFormVendor.Count <= file.Maxes[typename]) { file.FreeFormVendor.Add(r21.LastItem()); } break; case "R40_LINEITEM": Common.Initialize(ref r40); r40.Add((Models.Files.PurchaseAcknowledgement.R40_LineItem)rec); if (acknowledgementCount == 0) { file.AcknowledgementItems = new List <Models.Files.PurchaseAcknowledgement.DataSequence.AcknowledgementItem>(); } else { file.AcknowledgementItems.Add(acknowledgement); acknowledgement = new Models.Files.PurchaseAcknowledgement.DataSequence.AcknowledgementItem(); } acknowledgementCount++; acknowledgement = new Models.Files.PurchaseAcknowledgement.DataSequence.AcknowledgementItem { LineItemRecord = r40.LastItem() }; break; case "R41_ADDITIONALDETAIL": Common.Initialize(ref r41); r41.Add((Models.Files.PurchaseAcknowledgement.R41_AdditionalDetail)rec); acknowledgement.AdditionalDetailRecord = r41.LastItem(); break; case "R42_ADDITIONALLINEITEM": Common.Initialize(ref r42); r42.Add((Models.Files.PurchaseAcknowledgement.R42_AdditionalLineItem)rec); acknowledgement.AddtionalLineItemTitle = r42.LastItem(); break; case "R43_ADDITIONALLINEITEM": Common.Initialize(ref r43); r43.Add((Models.Files.PurchaseAcknowledgement.R43_AdditionalLineItem)rec); acknowledgement.AdditionalLineItemPublisher = r43.LastItem(); break; case "R44_ITEM_NUMBERORPRICE": Common.Initialize(ref r44); r44.Add((Models.Files.PurchaseAcknowledgement.R44_Item_NumberOrPrice)rec); acknowledgement.ItemNumberOrPriceRecord = r44.LastItem(); break; case "R45_ADDITIONALLINEITEM": Common.Initialize(ref r45); r45.Add((Models.Files.PurchaseAcknowledgement.R45_AdditionalLineItem)rec); acknowledgement.AdditionalLineItemClient = r45.LastItem(); break; case "R59_PURCHASEORDERCONTROLTOTALS": Common.Initialize(ref r59); r59.Add((Models.Files.PurchaseAcknowledgement.R59_PurchaseOrderControlTotals)rec); if (acknowledgement != null) { file.AcknowledgementItems.Add(acknowledgement); acknowledgement = null; } file.PurchaseOrderControlTotalsRecord = r59.LastItem(); break; case "R91_FILETRAILER": Common.Initialize(ref r91); r91.Add((Models.Files.PurchaseAcknowledgement.R91_FileTrailer)rec); file.FileTrailerRecord = r91.LastItem(); break; } } using (SQL sql = new SQL(batchnumber, r02, r11, r21, r40, r41, r42, r43, r44, r45, r59, r91)) { savedokay = sql.Successful; } } } catch (Exception ex) { log.Error(ex); } return(file); }
public void WhenSelectorReturnsTypeThatIsNotInEngine_ShouldThrowBadUsageException_WhenReadingFileAtATime() { engine = new MultiRecordEngine(new RecordTypeSelector(CustomSelectorReturningBadType), typeof (OrdersVerticalBar), typeof (CustomersSemiColon), typeof (SampleType)); Assert.Throws<BadUsageException>(() => engine.ReadFile(FileTest.Good.MultiRecord1.Path)); }
public Models.Files.PurchaseOrder.DataSequence.V3 ReadFile(string filename, int batchnumber) { List <Models.Files.PurchaseOrder.R00_ClientFileHeader> r00 = null; List <Models.Files.PurchaseOrder.R10_ClientHeader> r10 = null; List <Models.Files.PurchaseOrder.R20_FixedSpecialHandlingInstructions> r20 = null; List <Models.Files.PurchaseOrder.R21_PurchaseOrderOptions> r21 = null; List <Models.Files.PurchaseOrder.R40_LineItemDetail> r40 = null; List <Models.Files.PurchaseOrder.R41_AdditionalLineItemDetail> r41 = null; List <Models.Files.PurchaseOrder.R45_Imprint> r45 = null; List <Models.Files.PurchaseOrder.R46_StickerBarcodeData> r46barcode = null; List <Models.Files.PurchaseOrder.R46_StickerTextLines> r46text = null; List <Models.Files.PurchaseOrder.R50_PurchaseOrderTrailer> r50 = null; List <Models.Files.PurchaseOrder.R90_FileTrailer> r90 = null; // Models.Files.PurchaseOrder.DataSequence.V3 file = null; Models.Files.PurchaseOrder.DataSequence.PurchaseOrder order = null; Models.Files.PurchaseOrder.DataSequence.PurchaseOrderDetail orderdetail = null; // string typename = string.Empty; int orderdetailCount = 0; int orderCount = 0; bool savedokay = false; try { MultiRecordEngine engine = new MultiRecordEngine ( typeof(Models.Files.PurchaseOrder.R00_ClientFileHeader), typeof(Models.Files.PurchaseOrder.R10_ClientHeader), typeof(Models.Files.PurchaseOrder.R20_FixedSpecialHandlingInstructions), typeof(Models.Files.PurchaseOrder.R21_PurchaseOrderOptions), typeof(Models.Files.PurchaseOrder.R40_LineItemDetail), typeof(Models.Files.PurchaseOrder.R41_AdditionalLineItemDetail), typeof(Models.Files.PurchaseOrder.R45_Imprint), typeof(Models.Files.PurchaseOrder.R46_StickerBarcodeData), typeof(Models.Files.PurchaseOrder.R46_StickerTextLines), typeof(Models.Files.PurchaseOrder.R50_PurchaseOrderTrailer), typeof(Models.Files.PurchaseOrder.R90_FileTrailer) ) { RecordSelector = new RecordTypeSelector(Models.Files.PurchaseOrder.Selectors.V3.Custom) }; var res = engine.ReadFile(filename); if (res != null && res.Length > 0) { file = new Models.Files.PurchaseOrder.DataSequence.V3(); foreach (var rec in res) { typename = rec.GetType().Name.ToUpper(); switch (typename) { case "R00_CLIENTFILEHEADER": Common.Initialize(ref r00); r00.Add((Models.Files.PurchaseOrder.R00_ClientFileHeader)rec); file.FileHeaderRecord = r00.LastItem(); break; case "R10_CLIENTHEADER": Common.Initialize(ref r10); r10.Add((Models.Files.PurchaseOrder.R10_ClientHeader)rec); if (orderCount > 0) { if (file.PurchaseOrders == null) { file.PurchaseOrders = new List <Models.Files.PurchaseOrder.DataSequence.PurchaseOrder>(); } if (order != null) { file.PurchaseOrders.Add(order); } } orderCount++; order = new Models.Files.PurchaseOrder.DataSequence.PurchaseOrder { ClientHeaderRecord = r10.LastItem() }; break; case "R20_FIXEDSPECIALHANDLINGINSTRUCTIONS": Common.Initialize(ref r20); r20.Add((Models.Files.PurchaseOrder.R20_FixedSpecialHandlingInstructions)rec); order.FixedHandlingInstructionsRecord = r20.LastItem(); break; case "R21_PURCHASEORDEROPTIONS": Common.Initialize(ref r21); r21.Add((Models.Files.PurchaseOrder.R21_PurchaseOrderOptions)rec); order.PurchaseOrderOptionsRecord = r21.LastItem(); break; case "R40_LINEITEMDETAIL": Common.Initialize(ref r40); r40.Add((Models.Files.PurchaseOrder.R40_LineItemDetail)rec); if (orderdetailCount > 0) { if (order.PurchaseOrderDetails == null) { order.PurchaseOrderDetails = new List <Models.Files.PurchaseOrder.DataSequence.PurchaseOrderDetail>(); } if (orderdetail != null) { order.PurchaseOrderDetails.Add(orderdetail); } } orderdetailCount++; orderdetail = new Models.Files.PurchaseOrder.DataSequence.PurchaseOrderDetail { LineItemDetail = r40.LastItem() }; break; case "R41_ADDITIONALLINEITEMDETAIL": Common.Initialize(ref r41); r41.Add((Models.Files.PurchaseOrder.R41_AdditionalLineItemDetail)rec); orderdetail.AdditionalLineItemDetail = r41.LastItem(); break; case "R45_IMPRINT": Common.Initialize(ref r45); r45.Add((Models.Files.PurchaseOrder.R45_Imprint)rec); if (orderdetail.Imprint == null) { orderdetail.Imprint = new List <Models.Files.PurchaseOrder.R45_Imprint>(); } if (file.Maxes.ContainsKey(typename) && orderdetail.Imprint.Count < file.Maxes[typename]) { orderdetail.Imprint.Add(r45.LastItem()); } break; case "R46_STICKERBARCODEDATA": Common.Initialize(ref r46barcode); r46barcode.Add((Models.Files.PurchaseOrder.R46_StickerBarcodeData)rec); orderdetail.StickerBarcodeDataRecord = r46barcode.LastItem(); break; case "R46_STICKERTEXTLINES": Common.Initialize(ref r46text); r46text.Add((Models.Files.PurchaseOrder.R46_StickerTextLines)rec); if (orderdetail.StickerTextLines == null) { orderdetail.StickerTextLines = new List <Models.Files.PurchaseOrder.R46_StickerTextLines>(); } if (file.Maxes.ContainsKey(typename) && orderdetail.StickerTextLines.Count < file.Maxes[typename]) { orderdetail.StickerTextLines.Add(r46text.LastItem()); } break; case "R50_PURCHASEORDERTRAILER": Common.Initialize(ref r50); r50.Add((Models.Files.PurchaseOrder.R50_PurchaseOrderTrailer)rec); file.PurchaseOrderTrailerRecord = r50.LastItem(); if (orderdetail != null) { if (order.PurchaseOrderDetails == null) { order.PurchaseOrderDetails = new List <Models.Files.PurchaseOrder.DataSequence.PurchaseOrderDetail>(); } order.PurchaseOrderDetails.Add(orderdetail); } file.PurchaseOrders.Add(order); break; case "R90_FILETRAILER": Common.Initialize(ref r90); r90.Add((Models.Files.PurchaseOrder.R90_FileTrailer)rec); file.FileTrailerRecord = r90.LastItem(); break; } } using (SQL sql = new SQL(batchnumber, r00, r10, r20, r21, r40, r41, r45, r46barcode, r46text, r50, r90)) { savedokay = sql.Successful; } } } catch (Exception ex) { log.Error(ex); } return(file); }
public Models.Files.Invoice.DataSequence.V3 ReadFile(string filename, int batchnumber) { List <Models.Files.Invoice.R01_InvoiceFileHeader> r01 = null; List <Models.Files.Invoice.R15_InvoiceHeader> r15 = null; List <Models.Files.Invoice.R45_InvoiceDetail> r45 = null; List <Models.Files.Invoice.R46_InvoiceDetail> r46 = null; List <Models.Files.Invoice.R48_DetailTotal> r48 = null; List <Models.Files.Invoice.R49_DetailTotalOrFreightAndFees> r49 = null; List <Models.Files.Invoice.R55_InvoiceTotals> r55 = null; List <Models.Files.Invoice.R57_InvoiceTrailer> r57 = null; List <Models.Files.Invoice.R95_InvoiceFileTrailer> r95 = null; // Models.Files.Invoice.DataSequence.V3 file = null; Models.Files.Invoice.DataSequence.InvoiceItem invoice = null; Models.Files.Invoice.DataSequence.InvoiceDetail detail = null; // string typename; int invoiceCount = 0; int detailCount = 0; bool savedokay = false; try { MultiRecordEngine engine = new MultiRecordEngine ( typeof(Models.Files.Invoice.R01_InvoiceFileHeader), typeof(Models.Files.Invoice.R15_InvoiceHeader), typeof(Models.Files.Invoice.R45_InvoiceDetail), typeof(Models.Files.Invoice.R46_InvoiceDetail), typeof(Models.Files.Invoice.R48_DetailTotal), typeof(Models.Files.Invoice.R49_DetailTotalOrFreightAndFees), typeof(Models.Files.Invoice.R55_InvoiceTotals), typeof(Models.Files.Invoice.R57_InvoiceTrailer), typeof(Models.Files.Invoice.R95_InvoiceFileTrailer) ) { RecordSelector = new RecordTypeSelector(Models.Files.Invoice.Selectors.V3.Custom) }; var res = engine.ReadFile(filename); if (res != null && res.Length > 0) { file = new Models.Files.Invoice.DataSequence.V3(); foreach (var rec in res) { typename = rec.GetType().Name.ToUpper(); switch (typename) { case "R01_INVOICEFILEHEADER": Common.Initialize(ref r01); r01.Add((Models.Files.Invoice.R01_InvoiceFileHeader)rec); file.InvoiceFileHeaderRecord = r01.LastItem(); break; case "R15_INVOICEHEADER": Common.Initialize(ref r15); r15.Add((Models.Files.Invoice.R15_InvoiceHeader)rec); if (invoiceCount > 0) { if (invoice != null) { file.Invoices.Add(invoice); invoice = null; } } invoiceCount++; if (invoice == null) { invoice = new Models.Files.Invoice.DataSequence.InvoiceItem(); } invoice.InvoiceHeaderRecord = r15.LastItem(); break; case "R45_INVOICEDETAIL": Common.Initialize(ref r45); r45.Add((Models.Files.Invoice.R45_InvoiceDetail)rec); if (detailCount > 0) { if (detail != null) { invoice.InvoiceDetails.Add(detail); detail = null; } } detailCount++; if (detail == null) { detail = new Models.Files.Invoice.DataSequence.InvoiceDetail(); } detail.InvoiceDetailRecord = r45.LastItem(); break; case "R46_INVOICEDETAIL": Common.Initialize(ref r46); r46.Add((Models.Files.Invoice.R46_InvoiceDetail)rec); detail.InvoiceDetail2Record = r46.LastItem(); break; case "R48_DETAILTOTAL": Common.Initialize(ref r48); r48.Add((Models.Files.Invoice.R48_DetailTotal)rec); detail.DetailTotalRecord = r48.LastItem(); break; case "R49_DETAILTOTALORFREIGHTANDFEES": Common.Initialize(ref r49); r49.Add((Models.Files.Invoice.R49_DetailTotalOrFreightAndFees)rec); detail.DetailTotalOrFreightAndFeesRecord = r49.LastItem(); break; case "R55_INVOICETOTALS": Common.Initialize(ref r55); r55.Add((Models.Files.Invoice.R55_InvoiceTotals)rec); invoice.InvoiceTotalRecord = r55.LastItem(); if (detail != null) { invoice.InvoiceDetails.Add(detail); detail = null; } break; case "R57_INVOICETRAILER": Common.Initialize(ref r57); r57.Add((Models.Files.Invoice.R57_InvoiceTrailer)rec); if (detail != null) { invoice.InvoiceDetails.Add(detail); detail = null; } invoice.InvoiceTrailerRecord = r57.LastItem(); break; case "R95_INVOICEFILETRAILER": Common.Initialize(ref r95); r95.Add((Models.Files.Invoice.R95_InvoiceFileTrailer)rec); file.InvoiceFileTrailerRecord = r95.LastItem(); break; } } if (invoice != null) { file.Invoices.Add(invoice); invoice = null; } using (SQL sql = new SQL(batchnumber, r01, r15, r45, r46, r48, r49, r55, r57, r95)) { savedokay = sql.Successful; } } } catch (Exception ex) { log.Error(ex); } return(file); }
public Models.Files.PurchaseOrder.DataSequence.V3 ReadFile(string filename, int batchnumber) { List <Models.Files.PurchaseOrder.R00_FileHeader> r00 = null; List <Models.Files.PurchaseOrder.R10_ClientHeader> r10 = null; List <Models.Files.PurchaseOrder.R20_FixedSpecialHandlingInstructions> r20 = null; List <Models.Files.PurchaseOrder.R21_PurchaseOrderOptions> r21 = null; List <Models.Files.PurchaseOrder.R24_CustomerCost> r24 = null; List <Models.Files.PurchaseOrder.R25_CustomerBillToName> r25 = null; List <Models.Files.PurchaseOrder.R26_CustomerBillToPhoneNumber> r26 = null; List <Models.Files.PurchaseOrder.R27_CustomerBillToAddressLine> r27 = null; List <Models.Files.PurchaseOrder.R29_CustomerBillToCityStateZip> r29 = null; List <Models.Files.PurchaseOrder.R30_RecipientShipToName> r30 = null; List <Models.Files.PurchaseOrder.R31_RecipientShipToPhone> r31 = null; List <Models.Files.PurchaseOrder.R32_ShippingRecordRecipientAddressLine> r32 = null; List <Models.Files.PurchaseOrder.R34_RecipientShippingRecordCityStateZip> r34 = null; List <Models.Files.PurchaseOrder.R35_DropShipDetail> r35 = null; List <Models.Files.PurchaseOrder.R36_SpecialDeliveryInstructions> r36 = null; List <Models.Files.PurchaseOrder.R37_MarketingMessage> r37 = null; List <Models.Files.PurchaseOrder.R38_GiftMessage> r38 = null; List <Models.Files.PurchaseOrder.R40_LineItem> r40 = null; List <Models.Files.PurchaseOrder.R41_AdditionalLineItem> r41 = null; List <Models.Files.PurchaseOrder.R42_LineItemGiftMessage> r42 = null; List <Models.Files.PurchaseOrder.R45_Imprint> r45 = null; List <Models.Files.PurchaseOrder.R50_PurchaseOrderControl> r50 = null; List <Models.Files.PurchaseOrder.R90_FileTrailer> r90 = null; // Models.Files.PurchaseOrder.DataSequence.V3 file = null; Models.Files.PurchaseOrder.DataSequence.PurchaseOrder order = null; Models.Files.PurchaseOrder.DataSequence.Item item = null; // string typename = string.Empty; int orderCount = 0; int itemCount = 0; bool savedokay = false; try { MultiRecordEngine engine = new MultiRecordEngine ( typeof(Models.Files.PurchaseOrder.R00_FileHeader), typeof(Models.Files.PurchaseOrder.R10_ClientHeader), typeof(Models.Files.PurchaseOrder.R20_FixedSpecialHandlingInstructions), typeof(Models.Files.PurchaseOrder.R21_PurchaseOrderOptions), typeof(Models.Files.PurchaseOrder.R24_CustomerCost), typeof(Models.Files.PurchaseOrder.R25_CustomerBillToName), typeof(Models.Files.PurchaseOrder.R26_CustomerBillToPhoneNumber), typeof(Models.Files.PurchaseOrder.R27_CustomerBillToAddressLine), typeof(Models.Files.PurchaseOrder.R29_CustomerBillToCityStateZip), typeof(Models.Files.PurchaseOrder.R30_RecipientShipToName), typeof(Models.Files.PurchaseOrder.R31_RecipientShipToPhone), typeof(Models.Files.PurchaseOrder.R32_ShippingRecordRecipientAddressLine), typeof(Models.Files.PurchaseOrder.R34_RecipientShippingRecordCityStateZip), typeof(Models.Files.PurchaseOrder.R35_DropShipDetail), typeof(Models.Files.PurchaseOrder.R36_SpecialDeliveryInstructions), typeof(Models.Files.PurchaseOrder.R37_MarketingMessage), typeof(Models.Files.PurchaseOrder.R38_GiftMessage), typeof(Models.Files.PurchaseOrder.R40_LineItem), typeof(Models.Files.PurchaseOrder.R41_AdditionalLineItem), typeof(Models.Files.PurchaseOrder.R42_LineItemGiftMessage), typeof(Models.Files.PurchaseOrder.R45_Imprint), typeof(Models.Files.PurchaseOrder.R50_PurchaseOrderControl), typeof(Models.Files.PurchaseOrder.R90_FileTrailer) ) { RecordSelector = new RecordTypeSelector(Models.Files.PurchaseOrder.Selectors.V3.Custom) }; var res = engine.ReadFile(filename); if (res != null && res.Length > 0) { file = new Models.Files.PurchaseOrder.DataSequence.V3(); foreach (var rec in res) { typename = rec.GetType().Name.ToUpper(); switch (typename) { case "R00_FILEHEADER": Common.Initialize(ref r00); r00.Add((Models.Files.PurchaseOrder.R00_FileHeader)rec); file.FileHeaderRecord = r00.LastItem(); break; case "R10_CLIENTHEADER": Common.Initialize(ref r10); r10.Add((Models.Files.PurchaseOrder.R10_ClientHeader)rec); if (orderCount > 0) { if (file.PurchaseOrders == null) { file.PurchaseOrders = new List <Models.Files.PurchaseOrder.DataSequence.PurchaseOrder>(); } if (order != null) { file.PurchaseOrders.Add(order); order = null; } } orderCount++; order = new Models.Files.PurchaseOrder.DataSequence.PurchaseOrder { ClientHeaderRecord = r10.LastItem() }; break; case "R20_FIXEDSPECIALHANDLINGINSTRUCTIONS": Common.Initialize(ref r20); r20.Add((Models.Files.PurchaseOrder.R20_FixedSpecialHandlingInstructions)rec); order.FixedHandlingInstructionsRecord = r20.LastItem(); break; case "R21_PURCHASEORDEROPTIONS": Common.Initialize(ref r21); r21.Add((Models.Files.PurchaseOrder.R21_PurchaseOrderOptions)rec); order.PurchaseOrderOptionsRecord = r21.LastItem(); break; case "R24_CUSTOMERCOST": Common.Initialize(ref r24); r24.Add((Models.Files.PurchaseOrder.R24_CustomerCost)rec); order.CustomerCostRecord = r24.LastItem(); break; case "R25_CUSTOMERBILLTONAME": Common.Initialize(ref r25); r25.Add((Models.Files.PurchaseOrder.R25_CustomerBillToName)rec); order.CustomerBillToNameRecord = r25.LastItem(); break; case "R26_CUSTOMERBILLTOPHONENUMBER": Common.Initialize(ref r26); r26.Add((Models.Files.PurchaseOrder.R26_CustomerBillToPhoneNumber)rec); order.CustomerBillToPhoneNumberRecord = r26.LastItem(); break; case "R27_CUSTOMERBILLTOADDRESSLINE": Common.Initialize(ref r27); r27.Add((Models.Files.PurchaseOrder.R27_CustomerBillToAddressLine)rec); if (order.CustomerBillToAddressLine == null) { order.CustomerBillToAddressLine = new List <Models.Files.PurchaseOrder.R27_CustomerBillToAddressLine>(); } if (order.CustomerBillToAddressLine.Count < file.Maxes[typename]) { order.CustomerBillToAddressLine.Add(r27.LastItem()); } break; case "R29_CUSTOMERBILLTOCITYSTATEZIP": Common.Initialize(ref r29); r29.Add((Models.Files.PurchaseOrder.R29_CustomerBillToCityStateZip)rec); order.CustomerBillToCityStateZipRecord = r29.LastItem(); break; case "R30_RECIPIENTSHIPTONAME": Common.Initialize(ref r30); r30.Add((Models.Files.PurchaseOrder.R30_RecipientShipToName)rec); order.RecipientShipToNameRecord = r30.LastItem(); break; case "R31_RECIPIENTSHIPTOPHONE": Common.Initialize(ref r31); r31.Add((Models.Files.PurchaseOrder.R31_RecipientShipToPhone)rec); order.RecipientShipToPhoneRecord = r31.LastItem(); break; case "R32_SHIPPINGRECORDRECIPIENTADDRESSLINE": Common.Initialize(ref r32); r32.Add((Models.Files.PurchaseOrder.R32_ShippingRecordRecipientAddressLine)rec); if (order.ShipRecordRecipientAddressLine == null) { order.ShipRecordRecipientAddressLine = new List <Models.Files.PurchaseOrder.R32_ShippingRecordRecipientAddressLine>(); } if (order.ShipRecordRecipientAddressLine.Count < file.Maxes[typename]) { order.ShipRecordRecipientAddressLine.Add(r32.LastItem()); } break; case "R34_RECIPIENTSHIPPINGRECORDCITYSTATEZIP": Common.Initialize(ref r34); r34.Add((Models.Files.PurchaseOrder.R34_RecipientShippingRecordCityStateZip)rec); order.RecipShippingRecordCityStateZipRecord = r34.LastItem(); break; case "R35_DROPSHIPDETAIL": Common.Initialize(ref r35); r35.Add((Models.Files.PurchaseOrder.R35_DropShipDetail)rec); order.DropShipDetailRecord = r35.LastItem(); break; case "R36_SPECIALDELIVERYINSTRUCTIONS": Common.Initialize(ref r36); r36.Add((Models.Files.PurchaseOrder.R36_SpecialDeliveryInstructions)rec); if (order.SpecialDeliveryInstructions == null) { order.SpecialDeliveryInstructions = new List <Models.Files.PurchaseOrder.R36_SpecialDeliveryInstructions>(); } if (order.SpecialDeliveryInstructions.Count < file.Maxes[typename]) { order.SpecialDeliveryInstructions.Add(r36.LastItem()); } break; case "R37_MARKETINGMESSAGE": Common.Initialize(ref r37); r37.Add((Models.Files.PurchaseOrder.R37_MarketingMessage)rec); if (order.MarketingMessage == null) { order.MarketingMessage = new List <Models.Files.PurchaseOrder.R37_MarketingMessage>(); } if (order.MarketingMessage.Count < file.Maxes[typename]) { order.MarketingMessage.Add(r37.LastItem()); } break; case "R38_GIFTMESSAGE": Common.Initialize(ref r38); r38.Add((Models.Files.PurchaseOrder.R38_GiftMessage)rec); if (order.GiftMessage == null) { order.GiftMessage = new List <Models.Files.PurchaseOrder.R38_GiftMessage>(); } if (order.GiftMessage.Count < file.Maxes[typename]) { order.GiftMessage.Add(r38.LastItem()); } break; case "R40_LINEITEM": Common.Initialize(ref r40); r40.Add((Models.Files.PurchaseOrder.R40_LineItem)rec); if (itemCount > 0) { if (order.Items == null) { order.Items = new List <Models.Files.PurchaseOrder.DataSequence.Item>(); } if (item != null) { order.Items.Add(item); item = null; } } itemCount++; item = new Models.Files.PurchaseOrder.DataSequence.Item { LineItemRecord = r40.LastItem() }; break; case "R41_ADDITIONALLINEITEM": Common.Initialize(ref r41); r41.Add((Models.Files.PurchaseOrder.R41_AdditionalLineItem)rec); item.AdditionalLineItemRecord = r41.LastItem(); break; case "R42_LINEITEMGIFTMESSAGE": Common.Initialize(ref r42); r42.Add((Models.Files.PurchaseOrder.R42_LineItemGiftMessage)rec); if (item.LineItemGiftMessage.Count < file.Maxes[typename]) { item.LineItemGiftMessage.Add(r42.LastItem()); } break; case "R45_IMPRINT": Common.Initialize(ref r45); r45.Add((Models.Files.PurchaseOrder.R45_Imprint)rec); if (item.Imprint == null) { item.Imprint = new List <Models.Files.PurchaseOrder.R45_Imprint>(); } if (item.Imprint.Count < file.Maxes[typename]) { item.Imprint.Add(r45.LastItem()); } break; case "R50_PURCHASEORDERCONTROL": Common.Initialize(ref r50); r50.Add((Models.Files.PurchaseOrder.R50_PurchaseOrderControl)rec); order.PurchaseOrderControlRecord = r50.LastItem(); file.PurchaseOrders.Add(order); if (item != null) { if (file.PurchaseOrders[file.PurchaseOrders.Count - 1].Items == null) { file.PurchaseOrders[file.PurchaseOrders.Count - 1].Items = new List <Models.Files.PurchaseOrder.DataSequence.Item>(); } file.PurchaseOrders[file.PurchaseOrders.Count - 1].Items.Add(item); item = null; } order = null; break; case "R90_FILETRAILER": Common.Initialize(ref r90); r90.Add((Models.Files.PurchaseOrder.R90_FileTrailer)rec); file.FileTrailerRecord = r90.LastItem(); break; } } if (order != null) { file.PurchaseOrders.Add(order); if (item != null) { if (file.PurchaseOrders[file.PurchaseOrders.Count - 1].Items == null) { file.PurchaseOrders[file.PurchaseOrders.Count - 1].Items = new List <Models.Files.PurchaseOrder.DataSequence.Item>(); } file.PurchaseOrders[file.PurchaseOrders.Count - 1].Items.Add(item); item = null; } order = null; } using (SQL sql = new SQL(batchnumber, r00, r10, r20, r21, r24, r25, r26, r27, r29, r30, r31, r32, r34, r35, r36, r37, r38, r40, r41, r42, r45, r50, r90)) { savedokay = sql.Successful; } } } catch (Exception ex) { log.Error(ex); } return(file); }
public Models.Files.PurchaseAcknowledgement.DataSequence.V3 ReadFile(string filename, int batchnumber) { List <Models.Files.PurchaseAcknowledgement.R02_FileHeader> r02 = null; List <Models.Files.PurchaseAcknowledgement.R11_PurchaseOrderHeader> r11 = null; List <Models.Files.PurchaseAcknowledgement.R21_FreeFormVendor> r21 = null; List <Models.Files.PurchaseAcknowledgement.R30_RecipientShipToNameAndAddress> r30 = null; List <Models.Files.PurchaseAcknowledgement.R32_RecipientShipToAdditionalShippingInformation> r32 = null; List <Models.Files.PurchaseAcknowledgement.R34_RecipientShipToCityStateAndZip> r34 = null; List <Models.Files.PurchaseAcknowledgement.R40_LineItem> r40 = null; List <Models.Files.PurchaseAcknowledgement.R41_AdditionalDetail> r41 = null; List <Models.Files.PurchaseAcknowledgement.R42_AdditionalLineItem> r42 = null; List <Models.Files.PurchaseAcknowledgement.R43_AdditionalLineItem> r43 = null; List <Models.Files.PurchaseAcknowledgement.R44_ItemNumberOrPrice> r44 = null; List <Models.Files.PurchaseAcknowledgement.R59_PurchaseOrderControlTotals> r59 = null; List <Models.Files.PurchaseAcknowledgement.R91_FileTrailer> r91 = null; // Models.Files.PurchaseAcknowledgement.DataSequence.V3 file = null; Models.Files.PurchaseAcknowledgement.DataSequence.LineItem item = null; // string typename = string.Empty; int itemCount = 0; bool savedokay = false; try { MultiRecordEngine engine = new MultiRecordEngine ( typeof(Models.Files.PurchaseAcknowledgement.R02_FileHeader), typeof(Models.Files.PurchaseAcknowledgement.R11_PurchaseOrderHeader), typeof(Models.Files.PurchaseAcknowledgement.R21_FreeFormVendor), typeof(Models.Files.PurchaseAcknowledgement.R30_RecipientShipToNameAndAddress), typeof(Models.Files.PurchaseAcknowledgement.R32_RecipientShipToAdditionalShippingInformation), typeof(Models.Files.PurchaseAcknowledgement.R34_RecipientShipToCityStateAndZip), typeof(Models.Files.PurchaseAcknowledgement.R40_LineItem), typeof(Models.Files.PurchaseAcknowledgement.R41_AdditionalDetail), typeof(Models.Files.PurchaseAcknowledgement.R42_AdditionalLineItem), typeof(Models.Files.PurchaseAcknowledgement.R43_AdditionalLineItem), typeof(Models.Files.PurchaseAcknowledgement.R44_ItemNumberOrPrice), typeof(Models.Files.PurchaseAcknowledgement.R59_PurchaseOrderControlTotals), typeof(Models.Files.PurchaseAcknowledgement.R91_FileTrailer) ) { RecordSelector = new RecordTypeSelector(Models.Files.PurchaseAcknowledgement.Selectors.V3.Custom) }; var res = engine.ReadFile(filename); if (res != null && res.Length > 0) { file = new Models.Files.PurchaseAcknowledgement.DataSequence.V3(); foreach (var rec in res) { typename = rec.GetType().Name.ToUpper(); switch (typename) { case "R02_FILEHEADER": Common.Initialize(ref r02); r02.Add((Models.Files.PurchaseAcknowledgement.R02_FileHeader)rec); file.FileHeaderRecord = r02.LastItem(); break; case "R11_PURCHASEORDERHEADER": Common.Initialize(ref r11); r11.Add((Models.Files.PurchaseAcknowledgement.R11_PurchaseOrderHeader)rec); file.PurchaseOrderHeaderRecord = r11.LastItem(); break; case "R21_FREEFORMVENDOR": Common.Initialize(ref r21); r21.Add((Models.Files.PurchaseAcknowledgement.R21_FreeFormVendor)rec); if (file.FreeFormVendor == null) { file.FreeFormVendor = new List <Models.Files.PurchaseAcknowledgement.R21_FreeFormVendor>(); } if (file.FreeFormVendor.Count < file.Maxes[typename]) { file.FreeFormVendor.Add(r21.LastItem()); } break; case "R30_RECIPIENTSHIPTONAMEANDADDRESS": Common.Initialize(ref r30); r30.Add((Models.Files.PurchaseAcknowledgement.R30_RecipientShipToNameAndAddress)rec); file.RecipShipToNameAndAddressRecord = r30.LastItem(); break; case "R32_RECIPIENTSHIPTOADDITIONALSHIPPINGINFORMATION": Common.Initialize(ref r32); r32.Add((Models.Files.PurchaseAcknowledgement.R32_RecipientShipToAdditionalShippingInformation)rec); if (file.RecipShipToAdditionalShippingInfo == null) { file.RecipShipToAdditionalShippingInfo = new List <Models.Files.PurchaseAcknowledgement.R32_RecipientShipToAdditionalShippingInformation>(); } if (file.RecipShipToAdditionalShippingInfo.Count < file.Maxes[typename]) { file.RecipShipToAdditionalShippingInfo.Add(r32.LastItem()); } break; case "R34_RECIPIENTSHIPTOCITYSTATEANDZIP": Common.Initialize(ref r34); r34.Add((Models.Files.PurchaseAcknowledgement.R34_RecipientShipToCityStateAndZip)rec); file.RecipShipToCityStateAndZipRecord = r34.LastItem(); break; case "R40_LINEITEM": Common.Initialize(ref r40); r40.Add((Models.Files.PurchaseAcknowledgement.R40_LineItem)rec); if (itemCount > 0) { if (item != null) { file.LineItems.Add(item); item = null; } } if (file.LineItems == null) { file.LineItems = new List <Models.Files.PurchaseAcknowledgement.DataSequence.LineItem>(); } item = new Models.Files.PurchaseAcknowledgement.DataSequence.LineItem(); itemCount++; item.LineItemRecord = r40.LastItem(); break; case "R41_ADDITIONALDETAIL": Common.Initialize(ref r41); r41.Add((Models.Files.PurchaseAcknowledgement.R41_AdditionalDetail)rec); item.AdditionalDetailRecord = r41.LastItem(); break; case "R42_ADDITIONALLINEITEM": Common.Initialize(ref r42); r42.Add((Models.Files.PurchaseAcknowledgement.R42_AdditionalLineItem)rec); item.AddtionalLineItemTitleRecord = r42.LastItem(); break; case "R43_ADDITIONALLINEITEM": Common.Initialize(ref r43); r43.Add((Models.Files.PurchaseAcknowledgement.R43_AdditionalLineItem)rec); item.AdditionalLineItemPublisherRecord = r43.LastItem(); break; case "R44_ITEMNUMBERORPRICE": Common.Initialize(ref r44); r44.Add((Models.Files.PurchaseAcknowledgement.R44_ItemNumberOrPrice)rec); item.ItemNumberOrPriceRecord = r44.LastItem(); break; case "R59_PURCHASEORDERCONTROLTOTALS": Common.Initialize(ref r59); r59.Add((Models.Files.PurchaseAcknowledgement.R59_PurchaseOrderControlTotals)rec); file.PurchaseOrderControlTotalsRecord = r59.LastItem(); break; case "R91_FILETRAILER": Common.Initialize(ref r91); r91.Add((Models.Files.PurchaseAcknowledgement.R91_FileTrailer)rec); file.FileTrailerRecord = r91.LastItem(); break; } } if (item != null) { file.LineItems.Add(item); item = null; itemCount = 0; } using (SQL sql = new SQL(batchnumber, r02, r11, r21, r30, r32, r34, r40, r41, r42, r43, r44, r59, r91)) { savedokay = sql.Successful; } } } catch (Exception ex) { log.Error(ex); } return(file); }
public List <Models.Files.ShipNotice.DataSequence.V3> ReadFile(string filename, int batchnumber) { List <Models.Files.ShipNotice.CR_CompanyRecord> saveRCR = null; List <Models.Files.ShipNotice.OR_OrderRecord> saveROR = null; List <Models.Files.ShipNotice.OD_OrderDetailRecord> saveROD = null; // List <Models.Files.ShipNotice.DataSequence.V3> file = null; Models.Files.ShipNotice.DataSequence.V3 notice = null; Models.Files.ShipNotice.DataSequence.Shipment shipment = new Models.Files.ShipNotice.DataSequence.Shipment(); List <Models.Files.ShipNotice.OD_OrderDetailRecord> detail = new List <Models.Files.ShipNotice.OD_OrderDetailRecord>(); string typename = string.Empty; int shipmentCount = 0; int detailCount = 0; int noticeCount = 0; bool savedokay = false; try { MultiRecordEngine engine = new MultiRecordEngine ( typeof(Models.Files.ShipNotice.CR_CompanyRecord), typeof(Models.Files.ShipNotice.OD_OrderDetailRecord), typeof(Models.Files.ShipNotice.OR_OrderRecord) ) { RecordSelector = new RecordTypeSelector(Models.Files.ShipNotice.Selectors.V3.Custom) }; var res = engine.ReadFile(filename); if (res != null && res.Length > 0) { file = new List <Models.Files.ShipNotice.DataSequence.V3>(); foreach (var rec in res) { typename = rec.GetType().Name.ToUpper(); switch (typename) { case "CR_COMPANYRECORD": Common.Initialize(ref saveRCR); saveRCR.Add((Models.Files.ShipNotice.CR_CompanyRecord)rec); if (noticeCount > 0) { if (detailCount > 0) { if (detail != null) { shipment.OrderDetail = detail; shipment.OrderRecord = saveROR.LastItem(); detail = null; detailCount = 0; } } if (shipment != null) { if (notice.Shipments == null) { notice.Shipments = new List <Models.Files.ShipNotice.DataSequence.Shipment>(); } notice.Shipments.Add(shipment); shipment = null; shipmentCount = 0; } if (notice != null) { file.Add(notice); notice = null; } } noticeCount++; notice = new Models.Files.ShipNotice.DataSequence.V3() { CompanyRecord = saveRCR.LastItem() }; break; case "OR_ORDERRECORD": Common.Initialize(ref saveROR); saveROR.Add((Models.Files.ShipNotice.OR_OrderRecord)rec); shipmentCount++; if (shipment == null) { shipment = new Models.Files.ShipNotice.DataSequence.Shipment() { OrderRecord = new Models.Files.ShipNotice.OR_OrderRecord(), OrderDetail = new List <Models.Files.ShipNotice.OD_OrderDetailRecord>() }; } shipment.OrderRecord = saveROR.LastItem(); break; case "OD_ORDERDETAILRECORD": Common.Initialize(ref saveROD); saveROD.Add((Models.Files.ShipNotice.OD_OrderDetailRecord)rec); if (detailCount == 0) { detail = new List <Models.Files.ShipNotice.OD_OrderDetailRecord>(); } detailCount++; detail.Add(saveROD.LastItem()); break; } } if (detail != null) { shipment.OrderDetail.AddRange(detail); detail = null; detailCount = 0; notice.Shipments.Add(shipment); } if (notice != null) { file.Add(notice); notice = null; } } using (SQL sql = new SQL(batchnumber, saveRCR, saveROD, saveROR)) { savedokay = sql.Successful; } } catch (Exception ex) { log.Error(ex); } return(file); }
public Models.Files.ShipNotice.DataSequence.V3 ReadFile(string filename, int batchnumber) { List <Models.Files.ShipNotice.CR_ASNCompany> cr = null; List <Models.Files.ShipNotice.OP_ASNPack> op = null; List <Models.Files.ShipNotice.OR_ASNShipment> or = null; List <Models.Files.ShipNotice.OD_ASNShipmentDetail> od = null; // Models.Files.ShipNotice.DataSequence.V3 file = null; List <Models.Files.ShipNotice.DataSequence.Shipment> allShipments = new List <Models.Files.ShipNotice.DataSequence.Shipment>(); Models.Files.ShipNotice.DataSequence.Shipment singleShipment = new Models.Files.ShipNotice.DataSequence.Shipment(); List <Models.Files.ShipNotice.OD_ASNShipmentDetail> details = new List <Models.Files.ShipNotice.OD_ASNShipmentDetail>(); // string typename = string.Empty; int shipmentsCount = 0; int detailsCount = 0; bool savedokay = false; try { MultiRecordEngine engine = new MultiRecordEngine ( typeof(Models.Files.ShipNotice.CR_ASNCompany), typeof(Models.Files.ShipNotice.OP_ASNPack), typeof(Models.Files.ShipNotice.OR_ASNShipment), typeof(Models.Files.ShipNotice.OD_ASNShipmentDetail) ) { RecordSelector = new RecordTypeSelector(Models.Files.ShipNotice.Selectors.V3.Custom) }; var res = engine.ReadFile(filename); if (res != null && res.Length > 0) { file = new Models.Files.ShipNotice.DataSequence.V3(); foreach (var rec in res) { typename = rec.GetType().Name.ToUpper(); switch (typename) { case "CR_ASNCOMPANY": Common.Initialize(ref cr); cr.Add((Models.Files.ShipNotice.CR_ASNCompany)rec); file.FileHeaderRecord = cr.LastItem(); break; case "OP_ASNPACK": Common.Initialize(ref op); op.Add((Models.Files.ShipNotice.OP_ASNPack)rec); file.PackRecord = op.LastItem(); break; case "OR_ASNSHIPMENT": Common.Initialize(ref or); or.Add((Models.Files.ShipNotice.OR_ASNShipment)rec); if (shipmentsCount > 0) { if (details != null) { singleShipment.LineItemDetailRecords.AddRange(details); details = null; detailsCount = 0; } if (file.Shipments == null) { file.Shipments = new List <Models.Files.ShipNotice.DataSequence.Shipment>(); } file.Shipments.Add(singleShipment); } shipmentsCount++; singleShipment = new Models.Files.ShipNotice.DataSequence.Shipment() { ShipmentRecord = new Models.Files.ShipNotice.OR_ASNShipment(), LineItemDetailRecords = new List <Models.Files.ShipNotice.OD_ASNShipmentDetail>() }; singleShipment.ShipmentRecord = or.LastItem(); break; case "OD_ASNSHIPMENTDETAIL": Common.Initialize(ref od); od.Add((Models.Files.ShipNotice.OD_ASNShipmentDetail)rec); if (detailsCount == 0) { details = new List <Models.Files.ShipNotice.OD_ASNShipmentDetail>(); } detailsCount++; details.Add(od.LastItem()); break; } } if (details != null) { singleShipment.LineItemDetailRecords.AddRange(details); details = null; detailsCount = 0; file.Shipments.Add(singleShipment); } using (SQL sql = new SQL(batchnumber, cr, od, op, or)) { savedokay = sql.Successful; } } } catch (Exception ex) { log.Error(ex); } return(file); }