コード例 #1
0
        //------------------------------------------------------------------------------
        static IDynamicSettingsPlugin GetCognitoSyncDynamicSettings()
        {
            var cognitoSyncPlugin = AdvexpTasks.GetPlugin <ICognitoSyncSettingsPlugin>();
            var cognitoSyncDynamicSettingsPlugin = (IDynamicSettingsPlugin)cognitoSyncPlugin;

            return(cognitoSyncDynamicSettingsPlugin);
        }
コード例 #2
0
 //------------------------------------------------------------------------------
 public static async void Synchronize()
 {
     var cognitoSyncPlugin = AdvexpTasks.GetPlugin <ICognitoSyncSettingsPlugin>();
     await cognitoSyncPlugin.SynchronizeDataset();
 }
コード例 #3
0
        //------------------------------------------------------------------------------
        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);
                }
            };
        }