private static void WriteDevice(string environment, LiveDevice device)
        {
            var deviceFile = DeviceIdManager.GetDeviceFile(environment);

            if (deviceFile.Directory != null && !deviceFile.Directory.Exists)
            {
                deviceFile.Directory.Create();
            }
            using (var fileStream = deviceFile.Open(FileMode.CreateNew, FileAccess.Write, FileShare.None))
            {
                DeviceIdManager.Serialize <LiveDevice>(fileStream, device);
            }
        }
        private static DeviceRegistrationResponse ExecuteRegistrationRequest(string url, DeviceRegistrationRequest registrationRequest)
        {
            var webRequest = WebRequest.Create(url);

            webRequest.ContentType = "application/soap+xml; charset=UTF-8";
            webRequest.Method      = "POST";
            webRequest.Timeout     = 180000;
            using (var requestStream = webRequest.GetRequestStream())
            {
                DeviceIdManager.Serialize <DeviceRegistrationRequest>(requestStream, registrationRequest);
            }
            DeviceRegistrationResponse result;

            try
            {
                using (var response = webRequest.GetResponse())
                {
                    using (var responseStream = response.GetResponseStream())
                    {
                        result = DeviceIdManager.Deserialize <DeviceRegistrationResponse>(responseStream);
                    }
                }
            }
            catch (WebException ex)
            {
                if (ex.Response != null)
                {
                    using (var responseStream2 = ex.Response.GetResponseStream())
                    {
                        return(DeviceIdManager.Deserialize <DeviceRegistrationResponse>(responseStream2));
                    }
                }
                throw;
            }
            return(result);
        }