public void AcceptChangesAction_updates_caller_member_value_and_close_view()
        {
            using var application = DocumentStyleManagerModule().Application;
            var dataObject = application.CreateObjectSpace().CreateObject <DataObject>();

            dataObject.Content = Document.ToByteArray(DocumentFormat.OpenXml);
            dataObject.Name    = "aaaa";
            dataObject.ObjectSpace.CommitChanges();
            application.Model.DocumentStyleManager().DefaultPropertiesProviderCriteria =
                CriteriaOperator.Parse("Oid=?", dataObject.Oid).ToString();
            var window = application.ShowDocumentStyleManagerDetailView(dataObject);

            var documentStyleManager = ((BusinessObjects.DocumentStyleManager)window.View.CurrentObject);

            Document.NewDocumentStyle(1, DocumentStyleType.Paragraph);
            documentStyleManager.Content = Document.ToByteArray(DocumentFormat.OpenXml);
            var viewCLosingObserver = window.View.WhenClosing().Test();
            var acceptAction        = window.Action <DocumentStyleManagerModule>().AcceptStyleManagerChanges();

            acceptAction.DoExecute();

            dataObject.Content.ShouldBe(documentStyleManager.Content);
            RichEditDocumentServerExtensions.LoadDocument(RichEditDocumentServer, dataObject.Content).ParagraphStyles
            .FirstOrDefault(style => style.Name.StartsWith(TestExtensions.PsStyleName)).ShouldNotBeNull();
            viewCLosingObserver.Items.Count.ShouldBe(1);
        }
        public void CancelAction_close_view_but_not_update_caller_object()
        {
            using var application = DocumentStyleManagerModule().Application;
            var dataObject = application.CreateObjectSpace().CreateObject <DataObject>();

            dataObject.Content = Document.ToByteArray(DocumentFormat.OpenXml);
            var window = application.ShowDocumentStyleManagerDetailView(dataObject);

            var documentStyleManager = ((BusinessObjects.DocumentStyleManager)window.View.CurrentObject);

            Document.NewDocumentStyle(1, DocumentStyleType.Paragraph);
            documentStyleManager.Content = Document.ToByteArray(DocumentFormat.OpenXml);
            var viewCLosingObserver = window.View.WhenClosing().Test();
            var cancelAction        = window.Action <DocumentStyleManagerModule>().CancelStyleManagerChanges();

            cancelAction.DoTheExecute();

            dataObject.Content.ShouldNotBe(documentStyleManager.Content);
            RichEditDocumentServerExtensions.LoadDocument(RichEditDocumentServer, dataObject.Content).ParagraphStyles
            .FirstOrDefault(style => style.Name.StartsWith(TestExtensions.PsStyleName)).ShouldBeNull();
            viewCLosingObserver.Items.Count.ShouldBe(1);
        }
Esempio n. 3
0
        internal static IObservable <T> DefaultPropertiesProvider <T>(this XafApplication application, Func <Document, IObservable <T> > factory)
        {
            var documentStyleManager = application.Model.DocumentStyleManager();

            using var objectSpace = application.CreateObjectSpace(documentStyleManager.DefaultPropertiesProvider.TypeInfo.Type);
            var theObject = objectSpace.GetObjects(documentStyleManager.DefaultPropertiesProvider.TypeInfo.Type, objectSpace.ParseCriteria(documentStyleManager.DefaultPropertiesProviderCriteria)).Cast <object>().FirstOrDefault();
            var value     = (byte[])documentStyleManager.DefaultPropertiesProviderMember.MemberInfo.GetValue(theObject);

            return(Observable.Using(() => new RichEditDocumentServer(), server => factory(RichEditDocumentServerExtensions.LoadDocument(server, value))));
        }