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.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); }