Exemplo n.º 1
0
        internal async static Task CopyNecessaryFilesFromCurrentPackageAsync(IFile diffManifestFile, IFolder currentPackageFolder, IFolder newPackageFolder)
        {
            await FileUtils.MergeFoldersAsync(currentPackageFolder, newPackageFolder).ConfigureAwait(false);

            JObject diffManifest = await CodePushUtils.GetJObjectFromFileAsync(diffManifestFile).ConfigureAwait(false);

            var deletedFiles = (JArray)diffManifest["deletedFiles"];

            foreach (string fileNameToDelete in deletedFiles)
            {
                var fileToDelete = await newPackageFolder.GetFileAsync(fileNameToDelete).ConfigureAwait(false);

                await fileToDelete.DeleteAsync().ConfigureAwait(false);
            }
        }
        private async Task <JObject> GetCurrentPackageInfoAsync()
        {
            var statusFile = await GetStatusFileAsync().ConfigureAwait(false);

            var info = await CodePushUtils.GetJObjectFromFileAsync(statusFile).ConfigureAwait(false);

            if (info != null)
            {
                return(info);
            }

            // info file has been corrupted - re-create it
            await statusFile.DeleteAsync().ConfigureAwait(false);

            statusFile = await GetStatusFileAsync().ConfigureAwait(false);

            return(await CodePushUtils.GetJObjectFromFileAsync(statusFile).ConfigureAwait(false));
        }
        internal async Task <JObject> GetPackageAsync(string packageHash)
        {
            StorageFolder packageFolder = await GetPackageFolderAsync(packageHash, false).ConfigureAwait(false);

            if (packageFolder == null)
            {
                return(null);
            }

            try
            {
                StorageFile packageFile = await packageFolder.GetFileAsync(CodePushConstants.PackageFileName).AsTask().ConfigureAwait(false);

                return(await CodePushUtils.GetJObjectFromFileAsync(packageFile).ConfigureAwait(false));
            }
            catch (IOException)
            {
                return(null);
            }
        }
        // internal async static Task CopyNecessaryFilesFromCurrentPackageAsync(IFile diffManifestFile,IFolder unzipedPackageFolder, IFolder currentPackageFolder, IFolder newPackageFolder)
        internal async static Task CopyNecessaryFilesFromCurrentPackageAsync(IFile diffManifestFile, IFolder currentPackageFolder, IFolder newPackageFolder)
        {
            await FileUtils.MergeFoldersAsync(currentPackageFolder, newPackageFolder).ConfigureAwait(false);

            JObject diffManifest = await CodePushUtils.GetJObjectFromFileAsync(diffManifestFile).ConfigureAwait(false);

            var deletedFiles = (JArray)diffManifest["deletedFiles"];

            if (deletedFiles != null)
            {
                foreach (string fileNameToDelete in deletedFiles)
                {
                    var fileToDelete = await newPackageFolder.GetFileAsync(fileNameToDelete).ConfigureAwait(false);

                    await fileToDelete.DeleteAsync().ConfigureAwait(false);
                }
            }

            // var patchedFiles = (JArray)diffManifest["patchedFiles"];
            // if (patchedFiles != null)
            // {
            //     foreach (string fileNameToPatch in patchedFiles)
            //     {
            //         var patchFile = await unzipedPackageFolder.GetFileAsync(fileNameToPatch).ConfigureAwait(false);
            //         var patchFileContent = await patchFile.ReadAllTextAsync().ConfigureAwait(false);

            //         var bundleFile = await newPackageFolder.GetFileAsync(fileNameToPatch.Replace(".patch","")).ConfigureAwait(false);
            //         var bundleFileContent = await bundleFile.ReadAllTextAsync().ConfigureAwait(false);

            //         var dmp = new DiffMatchPatch();


            //         var fileToDelete = await newPackageFolder.GetFileAsync(fileNameToPatch).ConfigureAwait(false);
            //         await fileToDelete.DeleteAsync().ConfigureAwait(false);
            //     }
            // }
        }
        private async Task <JObject> GetCurrentPackageInfoAsync()
        {
            StorageFile statusFile = await GetStatusFileAsync().ConfigureAwait(false);

            return(await CodePushUtils.GetJObjectFromFileAsync(statusFile).ConfigureAwait(false));
        }