in src/Relecloud.Web.CallCenter/Services/RelecloudApiServices/RelecloudApiConcertService.cs [31:62]
public async Task<CreateResult> CreateConcertAsync(Concert newConcert)
{
await PrepareAuthenticatedClient();
var httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, "api/Concert");
httpRequestMessage.Content = JsonContent.Create(newConcert);
var httpResponseMessage = await this.httpClient.SendAsync(httpRequestMessage);
var responseMessage = await httpResponseMessage.Content.ReadAsStringAsync();
if (httpResponseMessage.StatusCode == HttpStatusCode.BadRequest)
{
var failedCreateOperation = JsonSerializer.Deserialize<CreateResult>(responseMessage, RelecloudApiConfiguration.GetSerializerOptions());
return failedCreateOperation ?? throw new InvalidOperationException("Failed to parse response");
}
else if (httpResponseMessage.StatusCode != HttpStatusCode.Created)
{
throw new InvalidOperationException(nameof(CreateConcertAsync), new WebException(responseMessage));
}
var returnedConcert = JsonSerializer.Deserialize<Concert>(responseMessage, RelecloudApiConfiguration.GetSerializerOptions());
if (returnedConcert == null)
{
throw new InvalidOperationException("Concert was not created successfully");
}
return new CreateResult
{
Success = true,
NewId = returnedConcert.Id
};
}