Esempio n. 1
0
        private async void ImportHandler()
        {
            var fileExt    = Path.GetExtension(TargetFileName);
            var sourceFile = await PlatformService.SelectFileAsync(new string[] { fileExt });

            if (sourceFile == null)
            {
                return;
            }

            var md5 = await CryptographyService.ComputeMD5Async(sourceFile);

            if (md5.ToLowerInvariant() != TargetMD5.ToLowerInvariant())
            {
                var title   = LocalizationService.GetLocalizedString(FileHashMismatchTitleKey);
                var message = LocalizationService.GetLocalizedString(FileHashMismatchMessageKey);
                await DialogsService.AlertAsync(message, title);

                return;
            }

            using (var inStream = await sourceFile.OpenAsync(PCLStorage.FileAccess.Read))
            {
                var targetFile = await TargetFolder.CreateFileAsync(targetFileName, CreationCollisionOption.ReplaceExisting);

                using (var outStream = await targetFile.OpenAsync(PCLStorage.FileAccess.ReadAndWrite))
                {
                    await inStream.CopyToAsync(outStream);

                    await outStream.FlushAsync();
                }

                FileAvailable = true;
            }
        }