public MyReportBase Print(Action <XtraReport> printAction) { var actions = OnGetDefautActions(); var defaultFacade = new XRRuntimeActionFacade(actions.ToArray()); _toDos = new List <IReportRuntimeAction>(); OnRegisterAdditionalActions(); var additionalActionsFacade = new XRRuntimeActionFacade(_toDos.ToArray()); var newView = _view.ConvertReportToMyReportBase(); newView.RootHashCode = newView.GetHashCode(); _subscriber = new ScopedXRSubscriber(newView.RootHashCode, c => { defaultFacade.AttemptActionsOnControl(c); additionalActionsFacade.AttemptActionsOnControl(c); if (_injectedFacade != null) { _injectedFacade.AttemptActionsOnControl(c); } }); printAction(newView); return(newView); }
public void Should_not_collide_with_two_controllers() { var view = new XtraReport {DataSource = new[] {new object(), new object()}}; var counterA = 0; var counterB = 0; var actionA = ReportRuntimeAction<XRControl>.WithNoPredicate(c => counterA++); var actionB = ReportRuntimeAction<XRControl>.WithNoPredicate(c => counterB++); var facadeA = new XRRuntimeActionFacade(actionA); var facadeB = new XRRuntimeActionFacade(actionB); var controllerA = new XRReportController(view, facadeA); var controllerB = new XRReportController(view, facadeB); controllerA.Print(r => r.ExportToMemory()); controllerB.Print(r => r.ExportToMemory()); counterA.Should().Be(1); counterB.Should().Be(1); }
public XRReportController(XtraReport view, XRRuntimeActionFacade injectedFacade = null) { _view = view; _injectedFacade = injectedFacade; GlobalXRSubscriber.Init(); }
public void GivenTheXtrasubreportEngineIsInitialized() { var facade = new XRRuntimeActionFacade(_action); _controller = new XRReportController(_report, facade); }
public void Should_handle_detail_reports_with_subreport() { var textvalues = new List<Tuple<int,string>>(); var report = new XtraReportWithSubReportInDetailReport(); report.DataSource = new List<Person2> { new Person2 { Name = "Douglas Sam", Age = 17, Dogs = new List<Dog> {new Dog {Name = "Rex"}, new Dog {Name = "Rudy"}} }, new Person2 { Name = "Fred Thomas", Age = 35, Dogs = new List<Dog> {new Dog {Name = "Sally"}, new Dog {Name = "Stubert"}} }, new Person2 { Name = "Alex Matthew", Age = 100, Dogs = new List<Dog> {new Dog {Name = "Nibbles"}, new Dog {Name = "Norbert"}} } }; int counter = 0; var action = ReportRuntimeAction<XRLabel>.WithNoPredicate(l => { counter++; textvalues.Add(new Tuple<int, string>(l.Report.GetHashCode(), l.Text)); }); var facade = new XRRuntimeActionFacade(action); var c = new XRReportController(report, facade); var newReport = c.Print(a=> a.ExportToMemory()); //Not safe for batch test runs GlobalXRSubscriber.Singleton.Visitors.Count.Should().Be(2); counter.Should().Be(6); }
public override IReportController GetController(XtraReport report) { var runtimeActions = GetRuntimeActions(_additionalReportActions); var facade = new XRRuntimeActionFacade(runtimeActions); return new XRReportController(report, facade); }