using System.Threading.Tasks;
using System.Collections.Generic;
static IServiceBusMessageReceiver _serviceBusQueueReceiver;
public static void Main()
Console.WriteLine("Hello World");
static Task<bool> WriteToSalesforceCacheAsync(List<ILockableSalesforceRecord> eventBusRecords, CancellationToken cancellationToken) => Task.FromResult(true);
static async Task WriteToSalesforceCacheAsync(IQueueConfig queueConfig, CancellationToken cancellationToken)
await _serviceBusQueueReceiver.DoWithAsync<ILockableSalesforceRecord>(queueConfig, async records =>
return await WriteToSalesforceCacheAsync(records, cancellationToken)
public interface ILockable
public string LockToken { get; set; }
interface ILockableSalesforceRecord : ILockable, ISalesforceRecordable
public interface IServiceBusMessageReceiver
Task DoWithAsync<T>(IQueueConfig queueConfig, Func<List<T>, Task<bool>> function)
interface ISalesforceRecordable{}
public interface IQueueConfig{}