コード例 #1
0
        public void ActionProgress()
        {
            var a1 = AsyncAction <int> .CreateCompleted();

            var a2 = AsyncAction <int> .CreateCompleted();

            Assert.AreEqual(AsyncStatus.Completed, a1.Status);
            Assert.AreSame(a2, a1);
            a1 = AsyncAction <int> .CreateCanceled();

            a2 = AsyncAction <int> .CreateCanceled();

            Assert.ThrowsException <OperationCanceledException>(() => a1.GetResults());
            Assert.AreEqual(AsyncStatus.Canceled, a1.Status);
            Assert.AreSame(a2, a1);
            a1 = AsyncAction <int> .CreateFault();

            a2 = AsyncAction <int> .CreateFault();

            Assert.AreEqual(AsyncStatus.Error, a1.Status);
            Assert.ThrowsException <Exception>(() => a1.GetResults());
            Assert.IsNotNull(a1.ErrorCode);
            Assert.AreSame(a2, a1);
            a1 = AsyncAction <int> .CreateFault(new InvalidOperationException("text"));

            Assert.AreEqual(AsyncStatus.Error, a1.Status);
            Assert.ThrowsException <InvalidOperationException>(() => a1.GetResults());
            Assert.IsNotNull(a1.ErrorCode);
            Assert.AreEqual("text", a1.ErrorCode.Message);
            a1.Close();
            Assert.IsNotNull(a1.ErrorCode);
            Assert.AreEqual("text", a1.ErrorCode.Message);
        }
コード例 #2
0
        /// <summary>
        /// Show share UI.
        /// </summary>
        /// <param name="manager"><see cref="DataTransferManager"/> of sharing.</param>
        /// <param name="dataPackageProvider">Provides <see cref="DataPackage"/> to share.</param>
        /// <exception cref="ArgumentNullException"><paramref name="manager"/> or <paramref name="dataPackageProvider"/> is <see langword="null"/>.</exception>
        /// <exception cref="NotSupportedException">Sharing is not supported.</exception>
        public static IAsyncAction ShareAsync(this DataTransferManager manager, Func <IAsyncOperation <DataPackage> > dataPackageProvider)
        {
            if (manager is null)
            {
                throw new ArgumentNullException(nameof(manager));
            }
            if (dataPackageProvider is null)
            {
                throw new ArgumentNullException(nameof(dataPackageProvider));
            }
            if (!DataTransferManager.IsSupported())
            {
                return(AsyncAction.CreateFault(new NotSupportedException()));
            }
            var action = new AsyncAction();

            new ShareHandlerStorage(manager, dataPackageProvider, action);
            DataTransferManager.ShowShareUI();
            return(action);
        }