//------------------------------------------------------------------------------ static IDynamicSettingsPlugin GetCognitoSyncDynamicSettings() { var cognitoSyncPlugin = AdvexpTasks.GetPlugin <ICognitoSyncSettingsPlugin>(); var cognitoSyncDynamicSettingsPlugin = (IDynamicSettingsPlugin)cognitoSyncPlugin; return(cognitoSyncDynamicSettingsPlugin); }
//------------------------------------------------------------------------------ public static async void Synchronize() { var cognitoSyncPlugin = AdvexpTasks.GetPlugin <ICognitoSyncSettingsPlugin>(); await cognitoSyncPlugin.SynchronizeDataset(); }
//------------------------------------------------------------------------------ public static void Initialize() { Advexp. SettingsBaseConfiguration.RegisterSettingsPlugin < Advexp.CognitoSyncSettings.Plugin.ICognitoSyncSettingsPlugin, Advexp.CognitoSyncSettings.Plugin.CognitoSyncSettingsPlugin >(); Advexp.CognitoSyncSettings.Plugin. CognitoSyncSettingsConfiguration.Config = new AmazonCognitoSyncConfig() { RegionEndpoint = Constants.CognitoSyncRegion, }; Advexp.CognitoSyncSettings.Plugin. CognitoSyncSettingsConfiguration.Credentials = new CognitoAWSCredentials (Constants.CognitoSyncIdentityPoolId, Constants.CognitoSyncIdentityRegion); // plugins are persistant per instance (static settings processed by separate, internal instance) // and next call will return the same object var cognitoSyncPlugin = AdvexpTasks.GetPlugin <ICognitoSyncSettingsPlugin>(); cognitoSyncPlugin.OnSyncSuccess += (object sender, SyncSuccessEventArgs e) => { var action = s_Action; if (action != null) { action(null); } }; cognitoSyncPlugin.OnDatasetDeleted = delegate { //basically use what ever we got in remote return(true); }; cognitoSyncPlugin.OnSyncConflict = delegate(Dataset ds, List <SyncConflict> conflicts) { //trust the remote List <Record> resolved = new List <Record>(); foreach (SyncConflict sc in conflicts) { resolved.Add(sc.ResolveWithRemoteRecord()); } ds.Resolve(resolved); return(true); }; cognitoSyncPlugin.OnDatasetMerged = delegate(Dataset dataset, List <string> datasetNames) { // returning true allows the Synchronize to continue and false stops it return(true); }; cognitoSyncPlugin.OnSyncFailure += (object sender, SyncFailureEventArgs e) => { var action = s_Action; if (action != null) { action(e.Exception); } }; }