Exemplo n.º 1
0
        public async System.Threading.Tasks.Task DeleteAsync(Entity entity, CancellationToken cancellationToken = default)
        {
            var deleteRequest  = new deleteRequest(_autotaskIntegrations, new[] { entity });
            var deleteResponse = await(await GetATWSSoapClientAsync(cancellationToken).ConfigureAwait(false))
                                 .deleteAsync(deleteRequest)
                                 .WithCancellation(cancellationToken)
                                 .ConfigureAwait(false);
            var errorCount = deleteResponse.deleteResult.Errors.Length;

            if (errorCount > 0)
            {
                _logger.LogError($"There was an error deleting the entity. {errorCount} errors occurred.");
                for (var errorNum = 0; errorNum < errorCount; errorNum++)
                {
                    _logger.LogError($"Error {errorNum + 1}: {deleteResponse.deleteResult.Errors[errorNum].Message}");
                }
                _logger.LogError("Entity: " + JsonConvert.SerializeObject(entity));
                throw new AutoTaskApiException(BuildExceptionMessage($"Errors occurred during deletion of the AutoTask entity: {string.Join(";", deleteResponse.deleteResult.Errors.Select(e => e.Message))}"));
            }

            if (deleteResponse.deleteResult.Errors.Length != 0)
            {
                throw new AutoTaskApiException(BuildExceptionMessage($"Received the following error(s) while deleting: {string.Join("; ", deleteResponse.deleteResult.Errors.Select(e => e.Message))}."));
            }
            _logger.LogDebug($"Successfully deleted entity with Id: {entity?.id.ToString() ?? "UNKNOWN!"}");
        }
        public virtual async System.Threading.Tasks.Task <WriteResponse> deleteAsync(BaseRef baseRef, DeletionReason deletionReason)
        {
            var request = new deleteRequest()
            {
                passport        = passport,
                tokenPassport   = tokenPassport,
                applicationInfo = applicationInfo,
                partnerInfo     = partnerInfo,
                preferences     = preferences,
                baseRef         = baseRef,
                deletionReason  = deletionReason,
            };
            var response = await((NetSuitePortType)this).deleteAsync(request);

            return(response.writeResponse);
        }