public static CreateBindingResponse Unmarshall(UnmarshallerContext context)
        {
            CreateBindingResponse createBindingResponse = new CreateBindingResponse();

            createBindingResponse.HttpResponse = context.HttpResponse;
            createBindingResponse.RequestId    = context.StringValue("CreateBinding.RequestId");

            return(createBindingResponse);
        }
            public void ReturnsCorrectUrlForSysLog()
            {
                var configuration   = Substitute.For <IConfiguration>();
                var databaseBuilder = Substitute.For <IDatabaseBuilder>();

                databaseBuilder.CreateBinding(Arg.Any <string>(), Arg.Any <string>(), Arg.Any <Plan>()).ReturnsForAnyArgs(new Credentials());
                configuration.GetAppSetting(Arg.Any <string>()).Returns("logurl");
                var service = new MsSqlCloudFoundryService(configuration, databaseBuilder);
                var request = new CreateBindingRequest {
                    PlanId = MsSqlService.FreePlanId.ToString(), InstanceId = Guid.NewGuid().ToString(), BindingId = Guid.NewGuid().ToString()
                };

                CreateBindingResponse response = service.CreateBinding(request);

                Assert.Equal("logurl", response.LogUrl);
            }
        public IHttpActionResult Bind(string instanceId, string bindingId, [FromBody] CreateBindingRequest request)
        {
            ICloudFoundryService service;

            if (!servicesCatalog.Services.TryGetValue(request.ServiceId, out service))
            {
                return(BadRequest("This broker does not support the requested service."));
            }

            request.BindingId  = bindingId;
            request.InstanceId = instanceId;

            try
            {
                CreateBindingResponse response = service.CreateBinding(request);
                return(Ok(response));
            }
            catch (InvalidOperationException)
            {
                return(Conflict());
            }
        }