custom/csharp/RestErrorHandler.cs
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information. using System.Management.Automation; using System.Net.Http; using System.Threading.Tasks; using Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Models.Api20230801; namespace Microsoft.Azure.PowerShell.Cmdlets.ResourceMover.Cmdlets { internal static class CmdletRestExtension { public static void WriteError(this Cmdlet cmdlet, HttpResponseMessage responseMessage, Task<ICloudError> errorResponseTask, ref Task<bool> returnNow) { var response = errorResponseTask.ConfigureAwait(false).GetAwaiter().GetResult(); var errorString = string.Format("ErrorCode: {0}, Message: {1}", response.Code, response.Message); errorString+= System.Environment.NewLine; if (response?.Detail != null && response?.Detail?.Length != 0) { var errors = response.Detail; foreach(var error in errors) { errorString += string.Format("ErrorCode: {0}, Message: {1}", error.Code, error.Message); errorString+= System.Environment.NewLine; } } cmdlet.WriteError(new ErrorRecord(new System.Exception(), null, ErrorCategory.InvalidOperation, null) { ErrorDetails = new ErrorDetails(errorString) { RecommendedAction = string.Empty } }); returnNow = Task.FromResult(true); } } } |