Exemple #1
0
 private static IObservable <View> CreateView(this XafApplication application, ExecuteActionJob job, IModelView modelView)
 => application.WhenViewCreating()
 .Select(t => {
     var objectType = modelView.AsObjectView.ModelClass.TypeInfo.Type;
     t.e.View       = application.CreateView(job, modelView, application.CreateObjectSpace(objectType, true), objectType);
     return(t.e.View);
 }).FirstAsync().IgnoreElements();
        private static IObservable <ShowViewParameters> ShowView(this XafApplication application)
        {
            return(application.WhenWindowCreated().When(TemplateContext.ApplicationWindow)
                   .SelectMany(window => {
                var modelView = application.Model.ToReactiveModule <IModelReactiveModuleOneView>().OneView;
                if (modelView.View != null)
                {
                    var showViewParameters = new ShowViewParameters();
                    var dialogController = new OneViewDialogController();
                    dialogController.AcceptAction.Caption = "Configure";
                    dialogController.CancelAction.Active[""] = false;
                    showViewParameters.Controllers.Add(dialogController);
                    showViewParameters.NewWindowTarget = NewWindowTarget.Separate;
                    showViewParameters.Context = TemplateContext.PopupWindow;

                    showViewParameters.TargetWindow = TargetWindow.NewWindow;
                    showViewParameters.CreatedView = application.CreateView(modelView.View);
                    application.ShowViewStrategy.ShowView(showViewParameters, new ShowViewSource(null, null));
                    return showViewParameters.ReturnObservable();
                }

                return Observable.Empty <ShowViewParameters>();
            })
                   .TraceOneView()
                   .WhenNotDefault());
        }
Exemple #3
0
 internal static IObservable <Unit> ExecuteAction(this XafApplication application, string jobId)
 => Observable.Using(application.CreateNonSecuredObjectSpace, objectSpace
                     => objectSpace.GetObjectsQuery <ExecuteActionJob>().Where(actionJob => actionJob.Id == jobId).ToArray().ToNowObservable()
                     .ConcatIgnored(job => {
     if (job.AuthenticateUserCriteria == null)
     {
         return(job.ReturnObservable());
     }
     var user = objectSpace.FindObject(SecuritySystem.UserType, CriteriaOperator.Parse(job.AuthenticateUserCriteria));
     return(user != null ? application.LogonUser(objectSpace.GetKeyValue(user)).FirstAsync().To(job)
                 : Observable.Throw <Job>(new Exception($"{nameof(user)} not found")));
 })
                     .SelectMany(job => application.CreateView(job, application.Model.Views[job.View.Name]).ToUnit()
                                 .Merge(application.ExecuteAction(job)))
                     .ToUnit());
Exemple #4
0
 public static CompositeView NewView(this XafApplication application, IModelView modelView, IObjectSpace objectSpace = null)
 => (CompositeView)(objectSpace == null?(CompositeView)application.CallMethod("CreateView", modelView):application.CreateView(modelView, objectSpace));