protected static async Task <bool> ProcessMessages(IQueue <T> queue, IEnumerable <T> items, Func <T, Task> action) { if (queue == null) { throw new ArgumentNullException(nameof(queue)); } if (action == null) { throw new ArgumentNullException(nameof(action)); } if (items == null) { return(false); } foreach (var item in items) { var success = false; try { await action(item); success = true; } catch (Exception ex) { Resgrid.Framework.Logging.LogException(ex); queue.AddItem(item); success = false; } finally { if (success) { //queue.DeleteItem(message); } } } return(true); }
protected static void ProcessMessages(IQueue <T> queue, IEnumerable <T> items, Action <T> action) { if (queue == null) { throw new ArgumentNullException("queue"); } if (action == null) { throw new ArgumentNullException("action"); } if (items == null) { return; } foreach (var item in items) { var success = false; try { action(item); success = true; } catch (Exception ex) { Resgrid.Framework.Logging.LogException(ex); queue.AddItem(item); success = false; } finally { if (success) { //queue.DeleteItem(message); } } } }