in src/Services/Infection/Infection.WebApi/Services/InfectionService.cs [146:175]
public async Task<OperationResult> AcceptStatusAsync(string ownerToken, AcceptRequest acceptRequest)
{
AcceptChangeResponse statusChangeResponse =
statusChangeRepository.TryAcceptChangeRequest(acceptRequest.MedicalCode, expirationPeriodInHours);
switch (statusChangeResponse.Result)
{
case AcceptChangeResult.MissingCode:
case AcceptChangeResult.ReusedCode:
return OperationResult.CreateInstance(StatusCodes.Status404NotFound, "Medical code not found or already taken.");
case AcceptChangeResult.ExpiredCode:
return OperationResult.CreateInstance(StatusCodes.Status406NotAcceptable, "Medical code is expired.");
}
// Try upload all meetings to blob
await blobStorageService.UploadMeetingsToContainer(ownerToken, acceptRequest);
// Mark the change request as accepted
var userStatus = new UserStateStatus
{
UserToken = ownerToken,
StatusId = statusChangeResponse.StatusId,
StatusChangedOn = statusChangeResponse.StatusChangedOn
};
// Update user status
userRepository.SetUserStatus(userStatus);
return OperationResult.CreateInstance(StatusCodes.Status200OK);
}