public IActionResult RequestVm([FromBody] VmProvisioningRequest requestDetails)
        {
            if (requestDetails == null)
            {
                return(BadRequest());
            }

            using (var httpClient = new HttpClient())
            {
                var request = new
                {
                    VmSize    = requestDetails.Inputs.VmSize,
                    Requestor = requestDetails.Inputs.Requestor
                };

                var jsonRequest     = JsonConvert.SerializeObject(request);
                var requestContent  = new StringContent(jsonRequest, Encoding.UTF8, "application/json");
                var response        = httpClient.PostAsync("http://provisioningportal:5000/api/requestvm", requestContent).Result;
                var responseContent = response.Content.ReadAsStringAsync().Result;

                dynamic deserializedReponse = JsonConvert.DeserializeObject(responseContent);
                var     provisioningResult  = new VmProvisioningResponse((Guid)deserializedReponse.requestId);

                return(new ObjectResult(provisioningResult));
            }
        }
        public IActionResult RequestVm([FromBody] Models.VmProvisioningRequest requestDetails)
        {
            if (requestDetails == null)
            {
                return(BadRequest());
            }

            var provisioningRequest = new Persistence.VmProvisioningRequest(requestDetails.Requestor, requestDetails.VmSize);

            _store.Register(provisioningRequest);

            IJobDetail requestFulfillmentJob = JobBuilder.Create <FulfillRequestJob>()
                                               .WithIdentity("vmrequest_" + provisioningRequest.RequestId.ToString(), "vmprovisioning")
                                               .UsingJobData("requestId", provisioningRequest.RequestId.ToString())
                                               .Build();

            ITrigger requestFulfillmentJobTrigger = TriggerBuilder.Create()
                                                    .WithIdentity("requestFulFillmentJobTrigger_" + provisioningRequest.RequestId.ToString(), "vmprovisioning")
                                                    .StartNow()
                                                    .Build();

            _scheduler.ScheduleJob(requestFulfillmentJob, requestFulfillmentJobTrigger);

            var provisioningResult = new VmProvisioningResponse
            {
                RequestId = provisioningRequest.RequestId,
                Status    = provisioningRequest.Status
            };

            return(new ObjectResult(provisioningResult));
        }