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); }
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)))); }