示例#1
0
        public async Task DestroySandbox(Guid userId, Guid sandboxId)
        {
            User user = await this.CreateUserIfNotExisted(userId);

            Sandbox sandbox = user.Sandboxes.FirstOrDefault(c => c.SandboxId.Equals(sandboxId));

            if (sandbox == null)
            {
                throw new KeyNotFoundException();
            }

            try
            {
                await docker.DeleteContainer(sandbox.DockerContainerId);
            }
            finally
            {
                Docker.DotNet.Models.ContainerListResponse response = await this.docker.GetContainer(sandbox.DockerContainerId);

                if (response == null)
                {
                    user.Sandboxes.Remove(sandbox);
                    await context.SaveChangesAsync();
                }
            }
        }
示例#2
0
 /// <summary>
 /// Constructs a new <code>Container</code> object from an existing
 /// <code>Docker.DotNet.Models.ContainerListResponse</code> object.
 /// </summary>
 /// <param name="container">A container list response object.</param>
 /// <returns>A new container object.</returns>
 public static Container From(Docker.DotNet.Models.ContainerListResponse container)
 {
     return(new Container
     {
         Names = container.Names,
         Id = container.ID,
         Image = container.Image,
         Created = container.Created,
         Ports = container.Ports.Select(Port.From).ToList(),
         State = container.State,
         Mounts = container.Mounts.Select(MountPoint.From).ToList()
     });
 }