Microsoft.WindowsAzure.MediaServices.Client.Tests.AssetTests.CreateAssetAndUploadNFilesUsingAsyncCall C# (CSharp) Method

CreateAssetAndUploadNFilesUsingAsyncCall() public static method

public static CreateAssetAndUploadNFilesUsingAsyncCall ( int expected, CloudMediaContext mediaContext, string sourceFileName ) : IAsset
expected int
mediaContext CloudMediaContext
sourceFileName string
return IAsset
        public static IAsset CreateAssetAndUploadNFilesUsingAsyncCall(int expected, CloudMediaContext mediaContext,string sourceFileName)
        {
            IAsset asset = mediaContext.Assets.Create("TestWithMultipleFiles", AssetCreationOptions.None);
            VerifyAsset(asset);
            DirectoryInfo info = null;
            try
            {
                info = Directory.CreateDirectory(Guid.NewGuid().ToString());

                var files = new List<Task>();
                BlobTransferClient blobTransferClient = mediaContext.MediaServicesClassFactory.GetBlobTransferClient();
                IAccessPolicy policy = mediaContext.AccessPolicies.Create("Write", TimeSpan.FromMinutes(20), AccessPermissions.Write);
                ILocator locator = mediaContext.Locators.CreateSasLocator(asset, policy);

                for (int i = 0; i < expected; i++)
                {
                    string fileName;
                    string fullFilePath = CreateNewFileFromOriginal(info,sourceFileName, out fileName);
                    IAssetFile file = asset.AssetFiles.Create(fileName);
                    files.Add(file.UploadAsync(fullFilePath, blobTransferClient, locator, CancellationToken.None));
                }
                Task.WaitAll(files.ToArray());
                foreach (Task task in files)
                {
                    Assert.IsTrue(task.IsCompleted);
                    Assert.IsFalse(task.IsFaulted);
                    Assert.IsNull(task.Exception);
                }
            }
            finally
            {
                if (info != null)
                {
                    info.Delete(recursive: true);
                }
            }
            return asset;
        }

Usage Example

Esempio n. 1
0
        public void ShouldDownloadEmptyFile()
        {
            string fileUploaded = _emptyFile;

            CreateFileWithRandomData(fileUploaded, 0);
            IAsset     asset     = AssetTests.CreateAssetAndUploadNFilesUsingAsyncCall(1, _mediaContext, fileUploaded);
            IAssetFile assetFile = asset.AssetFiles.First();

            Assert.AreEqual(assetFile.Asset.Id, asset.Id);
            VerifyAndDownloadAssetFileNTimes(assetFile, asset, 10, 0, true);
        }
AssetTests