public async Task <string> UpdateTemplateAsync(ApiTemplateDescriptor template, string versionId) { var server = string.Empty; var requestId = string.Empty; var stringResponse = string.Empty; var templateId = template.Id.ToString(); var methodUri = new Uri(_templateUri, templateId); try { using (var content = new StringContent(JsonConvert.SerializeObject(template, ApiSerializerSettings.Default), Encoding.UTF8, ContentType.Json)) { using (var request = new HttpRequestMessage(HttpMethod.Put, methodUri)) { request.Content = content; request.Headers.IfMatch.Add(new EntityTagHeaderValue($"\"{versionId}\"")); using (var response = await _authorizedHttpClient.SendAsync(request)) { (stringResponse, server, requestId) = await HandleResponse(response); response.EnsureSuccessStatusCode(); var newVersion = response.Headers.ETag.Tag.Trim('"'); _logger.LogInformation( "Updated template {id} got new version: {version} (old version {oldVersion})", templateId, newVersion, versionId); return(newVersion); } } } } catch (HttpRequestException ex) { _logger.LogError( ex, "Request {requestId} to server {server} error while updating template {id} with response: {response}", requestId, server, templateId, stringResponse); throw; } catch (Exception ex) { _logger.LogError(ex, "Template {id} update error", templateId); throw; } }
public async Task <string> CreateTemplateAsync(long id, ApiTemplateDescriptor template) { var methodUri = new Uri(_templateUri, id.ToString()); var server = string.Empty; var requestId = string.Empty; var stringResponse = string.Empty; try { using (var content = new StringContent(JsonConvert.SerializeObject(template, ApiSerializerSettings.Default), Encoding.UTF8, ContentType.Json)) { using (var response = await _authorizedHttpClient.PostAsync(methodUri, content)) { (stringResponse, server, requestId) = await HandleResponse(response); response.EnsureSuccessStatusCode(); var newVersion = response.Headers.ETag.Tag.Trim('"'); _logger.LogInformation("Created template {id} got version: {version}", id, newVersion); return(newVersion); } } } catch (HttpRequestException ex) { _logger.LogError( ex, "Request {requestId} to server {server} error while creating template {id} with response: {response}", requestId, server, id, stringResponse); throw; } catch (Exception ex) { _logger.LogError(ex, "Template {id} creating error", id); throw; } }