Ejemplo n.º 1
0
		public Task<NSObject> RunTransactionAsync (FirestoreUpdateHandler updateHandler)
		{
			var tcs = new TaskCompletionSource<NSObject> ();
			RunTransaction (updateHandler, (result_, error_) => {
				if (error_ != null)
					tcs.SetException (new NSErrorException (error_));
				else
					tcs.SetResult (result_);
			});
			return tcs.Task;
		}
Ejemplo n.º 2
0
		public void RunTransaction (FirestoreUpdateHandler updateHandler, TransactionCompletionHandler completion)
		{
			_RunTransaction (InternalUpdateHandler, completion);

			NSObject InternalUpdateHandler (Transaction transaction, IntPtr pError)
			{
				if (updateHandler == null)
					return null;

				var result = updateHandler (transaction, out NSError error);

				if (error != null)
					Marshal.WriteIntPtr (pError, error.Handle);

				return result;
			}
		}