using Centron.BusinessLogic; using Centron.BusinessLogic.EmployeeArea; using Centron.BusinessLogic.Warehousing; using Centron.BusinessLogic.WebServices.Warehousing; using Centron.Data.Lists; using Centron.Data.WebServices.Warehousing; using Centron.Data.WebServices.Warehousing.Barcode; using Centron.Interfaces.Warehousing; using Centron.Tests.EndToEnd.Infrastructure; using System; using System.Collections.Generic; using Centron.BusinessLogic.WebServices.Sales.Receipts; using Centron.Interfaces; using Xunit.Abstractions; namespace Centron.Tests.EndToEnd.Tests.Barcodes { public class BarcodeTest : EndToEndTest { public BarcodeTest(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } public override void Execute() { var barcodes = this.GetBarcodesThroughPaging(); this.SearchByBarcode(barcodes.Result[1].Name); this.SearchByArticle(); this.CreateBarcode(); this.GetBarcodeHistory(barcodes.Result[1].I3D); this.SearchByReceipt(); } private BarCode2DTO CreateBarcode() { using (var session = new BLSession()) { var user = session.GetBL().GetAppUser(f => f.I3D == 11); var barcodeResult = session.GetBL().CreateNewSerialNumber( 1209, new List { "My-Cool-Barcode" }, -1, "Need a barcode to create a invoice", user, adjustStockInventory: true, returnBarcodesWithAdditionalInformations: true, string.Empty); this.Verifier.Verify("CreatedBarcode", barcodeResult); return barcodeResult.Data[0]; } } private SerialNumberListThroughPagingDTO GetBarcodesThroughPaging() { using (var session = new BLSession()) { var filter = new BarcodeFilter { States = new List { 1 }, }; var barcodes = session.GetBL().GetBarcodesThroughPaging(filter, 1, 5); this.Verifier.Verify("GetBarcodesThroughPaging", barcodes); return barcodes; } } private SerialNumberListThroughPagingDTO SearchByBarcode(string barcode) { using (var session = new BLSession()) { var filter = new BarcodeFilter { Barcode = barcode, }; var barcodes = session.GetBL().GetBarcodesThroughPaging(filter, 1, 20); this.Verifier.Verify("SearchByBarcode", barcodes); return barcodes; } } private SerialNumberListThroughPagingDTO SearchByArticle() { using (var session = new BLSession()) { var filter = new BarcodeFilter { ArticleI3Ds = new List { 44, 45 }, }; var barcodes = session.GetBL().GetBarcodesThroughPaging(filter, 1, 20); this.Verifier.Verify("SearchByArticle", barcodes); return barcodes; } } private PagingList GetBarcodeHistory(int barcodeI3D) { using (var session = new BLSession()) { var filter = new BarCodeHistoryFilter { BarcodeI3Ds = new List { barcodeI3D }, DateFrom = new DateTime(2010, 01, 01), }; var barcodeHistoryResult = session.GetBL().SearchBarCodeHistoriesThroughPaging(filter, 1, 20); this.Verifier.Verify("GetBarcodeHistory", barcodeHistoryResult); return barcodeHistoryResult; } } private void SearchByReceipt() { Search(articleI3D: 4355, CentronObjectKindNumeric.InvoiceClass, 6578); Search(articleI3D: 4355, CentronObjectKindNumeric.InvoiceClass, 6578, receiptItemI3D :25998); //This should work too Search(articleI3D: 4364, CentronObjectKindNumeric.OrderClass, 4381); Search(articleI3D: 4364, CentronObjectKindNumeric.OrderClass, 4381, receiptItemI3D: 7315); //This should work too Search(articleI3D: 4364, CentronObjectKindNumeric.OrderClass, 4381, receiptItemI3D: 11111); //This should not work at all void Search(int articleI3D, CentronObjectKindNumeric receiptKind, int receiptI3D, int? receiptItemI3D = null) { using var session = new BLSession(); var filter = new BarcodeFilter { ArticleI3Ds = new List { articleI3D }, ForReceiptKind = receiptKind, ForReceiptI3D = receiptI3D, ForReceiptItemI3D = receiptItemI3D, }; var barcodes = session.GetBL().GetBarcodesThroughPaging(filter, 1, int.MaxValue); this.Verifier.Verify($"SearchByReceipt_{articleI3D}_{receiptKind.GetReceiptName()}_{receiptI3D}_{receiptItemI3D}", barcodes); } } } }