예제 #1
0
        public async Task <Entity> CreateAsync(Entity entity)
        {
            var createRequest  = new createRequest(_autotaskIntegrations, new[] { entity });
            var createResponse = await _autoTaskClient.createAsync(createRequest).ConfigureAwait(false);

            var errorCount = createResponse.createResult.Errors.Length;

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

            var createdEntity = createResponse?.createResult?.EntityResults?.FirstOrDefault();

            _logger.LogDebug($"Successfully created entity with Id: {createdEntity?.id.ToString() ?? "UNKNOWN!"}");
            if (createdEntity == null)
            {
                throw new AutoTaskApiException(BuildExceptionMessage("Did not get a result back after creating the AutoTask entity."));
            }
            return(createdEntity);
        }