using System.Collections.Generic; using System.Linq; using Centron.BusinessLogic; using Centron.BusinessLogic.WebServices.MassUpdate; using Centron.BusinessLogic.WebServices.Sales.Receipts; using Centron.BusinessLogic.WebServices.Warehousing; using Centron.Core.Extensions; using Centron.Data.Entities.MassUpdate.Settings; using Centron.Interfaces; using Centron.Tests.EndToEnd.Infrastructure; using CentronSoftware.Centron.WebServices.Entities.MassUpdate; using CentronSoftware.Centron.WebServices.Entities.MassUpdate.Filter; using CentronSoftware.Centron.WebServices.Entities.MassUpdate.Settings; using Xunit.Abstractions; namespace Centron.Tests.EndToEnd.Tests.MassUpdate; public class MassUpdateTests : EndToEndTest { public MassUpdateTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } public override void Execute() { var massUpdateTemplateArticle = this.CreateMassUpdateTemplateForArticle(); var massUpdateTemplateReceipt = this.CreateMassUpdateTemplateForReceipt(); var massUpdateTemplateReceiptData = this.CreateMassUpdateTemplateForReceiptData(); var allMassUpdates = this.GetAllMassUpdateTemplates("GetAllMassUpdates"); this.SearchForReceiptUpdateItems(); this.StartMassUpdateForArticle(massUpdateTemplateArticle.I3D, 11); this.StartMassUpdateForReceipt(massUpdateTemplateReceipt.I3D, 5); this.StartMassUpdateForReceiptData(massUpdateTemplateReceiptData.I3D, 5); } private List GetAllMassUpdateTemplates(string testName) { using var session = new BLSession(); var result = session.GetBL().GetAllMassUpdates(); this.Verifier.Verify(testName, result); return result.ToList(); } private MassUpdateTemplateDTO CreateMassUpdateTemplateForArticle() { using var session = new BLSession(); var massUpdateTemplateDTO = new MassUpdateTemplateDTO(); massUpdateTemplateDTO.Caption = "F: Wo war eigentlich Gondor als die Westfold fiel?"; massUpdateTemplateDTO.Description = "A: Wahrscheinlich zuhause."; var massUpdateItem = new MassUpdateTemplateItemsDTO() { ObjectKind = CentronObjectKindNumeric.Article, ObjectI3D = 11, NewPrice1 = 10.0m, NewPrice2 = 20.0m, NewPrice3 = 30.0m, NewPrice4 = 50.0m, }; massUpdateTemplateDTO.MassUpdateTemplateItems = new List(); massUpdateTemplateDTO.MassUpdateTemplateItems.Add(massUpdateItem); massUpdateTemplateDTO.PriceUpdateSettings = new PriceUpdateSettingsDTO() { IsArticleUpdate = true, IsReceiptUpdate = false, UpdateEkForReceipt = false, UpdateVkForReceipt = false, }; var saveResult = session.GetBL().SaveOrUpdateMassUpdate(massUpdateTemplateDTO, this.GetLoggedInUser()); this.Verifier.Verify("CreateMassUpdateTemplateForArticle", saveResult); return saveResult; } private MassUpdateTemplateDTO CreateMassUpdateTemplateForReceipt() { using var session = new BLSession(); var massUpdateTemplateDTO = new MassUpdateTemplateDTO(); massUpdateTemplateDTO.Caption = "F: Wo war eigentlich Gondor als die Westfold fiel?"; massUpdateTemplateDTO.Description = "A: Wahrscheinlich zuhause."; var massUpdateItem = new MassUpdateTemplateItemsDTO() { ObjectKind = CentronObjectKindNumeric.OfferClass, ObjectI3D = 5, AdditionalObjectI3D = 1, NewBasePrice = 666m, NewPurchasePrice = 999m }; massUpdateTemplateDTO.MassUpdateTemplateItems = new List(); massUpdateTemplateDTO.MassUpdateTemplateItems.Add(massUpdateItem); massUpdateTemplateDTO.PriceUpdateSettings = new PriceUpdateSettingsDTO() { IsReceiptUpdate = true, IsArticleUpdate = false, UpdateEkForReceipt = true, UpdateVkForReceipt = true }; var saveResult = session.GetBL().SaveOrUpdateMassUpdate(massUpdateTemplateDTO, this.GetLoggedInUser()); this.Verifier.Verify("CreateMassUpdateTemplateForReceipt", saveResult); return saveResult; } private MassUpdateTemplateDTO CreateMassUpdateTemplateForReceiptData() { using var session = new BLSession(); var massUpdateTemplateDTO = new MassUpdateTemplateDTO(); massUpdateTemplateDTO.Caption = "F: Wo war eigentlich Gondor als die Westfold fiel?"; massUpdateTemplateDTO.Description = "A: Wahrscheinlich zuhause."; var massUpdateItem = new MassUpdateTemplateItemsDTO() { ObjectKind = CentronObjectKindNumeric.OfferClass, ObjectI3D = 5, AdmI3D = 1, PaymentConditionI3D = 1, IdmI3D = 1 }; massUpdateTemplateDTO.MassUpdateTemplateItems = new List(); massUpdateTemplateDTO.MassUpdateTemplateItems.Add(massUpdateItem); massUpdateTemplateDTO.PriceUpdateSettings = new PriceUpdateSettingsDTO() { MassUpdateType = MassUpdateType.AccountData }; var saveResult = session.GetBL().SaveOrUpdateMassUpdate(massUpdateTemplateDTO, this.GetLoggedInUser()); this.Verifier.Verify("CreateMassUpdateTemplateForReceiptData", saveResult); return saveResult; } private void StartMassUpdateForArticle(int massUpdateI3D, int articleI3D) { using var session = new BLSession(); var articlePreUpdate = session.GetBL().GetArticleByArticleI3D(articleI3D); this.Verifier.Verify("PricePreUpdate", (articlePreUpdate.Price1, articlePreUpdate.Price2, articlePreUpdate.Price3, articlePreUpdate.Price4)); session.GetBL().StartArticlePriceUpdate(massUpdateI3D, this.GetLoggedInUser()); var articlePostUpdate = session.GetBL().GetArticleByArticleI3D(articleI3D); this.Verifier.Verify("PricePostUpdate", (articlePostUpdate.Price1, articlePostUpdate.Price2, articlePostUpdate.Price3, articlePostUpdate.Price4)); } private void StartMassUpdateForReceipt(int massUpdateI3D, int receiptI3D) { using var session = new BLSession(); var receiptPreUpdate = session.GetBL().GetReceiptByI3D(receiptI3D, CentronObjectKindNumeric.OfferClass, this.GetLoggedInUser()); this.Verifier.Verify("ReceiptPreUpdate", receiptPreUpdate); session.GetBL().StartReceiptDataUpdate(massUpdateI3D, this.GetLoggedInUser()); var receiptPostUpdate = new BLSession().GetBL().GetReceiptByI3D(receiptI3D, CentronObjectKindNumeric.OfferClass, this.GetLoggedInUser()); this.Verifier.Verify("ReceiptPostUpdate", receiptPostUpdate); } private void StartMassUpdateForReceiptData(int massUpdateI3D, int receiptI3D) { using var session = new BLSession(); var receiptPreUpdate = session.GetBL().GetReceiptByI3D(receiptI3D, CentronObjectKindNumeric.OfferClass, this.GetLoggedInUser()); this.Verifier.Verify("ReceiptDataPreUpdate", receiptPreUpdate); session.GetBL().StartReceiptDataUpdate(massUpdateI3D, this.GetLoggedInUser()); var receiptPostUpdate = new BLSession().GetBL().GetReceiptByI3D(receiptI3D, CentronObjectKindNumeric.OfferClass, this.GetLoggedInUser()); this.Verifier.Verify("ReceiptDataPostUpdate", receiptPostUpdate); } private void SearchForReceiptUpdateItems() { var filter = new List(); filter.Add(new UpdateReceiptFilter() { ReceiptI3D = 6713, ObjectKind = CentronObjectKindNumeric.OfferClass }); using var session = new BLSession(); var filteredReceipts = session.GetBL().SearchForReceiptUpdateItems(filter); this.Verifier.Verify("SearchForReceiptUpdateItems", filteredReceipts); } }