public void CSharp8SyntaxTest() { using var application = XpoInMemoryXafApplication.CreateInstance(); using var objectSpace = application.CreateObjectSpace(); var extract = objectSpace.CreateObject <DashboardDataExtract>(); var testObject = objectSpace.CreateObject <TestClassWithNameAndNumber>(); testObject.Name = "Name 1"; testObject.SequentialNumber = 1; extract.Script = @" using System; using System.Linq; public class Script { private byte[] bytes = null; private byte[] LoadBytes => bytes ??= new byte[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; public object GetData(SenDev.Xaf.Dashboards.Scripting.ScriptContext context) => LoadBytes; }" ; objectSpace.CommitChanges(); var dataManager = new DataExtractDataManager(application); dataManager.UpdateDataExtractByKey(extract.Oid); extract.Reload(); Assert.Equal(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, extract.ExtractData); }
public void DataExtractResultTest() { using (var application = XpoInMemoryXafApplication.CreateInstance()) using (var objectSpace = application.CreateObjectSpace()) { var extract = objectSpace.CreateObject <DashboardDataExtract>(); var testObject = objectSpace.CreateObject <TestClassWithNameAndNumber>(); testObject.Name = "Name 1"; testObject.SequentialNumber = 1; extract.Script = @"using System; public class Script { public object GetData(SenDev.Xaf.Dashboards.Scripting.ScriptContext context) { return new byte[] {0,1,2,3,4,5,6,7,8,9}; } }" ; objectSpace.CommitChanges(); var dataManager = new DataExtractDataManager(application); dataManager.UpdateDataExtractByKey(extract.Oid); extract.Reload(); Assert.Equal(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, extract.ExtractData); } }
public void CompileExceptionTest() { using (var application = XpoInMemoryXafApplication.CreateInstance()) using (var objectSpace = application.CreateObjectSpace()) { var extract = objectSpace.CreateObject <DashboardDataExtract>(); var testObject = objectSpace.CreateObject <TestClassWithNameAndNumber>(); testObject.Name = "Name 1"; testObject.SequentialNumber = 1; extract.Script = @" using System; using System.Linq; public class Script { private byte[] bytes = null; private byte[] LoadBytes => bytes ??= new[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; public object GetData(SenDev.Xaf.Dashboards.Scripting.ScriptContext context) => LoadBytes; }" ; objectSpace.CommitChanges(); var dataManager = new DataExtractDataManager(application); var exception = Assert.Throws <InvalidOperationException>(() => dataManager.UpdateDataExtractByKey(extract.Oid)); Assert.StartsWith("Compilation failed:\n", exception.Message); } }
public void DataExtractCollectionDataTest() { using (var application = XpoInMemoryXafApplication.CreateInstance()) using (var objectSpace = application.CreateObjectSpace()) { var extract = objectSpace.CreateObject <DashboardDataExtract>(); var testObject = objectSpace.CreateObject <TestClassWithNameAndNumber>(); testObject.Name = "Name 1"; testObject.SequentialNumber = 1; extract.Script = TemplateHelper.GetScriptTemplate(testObject.GetType(), testObject.GetType().Assembly.GetManifestResourceStream("UnitTests.ScriptTemplate.template")); objectSpace.CommitChanges(); var dataManager = new DataExtractDataManager(application); dataManager.UpdateDataExtractByKey(extract.Oid); } }
private void UpdateDataExtractAction_Execute(object sender, SimpleActionExecuteEventArgs e) { var scheduler = Application.GetJobScheduler(); if (scheduler != null && UpdateBySchedulerEnabled) { scheduler.StartDataExtractUpdate(ViewCurrentObject); } else { var dm = new DataExtractDataManager(Application); dm.UpdateDataExtractByKey(ObjectSpace.GetKeyValue(ViewCurrentObject)); ObjectSpace.Refresh(); } }
private void UpdateDataExtractAction_Execute(object sender, SimpleActionExecuteEventArgs e) { var scheduler = Frame.GetController <DataExtractJobSchedulerController>().JobScheduler; if (scheduler != null) { scheduler.StartDataExtractUpdate(ViewCurrentObject); } else { var dm = new DataExtractDataManager(Application); dm.UpdateDataExtractByKey(ObjectSpace.GetKeyValue(ViewCurrentObject)); ObjectSpace.Refresh(); } }
public void QueryObjectsScriptTest() { var script = @" using System; using System.Linq; using DevExpress.Xpo; using SenDev.Xaf.Dashboards.Scripting; using UnitTests; public class Script { public object GetData(ScriptContext context) { return context.Query<TestClassWithNameAndNumber>(); } }"; using var application = XpoInMemoryXafApplication.CreateInstance(); using var objectSpace = application.CreateObjectSpace(); var extract = objectSpace.CreateObject <DashboardDataExtract>(); var testObject1 = objectSpace.CreateObject <TestClassWithNameAndNumber>(); testObject1.Name = "Name 1"; testObject1.SequentialNumber = 1; var testObject2 = objectSpace.CreateObject <TestClassWithNameAndNumber>(); testObject1.Name = "Name 2"; testObject2.SequentialNumber = 2; extract.Script = script; objectSpace.CommitChanges(); var dataManager = new DataExtractDataManager(application); dataManager.UpdateDataExtractByKey(extract.Oid); extract.Reload(); Assert.NotEmpty(extract.ExtractData); Assert.Equal(2, extract.RowCount); }
public void UpdateDataExtractCore(string dataExtractId) { var dataManager = new DataExtractDataManager(ServerSideApplication.Instance); dataManager.UpdateDataExtractByKey(Guid.Parse(dataExtractId)); }