public static void ExecuteAppOnlyClientContextForSPAppWebQuery <TContext>(ISPContext spContext, Func <TContext, Action> action) where TContext : ClientContext { if (action == null) { throw new ArgumentNullException(nameof(action)); } TContext clientContext = (TContext)spContext?.CreateAppOnlyClientContextForSPAppWeb(); if (clientContext != null) { using (clientContext) { Action result = action.Invoke(clientContext); clientContext.ExecuteQuery(); result?.Invoke(); } } }