예제 #1
0
 public Error UpdateTables(IntPtr mpos, string version, bool forceUpdate, Native.MposTablesLoadedCallbackDelegate callback, IList[] dataList)
 {
     return(Convert(dataList, (data, count) =>
     {
         return UpdateTablesExtern(mpos, data, count, version, forceUpdate, callback);
     }));
 }
예제 #2
0
 public static Native.MposGetTableVersionCallbackDelegate Callback(Mpos mpos, Native.MposTablesLoadedCallbackDelegate tableCallback, int amount, PaymentMethod magstripePaymentMethod, TaskCompletionSource <PaymentResult> source)
 {
     return(GCHelper.ManualFree <Native.MposGetTableVersionCallbackDelegate>(releaseGC =>
     {
         return (mposPtr, err, version) =>
         {
             releaseGC();
             return callback(mpos, tableCallback, version);
         };
     }));
 }
예제 #3
0
        private static Native.Error callback(Mpos mpos, Native.MposTablesLoadedCallbackDelegate tableCallback, String version)
        {
            if (!mpos.TMSStorage.GetGlobalVersion().StartsWith(version))
            {
                var aidEntries  = mpos.TMSStorage.GetAidRows();
                var capkEntries = mpos.TMSStorage.GetCapkRows();

                var aidList     = aidEntries.Select(a => new Native.Aid(a)).ToArray();
                var capkList    = capkEntries.Select(c => new Native.Capk(c)).ToArray();
                var updateError = Native.UpdateTables(mpos, tableCallback, aidList, capkList);

                if (updateError != Native.Error.Ok)
                {
                    throw new MposException(updateError);
                }
            }
            else
            {
                tableCallback(mpos.nativeMpos, 0, false);
            }

            return(Native.Error.Ok);
        }
예제 #4
0
 public static extern Error UpdateTablesExtern(IntPtr mpos, IntPtr data, int count, string version, bool forceUpdate, Native.MposTablesLoadedCallbackDelegate callback);