private static IObservable <Unit> StoreDataSource(this XafApplication application) =>
 application.WhenWeb().WhenCallBack(typeof(LookupCascadeService).FullName)
 .SelectMany(pattern => application.CreateClientDataSource())
 .Do(_ => {
     WebWindow.CurrentRequestWindow.RegisterStartupScript($"StoreDatasource_{_.viewId}",
                                                          $"StoreDatasource('{_.viewId}','{_.objects}','{_.storage}')");
 })
 .TraceLookupCascdeModule()
 .ToUnit();
        public static IEnumerable <(string viewId, string objects, string storage)> CreateClientDataSource(this XafApplication application)
        {
            var modelClientDatasource = application.ReactiveModulesModel().LookupCascadeModel().Wait().ClientDatasource;
            var storage  = modelClientDatasource.ClientStorage.ToString().FirstCharacterToLower();
            var viewsIds = modelClientDatasource.LookupViews.Select(view => view.LookupListView.Id);

            return(viewsIds.ToObservable()
                   .SelectMany(viewId => application.CreateClientDataSource((IModelListView)application.FindModelView(viewId))).ToEnumerable()
                   .Select(_ => (_.viewId, _.objects, storage)));
        }