public Configuration Build(ScoopBoxOptions options) { List <string> commands = this.commandBuilder.Build(options); MappedFolders mappedFolders = this.mappedFoldersBuilder.Build(options); Configuration configuration = new Configuration(options, commands, mappedFolders); return(configuration); }
/// <summary> /// Adds a folder to be shimmed into the Docker container. /// </summary> /// <param name="folder">The folder.</param> public void AddMappedFolder(DockerShimFolder folder) { Covenant.Requires <ArgumentNullException>(folder != null); if (!Directory.Exists(folder.ClientFolderPath)) { throw new FileNotFoundException($"Directory [{folder.ClientFolderPath}] does not exist."); } MappedFolders.Add(folder); }
/// <summary> /// Converts to a <see cref="XElement"/> instance. /// </summary> /// <param name="includeExtraMetada">Include or not extra metadata.</param> /// <returns>A <see cref="XElement"/> instance.</returns> public new XElement ToXElement(bool includeExtraMetada = false) { // Metadata List <XAttribute> metadatas = new List <XAttribute> { new XAttribute(nameof(Name), Name), new XAttribute(nameof(CreatedAt), CreatedAt.ToString("yyyy-MM-dd HH:mm:ss zzz")) }; if (includeExtraMetada) { metadatas.Add(new XAttribute(nameof(UUID), UUID)); metadatas.Add(new XAttribute(nameof(LastLaunchedAt), LastLaunchedAt.ToString("yyyy-MM-dd HH:mm:ss zzz"))); } return(new XElement(RootNodeName, // Metadata metadatas.ToArray(), //VGPU new XElement(nameof(VGpu), VGpu.ToString()), // Networking new XElement(nameof(Networking), Networking.ToString()), // Mapped Folders new XElement(nameof(MappedFolders), MappedFolders.Select(mf => new XElement(nameof(MappedFolder), new XElement(nameof(mf.HostFolder), mf.HostFolder), new XElement(nameof(mf.ReadOnly), mf.ReadOnly.ToString().ToLower()) ) ) ), // Logon Command new XElement(nameof(LogonCommand), new XElement(nameof(LogonCommand.Command), LogonCommand.Command) ), // Audio Input new XElement(nameof(AudioInput), AudioInput.ToString()), // Video Input new XElement(nameof(VideoInput), VideoInput.ToString()), // Protected Client new XElement(nameof(ProtectedClient), ProtectedClient.ToString()), // Printer Redirection new XElement(nameof(PrinterRedirection), PrinterRedirection.ToString()), // Clipboard Redirection new XElement(nameof(ClipboardRedirection), ClipboardRedirection.ToString()), // Memory in MB new XElement(nameof(MemoryInMB), new XElement(nameof(MemoryInMB.AmountInMB), MemoryInMB.AmountInMB.ToString()), new XElement(nameof(MemoryInMB.Enabled), MemoryInMB.Enabled.ToString()) ) )); }
public MappedFolders Build(ScoopBoxOptions options) { MappedFolders mappedFolders = new MappedFolders { MappedFolder = new List <MappedFolder>() }; mappedFolders.MappedFolder.Add(new MappedFolder() { HostFolder = options.UserFilesPath, ReadOnly = Enum.GetName(typeof(ReadOnly), ReadOnly.False).ToLower() }); return(mappedFolders); }
/// <summary> /// Converts to a <see cref="XElement"/> instance. /// </summary> /// <param name="includeExtraMetada">Include or not extra metadata.</param> /// <returns>A <see cref="XElement"/> instance.</returns> public virtual XElement ToXElement(bool includeExtraMetada = false) => new XElement(RootNodeName, //VGPU new XElement(nameof(VGpu), VGpu.ToString()), // Networking new XElement(nameof(Networking), Networking.ToString()), // Mapped Folders new XElement(nameof(MappedFolders), MappedFolders.Select(mf => new XElement(nameof(MappedFolder), new XElement(nameof(mf.HostFolder), mf.HostFolder), new XElement(nameof(mf.ReadOnly), mf.ReadOnly.ToString().ToLower()) ) ) ), // Logon Command new XElement(nameof(LogonCommand), new XElement(nameof(LogonCommand.Command), LogonCommand.Command) ) );
/// <summary> /// Converts to a <see cref="XElement"/> instance. /// </summary> /// <param name="includeExtraMetada">Include or not extra metadata.</param> /// <returns>A <see cref="XElement"/> instance.</returns> public XElement ToXElement(bool includeExtraMetada = false) { List <XElement> nodes = new List <XElement> { //VGPU new XElement(nameof(VGpu), VGpu.ToString()), // Networking new XElement(nameof(Networking), Networking.ToString()), // Mapped Folders new XElement(nameof(MappedFolders), MappedFolders.Select(mf => new XElement(nameof(MappedFolder), new XElement(nameof(mf.HostFolder), mf.HostFolder), new XElement(nameof(mf.ReadOnly), mf.ReadOnly.ToString().ToLower()) ) ) ), // Logon Command new XElement(nameof(LogonCommand), new XElement(nameof(LogonCommand.Command), LogonCommand.Command) ), // Audio Input new XElement(nameof(AudioInput), AudioInput.ToString()), // Video Input new XElement(nameof(VideoInput), VideoInput.ToString()), // Protected Client new XElement(nameof(ProtectedClient), ProtectedClient.ToString()), // Printer Redirection new XElement(nameof(PrinterRedirection), PrinterRedirection.ToString()), // Clipboard Redirection new XElement(nameof(ClipboardRedirection), ClipboardRedirection.ToString()), }; if (MemoryInMB.Enabled && MemoryInMB.AmountInMB > 0) { // Memory in MB nodes.Add(new XElement(nameof(MemoryInMB), MemoryInMB.AmountInMB.ToString())); } return(new XElement(RootNodeName, nodes)); }
/// <summary> /// Converts to a <see cref="XElement"/> instance. /// </summary> /// <param name="includeExtraMetada">Include or not extra metadata.</param> /// <returns>A <see cref="XElement"/> instance.</returns> public override XElement ToXElement(bool includeExtraMetada = false) { // Metadata List <XAttribute> metadatas = new List <XAttribute> { new XAttribute(nameof(Name), Name), new XAttribute(nameof(CreatedAt), CreatedAt.ToString("yyyy-MM-dd HH:mm:ss zzz")) }; if (includeExtraMetada) { metadatas.Add(new XAttribute(nameof(UUID), UUID)); metadatas.Add(new XAttribute(nameof(LastLaunchedAt), LastLaunchedAt.ToString("yyyy-MM-dd HH:mm:ss zzz"))); } return(new XElement(RootNodeName, // Metadata metadatas.ToArray(), //VGPU new XElement(nameof(VGpu), VGpu.ToString()), // Networking new XElement(nameof(Networking), Networking.ToString()), // Mapped Folders new XElement(nameof(MappedFolders), MappedFolders.Select(mf => new XElement(nameof(MappedFolder), new XElement(nameof(mf.HostFolder), mf.HostFolder), new XElement(nameof(mf.ReadOnly), mf.ReadOnly.ToString().ToLower()) ) ) ), // Logon Command new XElement(nameof(LogonCommand), new XElement(nameof(LogonCommand.Command), LogonCommand.Command) ) )); }