Ejemplo n.º 1
0
        private async Task <IRemoteFolder> GetLastUploadFolder(IRemoteClient client, Server server, Deployment deployment)
        {
            string uploadPath = server.Paths.Deploy;

            if (!await client.FolderExists(uploadPath))
            {
                return(null);
            }

            IRemoteFolder folder = await client.GetFolder(uploadPath);

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

            foreach (string dateFolderPath in folder.SubFolders.Reverse().Select(x => x.Path))
            {
                IRemoteFolder dateFolder = await GetFolder(client, dateFolderPath);

                IRemoteFolder uploadFolder = dateFolder.SubFolders.Reverse()
                                             .FirstOrDefault(x => x.Name.StartsWith(deployment.Name, StringComparison.OrdinalIgnoreCase));
                if (uploadFolder != null)
                {
                    return(uploadFolder);
                }
            }

            return(null);
        }
Ejemplo n.º 2
0
        private async Task <string> GetVersionedRemotePath(IRemoteClient client, Deployment deployment, string root)
        {
            string backupPath        = $"{root}{client.PathSeparator}{DateTime.Today:yyyyMMdd}{client.PathSeparator}{deployment.Name}";
            string backupPathVersion = backupPath;
            int    version           = 1;

            while (await client.FolderExists(backupPathVersion))
            {
                backupPathVersion = $"{backupPath} ({version++})";
            }

            return(backupPathVersion);
        }