private async Task <QueueItemProcessResult> ProcessMessagesAsync(QueueRequest request, IServiceBusClient sbSender, CancellationToken token) { try { // update user UserEntity dbUser = await adapterDocumentDbDependencyClient.GetUser(request.Id); dbUser.Processed = true; await adapterDocumentDbDependencyClient.UpdateUser(dbUser); await sbSenderClient.SendAsync(request); return(QueueItemProcessResult.Complete); } catch (Exception ex) { LoggingContext.CreateLogger <ServiceBusDependencyReceiver>() .LogError( ex, "{queue} item processing unhandled exception for type={type}, id={messageId}", sbReceiverClient.QueueName, request.GetType().Name, request.Id); return(QueueItemProcessResult.Retry); } }
public async Task <User> GetUser(string id) { if (!Guid.TryParse(id, out Guid guid)) { UserResponse user = await httpDependencyClient.GetUser(id); return(new User { Id = user.Id, Name = user.Name }); } else { UserEntity user = await documentDbDependencyClient.GetUser(id); return(new User { Id = user.Id, Name = user.Name, Processed = user.Processed }); } }