internal static IObservable <Unit> MarkupContentPropertyEditor(this ApplicationModulesManager manager) => manager.WhenGeneratingModelNodes <IModelBOModel>().SelectMany().Cast <IModelClass>() .SelectMany(modelClass => modelClass.OwnMembers.ToObservable()) .UrlPropertyAttribute().ImgPropertyAttribute() .ToUnit() .Merge(manager.WhenGeneratingModelNodes <IModelViews>().SelectMany() .ReaOnlyViewAttribute());
internal static IObservable <IModelViews> Connect(this ApplicationModulesManager manager) => manager.WhenGeneratingModelNodes(modelApplication => modelApplication.Views) .Do(views => { foreach (var bo in views.Application.BOModel.Where(m => m.TypeInfo.FindAttributes <CloneModelViewAttribute>(false).Any())) { views.GenerateModel(bo); } });
static IObservable <Unit> ReadOnlyObjectViewAttribute(this ApplicationModulesManager manager) => manager.WhenGeneratingModelNodes <IModelViews>().SelectMany().OfType <IModelObjectView>() .SelectMany(view => view.ModelClass.TypeInfo.FindAttributes <ReadOnlyObjectViewAttribute>() .Where(objectView => objectView is IModelDetailView && objectView.ViewType == ViewType.DetailView || objectView is IModelListView && objectView.ViewType == ViewType.ListView || objectView.ViewType == ViewType.Any) .Execute(objectView => { view.AllowEdit = objectView.AllowEdit; view.AllowDelete = objectView.AllowDelete; view.AllowNew = objectView.AllowNew; }).ToObservable(Scheduler.Immediate)) .ToUnit();
public static IObservable <Unit> ConnectEmail(this ApplicationModulesManager manager) => manager.WhenGeneratingModelNodes <IModelBOModel>() .Do(model => { var modelEmail = model.Application.ToReactiveModule <IModelReactiveModulesEmail>().Email; var recipientType = modelEmail.RecipientType(); var emailAddress = modelEmail.SetupEmailAddress(); var smtpClient = modelEmail.SmtpClient(emailAddress); var modelEmailRule = modelEmail.EmailRule(); var emailRecipient = modelEmail.EmailRecipient(recipientType); var emailObjectView = modelEmailRule.ObjectView(null); modelEmailRule.SetupViewRecipient(emailObjectView, emailRecipient, smtpClient); }).ToUnit();
internal static IObservable <Unit> ConnectObjectString(this ApplicationModulesManager manager) { return(manager.WhenGeneratingModelNodes <IModelViews>().SelectMany().OfType <IModelDetailView>() .SelectMany(view => view.MemberViewItems()).Where(item => item.ModelMember.MemberInfo.Owner.Type == typeof(ObjectString) && item.PropertyName == nameof(ObjectString.Caption)) // .Do(item => item.PropertyEditorType = item.PropertyEditorTypes.FirstOrDefault(type => // type.FullName == "DevExpress.ExpressApp.Blazor.Editors.CheckedLookupStringPropertyEditor")) .ToUnit()); // .Merge(manager.WhenApplication(application => { // var detailViewCreated = application.WhenDetailViewCreated().Where(t => t.e.View.ObjectTypeInfo.Type!=typeof(ObjectString)) // .SelectMany(t => application.WhenFrameViewChanged().WhenFrame(typeof(ObjectString)).WhenFrame(ViewType.DetailView) // .SelectMany(frame => ((ObjectString) frame.View.AsDetailView().CurrentObject).Datasource // .Do(e => { // e.Instance.Objects // }))) // ; // // return datasource.CombineLatest(detailViewCreated); // })); }
public static IObservable <Unit> DefaultLookupPropertyEditor(this ApplicationModulesManager manager) => manager.WhenGeneratingModelNodes <IModelBOModel>().SelectMany() .SelectMany(mClass => mClass.OwnMembers .Where(member => member.PropertyEditorType == typeof(DevExpress.ExpressApp.Blazor.Editors.LookupPropertyEditor)) .Do(member => member.PropertyEditorType = typeof(LookupPropertyEditor)) ).ToUnit();
public static IObservable <Unit> ConnectMicrosoftService(this ApplicationModulesManager manager) => manager.WhenGeneratingModelNodes(application => application.Views) .Do(views => {