private static async Task SetBO2_JAsync(MyBO bo, ISession s, TBO2_J value, Action <MyRef2, int?> set, CancellationToken cancellationToken = default(CancellationToken)) { switch (value) { case TBO2_J.Null: bo.BO2 = null; break; case TBO2_J.ValueNull: set(await(bo.GetOrCreateBO2Async(s, cancellationToken)), null); break; case TBO2_J.Zero: set(await(bo.GetOrCreateBO2Async(s, cancellationToken)), 0); break; case TBO2_J.One: set(await(bo.GetOrCreateBO2Async(s, cancellationToken)), 1); break; default: throw new Exception("Value " + value + " not handled in code"); } }