public async Task <IActionResult> PostServiceRestriction([FromBody] ServiceRestriction serviceRestriction) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.ServiceRestriction.Add(serviceRestriction); await _context.SaveChangesAsync(); return(CreatedAtAction("GetServiceRestriction", new { id = serviceRestriction.ServiceRestrictionId }, serviceRestriction)); }
public async void CreateAServiceOnAkamai_UsingDefaults() { Trace.WriteLine("Looking for a CDN flavor provided by Akamai..."); var flavors = await _cdnService.ListFlavorsAsync(); var flavor = flavors.FirstOrDefault(x => x.Providers.Any(p => string.Equals(p.Name, "Akamai", StringComparison.OrdinalIgnoreCase))); Assert.NotNull(flavor); var akamaiFlavor = flavor.Id; Trace.WriteLine(string.Format("Found the {0} flavor", akamaiFlavor)); Trace.WriteLine("Creating a CDN service using defaults for anything I can omit..."); var domains = new[] { new ServiceDomain("mirror.example.com") }; var origins = new[] { new ServiceOrigin("example.com") }; var serviceDefinition = new ServiceDefinition("ci-test", akamaiFlavor, domains, origins); var serviceId = await _cdnService.CreateServiceAsync(serviceDefinition); Trace.WriteLine(string.Format("Service was created: {0}", serviceId)); try { Trace.WriteLine("Waiting for the service to be deployed..."); var service = await _cdnService.WaitForServiceDeployedAsync(serviceId, progress : new Progress <bool>(x => Trace.WriteLine("..."))); Trace.WriteLine("Verifying service matches the requested definition..."); Assert.Equal("ci-test", service.Name); Assert.Equal(serviceDefinition.FlavorId, service.FlavorId); Assert.Equal(serviceDefinition.Origins.Count, service.Origins.Count()); Assert.Equal(serviceDefinition.Origins.First().Origin, service.Origins.First().Origin); Assert.Equal(serviceDefinition.Domains.Count, service.Domains.Count()); Assert.Equal(serviceDefinition.Domains.First().Domain, service.Domains.First().Domain); Trace.WriteLine("Updating the service..."); var patch = new JsonPatchDocument <ServiceDefinition>(); patch.Replace(x => x.Name, "ci-test2"); var intranetOnly = new ServiceRestriction("intranet", new[] { new ServiceRestrictionRule("intranet", "intranet.example.com") }); patch.Add(x => x.Restrictions, intranetOnly, 0); await _cdnService.UpdateServiceAsync(serviceId, patch); Trace.WriteLine("Waiting for the service changes to be deployed..."); service = await _cdnService.WaitForServiceDeployedAsync(serviceId, progress : new Progress <bool>(x => Trace.WriteLine("..."))); Trace.WriteLine("Verifying service matches updated definition..."); Assert.Equal("ci-test2", service.Name); Assert.Equal(JsonConvert.SerializeObject(intranetOnly), JsonConvert.SerializeObject(service.Restrictions.First())); Trace.WriteLine("Purging all assets on service"); await _cdnService.PurgeCachedAssetsAsync(serviceId); } finally { Trace.WriteLine("Cleaning up any test data..."); Trace.WriteLine("Removing the service..."); _cdnService.DeleteService(serviceId); _cdnService.WaitForServiceDeleted(serviceId); Trace.WriteLine("The service was cleaned up sucessfully."); } }
public async Task <IActionResult> PutServiceRestriction([FromRoute] short id, [FromBody] ServiceRestriction serviceRestriction) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != serviceRestriction.ServiceRestrictionId) { return(BadRequest()); } _context.Entry(serviceRestriction).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ServiceRestrictionExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }