in src/Covi/Features/ApplyCode/Services/UserStatusChangeService.cs [62:98]
public async Task<UserProfileResponse> ApplyStatusChangeCode(string code)
{
try
{
code = code.ToUpperInvariant();
_connectivityService.CheckConnection();
var meetings = ShouldShareDeviceContacts(code)
? await _meetingsService.GetMeetingsAsync().ConfigureAwait(false)
: new List<Meeting>(0);
var request = new AcceptRequest(code, meetings.ToList());
var response = await _platformClient.Endpoints.AcceptStatusChangeAsync(request).ConfigureAwait(false);
if (response.Metadata != null)
{
await _metadataContainer.SetAsync(response.Metadata).ConfigureAwait(false);
}
if (response.UserProfile != null)
{
await _userProfileContainer.SetAsync(response.UserProfile).ConfigureAwait(false);
}
return response;
}
catch (Exception ex)
{
_logger.LogError(ex, "Failed to apply the code.");
if (_serviceErrorHandler.TryHandle(ex, out var generatedException))
{
generatedException.Rethrow();
}
throw;
}
}