public UploadMobileDataController(
[NotNull] IUiContext uiContext,
[NotNull] IMobileDataExporter dataExporter,
[NotNull] IMobileDataUploader uploader,
[NotNull] IApplicationDatabaseService appDbService)
{
if (uiContext == null) throw new ArgumentNullException(nameof(uiContext));
if (dataExporter == null) throw new ArgumentNullException(nameof(dataExporter));
if (uploader == null) throw new ArgumentNullException(nameof(uploader));
if (appDbService == null) throw new ArgumentNullException(nameof(appDbService));
this.dataExporter = dataExporter;
this.uploader = uploader;
this.appDbService = appDbService;
MessengerInstance = uiContext.Messenger;
this.messageBoxService = uiContext.UserPrompts.MessageBox;
this.logger = uiContext.Logger;
MessengerInstance.Register<WidgetActivatedMessage>(this, OnWidgetActivatedMessageReceived);
MessengerInstance.Register<ShellDialogResponseMessage>(this, OnShellDialogMessageReceived);
}