Module Updater Specifics

Since the Numerators are implemented on the basis of XafariService, they operate correctly only when the XafApplication.SetupComplete event has occurred, i.e. when the application is initialized. The use of all Xafari Services (including Numerators) while the application is not initialized leads to unpredictable consequences.

At the same time, there can be a real practical need to use services inside the code of the custom ModuleUpdate class. In particular, it can be required to manipulate the objects that use the Numerators service.

It is also possible that the ModuleUpdater has already executed but the initialization of the application is not completed yet. In such case, all services (including the Numerators) will not function.

To work this issue around, use Xafari.BC.XafariModuleUpdater instead of DevExpress.ExpressApp.Updating.ModuleUpdater.

The XafariModuleUpdater class exposes the SafeUpdateDatabaseAfterUpdateSchema() method providing a safe way to manipulate data in the DB. Override this method to call Numerators (or any other service).

To learn more, refer to the Using Xafari Services in Updater topic.