From bf717209462827eecb1db73cc45a364528f192b2 Mon Sep 17 00:00:00 2001 From: Apostolis Bekiaris Date: Sat, 17 Aug 2019 02:02:44 +0300 Subject: [PATCH] ExcelImporter: inconsistent column mapping filtering #490 --- .../ExcelImportDetailViewController.cs | 2 +- .../ExcelImporter/ExcelImporterModule.cs | 21 ++++++++++--------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/Xpand/Xpand.ExpressApp.Modules/ExcelImporter/Controllers/ExcelImportDetailViewController.cs b/Xpand/Xpand.ExpressApp.Modules/ExcelImporter/Controllers/ExcelImportDetailViewController.cs index f3c411cfe5..6d51519042 100644 --- a/Xpand/Xpand.ExpressApp.Modules/ExcelImporter/Controllers/ExcelImportDetailViewController.cs +++ b/Xpand/Xpand.ExpressApp.Modules/ExcelImporter/Controllers/ExcelImportDetailViewController.cs @@ -84,7 +84,7 @@ public class ExcelImportDetailViewController : ObjectViewController ((ExcelImport) View.CurrentObject); + public ExcelImport ExcelImport => ((ExcelImport) View.CurrentObject); protected virtual void ValidateFile(){ if (ExcelImport.File.Content == null){ var result = Validator.RuleSet.NewRuleSetValidationMessageResult(ObjectSpace, "Invalid file", "Save", diff --git a/Xpand/Xpand.ExpressApp.Modules/ExcelImporter/ExcelImporterModule.cs b/Xpand/Xpand.ExpressApp.Modules/ExcelImporter/ExcelImporterModule.cs index 6066b10b76..02867f8270 100644 --- a/Xpand/Xpand.ExpressApp.Modules/ExcelImporter/ExcelImporterModule.cs +++ b/Xpand/Xpand.ExpressApp.Modules/ExcelImporter/ExcelImporterModule.cs @@ -9,6 +9,7 @@ using DevExpress.ExpressApp.Validation; using DevExpress.Utils; using Xpand.ExpressApp.ExcelImporter.BusinessObjects; +using Xpand.ExpressApp.ExcelImporter.Controllers; using Xpand.ExpressApp.ExcelImporter.Services; using Xpand.ExpressApp.SystemModule; using Xpand.ExpressApp.Validation; @@ -51,16 +52,16 @@ public sealed class ExcelImporterModule : XpandModuleBase { if (InterfaceBuilder.RuntimeMode) { _notificationsModule = Application.FindModule(); _notificationsModule.NotificationsRefreshInterval = TimeSpan.FromSeconds(5); - var excelImportDetailView = Application.WhenDetailViewCreated().ToDetailView() - .When(typeof(ExcelImport)); - Application.WhenMasterDetailDashboardViewItems().CombineLatest(excelImportDetailView,(tuple, view) => - (tuple.listViewItem,excelImport:(ExcelImport)view.CurrentObject)) - .Select(_ => { - var listView = ((ListView) _.listViewItem.InnerView); - var criteriaOperator = listView.ObjectSpace.GetCriteriaOperator(map =>map.ExcelImport.Oid == _.excelImport.Oid); - listView.CollectionSource.Criteria[GetType().Name] =criteriaOperator; - return Unit.Default; - }) + Application.WhenMasterDetailDashboardViewItems(typeof(ExcelColumnMap)).WithLatestFrom(Application.WhenWindowCreated() + .ToController() + .SelectMany(controller => controller.MapAction.WhenExecuted().Select(tuple => tuple)), + (tuple, valueTuple) => { + var criteriaOperator = + tuple.listViewItem.InnerView.ObjectSpace.GetCriteriaOperator(map => + map.ExcelImport.Oid == ((ExcelImportDetailViewController) valueTuple.e.Action.Controller).ExcelImport.Oid); + ((ListView) tuple.listViewItem.InnerView).CollectionSource.Criteria[GetType().Name] = criteriaOperator; + return Unit.Default; + }) .Subscribe(); } }