public async Task <Droplet> CreateDropletAsync(int userId, CreateDropletRequest request)
        {
            // check key name, or all keys
            var result = await _apiClient.CreateDroplet(request);

            var droplet = new Droplet(result);
            var size    = new Size(result.Size);

            var regions = new List <Region>();

            foreach (string region in result.Size.Regions)
            {
                regions.Add(new Region()
                {
                    Name = region
                });
            }
            var tags = new List <Tag>();

            foreach (string tag in result.Tags)
            {
                tags.Add(new Tag()
                {
                    Name = tag
                });
            }

            await UpdateTags(userId, tags);
            await UpdateRegions(userId, regions);

            return(await CreateDropletRecord(userId, droplet, size, tags, regions));
        }
Example #2
0
        public async Task <Droplet> CreateDropletAsync(int userId, CreateDropletRequest request)
        {
            // check key name, or all keys
            var result = await _apiClient.CreateDroplet(request);

            var apiDroplet = _mapper.Map <Droplet>(result);
            var apiSize    = _mapper.Map <Size>(result.Size);
            var apiReg     = _mapper.Map <List <Region> >(result.Size.Regions);
            var apiTags    = _mapper.Map <List <Tag> >(result.Tags);

            await UpdateTags(userId, apiTags);
            await UpdateRegions(userId, apiReg);

            return(await CreateDropletRecord(userId, apiDroplet, apiSize, apiTags, apiReg));
        }
Example #3
0
        public async Task <Droplet> CreateDroplet(CreateDropletRequest request)
        {
            var doRequest = _mapper.Map <CreateDropletRequest, DigitalOcean.API.Models.Requests.Droplet>(request);

            if (request.SshKeys == null)
            {
                var keys = await _doClient.Keys.GetAll();

                if (keys != null)
                {
                    doRequest.SshKeys = keys.Select(t => (object)t.Id).ToList();
                }
            }

            var result = await _doClient.Droplets.Create(doRequest);

            return(result);
        }
 public Task <Droplet> CreateDroplet(CreateDropletRequest request) => Task.FromResult(DropletResponse);