예제 #1
0
 private Task WriteAssetAsync(Guid assetId, long fileVersion, BackupWriter writer)
 {
     return(writer.WriteBlobAsync(GetName(assetId, fileVersion), stream =>
     {
         return assetStore.DownloadAsync(assetId.ToString(), fileVersion, null, stream);
     }));
 }
예제 #2
0
        /**
         * Write output to a backup file for the specified database
         */
        public void WriteBackupFile(string databaseName, string output)
        {
            BackupWriter backupWriter = new BackupWriter();

            backupWriter.DatabaseName = databaseName;
            backupWriter.OpenWriter();
            backupWriter.Write(output);
            backupWriter.CloseWriter();

            backupWriter = null;
        }
예제 #3
0
        public override Task BackupEventAsync(Envelope <IEvent> @event, Guid appId, BackupWriter writer)
        {
            switch (@event.Payload)
            {
            case AssetCreated assetCreated:
                return(WriteAssetAsync(assetCreated.AssetId, assetCreated.FileVersion, writer));

            case AssetUpdated assetUpdated:
                return(WriteAssetAsync(assetUpdated.AssetId, assetUpdated.FileVersion, writer));
            }

            return(TaskHelper.Done);
        }
예제 #4
0
        public void BackupDetails()
        {
            var repo         = new DisconnectedRepository();
            var ipDetails    = repo.GetIpDetails();
            var files        = repo.GetLogFiles();
            var lines        = repo.GetLogLines();
            var setting      = repo.GetLocalSettings();
            var backupWriter = new BackupWriter(ipDetails, lines, files, setting);


            var time = DateTime.Now.ToString("yyyy.dd.mm.HH.mm");

            var path     = setting.BackupFolder;
            var fileName = path + setting.BackupName + "_details_" + time + BackupFormat.Xml;

            backupWriter.BackupIpDetails(fileName);
        }
예제 #5
0
        private async Task BackupTagsAsync(Guid appId, BackupWriter writer)
        {
            var tags = await tagService.GetExportableTagsAsync(appId, TagGroups.Assets);

            await writer.WriteJsonAsync(TagsFile, JObject.FromObject(tags));
        }
예제 #6
0
 public override Task BackupAsync(Guid appId, BackupWriter writer)
 {
     return(BackupTagsAsync(appId, writer));
 }
예제 #7
0
 public override async Task BackupAsync(Guid appId, BackupWriter writer)
 {
     await WriteUsersAsync(writer);
     await WriteSettingsAsync(writer, appId);
 }
예제 #8
0
        public override async Task BackupEventAsync(Envelope <IEvent> @event, Guid appId, BackupWriter writer)
        {
            if (@event.Payload is AppContributorAssigned appContributorAssigned)
            {
                var userId = appContributorAssigned.ContributorId;

                if (!usersWithEmail.ContainsKey(userId))
                {
                    var user = await userResolver.FindByIdOrEmailAsync(userId);

                    if (user != null)
                    {
                        usersWithEmail.Add(userId, user.Email);
                    }
                }
            }
        }
예제 #9
0
        private async Task WriteSettingsAsync(BackupWriter writer, Guid appId)
        {
            var json = await grainFactory.GetGrain <IAppUISettingsGrain>(appId).GetAsync();

            await writer.WriteJsonAsync(SettingsFile, json);
        }
예제 #10
0
        private async Task WriteUsersAsync(BackupWriter writer)
        {
            var json = usersWithEmail;

            await writer.WriteJsonAsync(UsersFile, json);
        }
예제 #11
0
        private async Task WriteUsersAsync(BackupWriter writer)
        {
            var json = JObject.FromObject(usersWithEmail);

            await writer.WriteJsonAsync(UsersFile, json);
        }
예제 #12
0
        private async Task WriteSettingsAsync(BackupWriter writer, Guid appId)
        {
            var json = await appUISettings.GetAsync(appId, null);

            await writer.WriteJsonAsync(SettingsFile, json);
        }