Пример #1
0
        protected T CallClient <T>(Func <T> func, object targetObject) where T : AzureOperationResponse
        {
            T response = default(T);

            try
            {
                response = func();
            }
            catch (Exception e)
            {
                // Handle if this or the inner exception is of type CloudException
                CloudException ce = e as CloudException;
                ErrorRecord    er = null;

                if (ce == null)
                {
                    ce = e.InnerException as CloudException;
                }

                if (ce != null)
                {
                    HandleCloudException(targetObject, ce);
                }
                else
                {
                    er = RemoteAppCollectionErrorState.CreateErrorRecordFromException(e, String.Empty, targetObject, ErrorCategory.NotSpecified);

                    ThrowTerminatingError(er);
                }
            }

            return(response);
        }
Пример #2
0
        protected void RegisterSubscriptionWithRdfeForRemoteApp()
        {
            System.Threading.CancellationToken cancelationToken = new System.Threading.CancellationToken();

            // register the subscription with RDFE to use the RemoteApp resource
            try
            {
                AzureOperationResponse azureOperationResponse = MgmtClient.Subscriptions.RegisterResourceAsync(Client.RdfeNamespace, cancelationToken).Result;
            }
            catch (Exception e)
            {
                // Handle if this or the inner exception is of type CloudException
                CloudException ce = e as CloudException;

                if (ce == null)
                {
                    ce = e.InnerException as CloudException;
                }

                if (ce != null)
                {
                    // ignore the 'ConflictError' which is returned if the subscription is already registered for the resource
                    if (ce.Error.Code != "ConflictError")
                    {
                        HandleCloudException(MgmtClient.Subscriptions, ce);
                    }
                }
                else
                {
                    ErrorRecord er = RemoteAppCollectionErrorState.CreateErrorRecordFromException(e, String.Empty, MgmtClient.Subscriptions, ErrorCategory.NotSpecified);

                    ThrowTerminatingError(er);
                }
            }
        }
        private void WriteUsageDetails(CollectionUsageDetailsResult detailsUsage)
        {
            //
            // Display the content pointed to by the returned URI
            //
            WebResponse response = null;

            WebRequest request = WebRequest.Create(detailsUsage.UsageDetails.SasUri);

            try
            {
                response = (HttpWebResponse)request.GetResponse();
            }
            catch (Exception e)
            {
                ErrorRecord error = RemoteAppCollectionErrorState.CreateErrorRecordFromException(e, String.Empty, Client.Collections, ErrorCategory.InvalidResult);
                WriteError(error);
            }

            using (Stream dataStream = response.GetResponseStream())
            {
                using (StreamReader reader = new StreamReader(dataStream))
                {
                    String csvContent = reader.ReadToEnd();
                    WriteObject(csvContent);
                }
            }
        }
Пример #4
0
        internal static CloudRecordState CreateErrorStateFromCloudException(CloudException e, string errorId, object targetObject)
        {
            ErrorRecordState state       = CreateErrorStateFromHttpStatusCode(e.Response.StatusCode);
            ErrorRecord      er          = RemoteAppCollectionErrorState.CreateErrorRecordFromException(e, errorId, targetObject, state.Category);
            CloudRecordState cloudRecord = new CloudRecordState()
            {
                state = state,
                er    = er
            };

            return(cloudRecord);
        }