internal async static Task CopyNecessaryFilesFromCurrentPackageAsync(StorageFile diffManifestFile, StorageFolder currentPackageFolder, StorageFolder newPackageFolder)
        {
            await FileUtils.MergeFoldersAsync(currentPackageFolder, newPackageFolder).ConfigureAwait(false);

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

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

            foreach (string fileNameToDelete in deletedFiles)
            {
                StorageFile fileToDelete = await newPackageFolder.GetFileAsync(fileNameToDelete.Replace("/", "\\")).AsTask().ConfigureAwait(false);

                await fileToDelete.DeleteAsync().AsTask().ConfigureAwait(false);
            }
        }
示例#2
0
        private async Task <JObject> GetCurrentPackageInfoAsync()
        {
            var statusFile = await GetStatusFileAsync().ConfigureAwait(false);

            var info = await GreatPushUtils.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 GreatPushUtils.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(GreatPushConstants.PackageFileName).AsTask().ConfigureAwait(false);

                return(await GreatPushUtils.GetJObjectFromFileAsync(packageFile).ConfigureAwait(false));
            }
            catch (IOException)
            {
                return(null);
            }
        }
        private async Task <JObject> GetCurrentPackageInfoAsync()
        {
            StorageFile statusFile = await GetStatusFileAsync().ConfigureAwait(false);

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