public void ConfirmAction(Type action, object payload, ActionConfirmationCallback successCallback, ActionConfirmationCallback failureCallback = null) { List <IActionConfirmationFilter> list = new List <IActionConfirmationFilter>(); foreach (IActionConfirmationFilter value in filterIdToFilter.Values) { if (!value.IsActionValid(action, payload)) { list.Add(value); } } confirmAction(action, isActionValid: true, list, successCallback, failureCallback); }
private void confirmAction(Type action, bool isActionValid, List <IActionConfirmationFilter> filters, ActionConfirmationCallback successCallback, ActionConfirmationCallback failureCallback = null) { if (isActionValid && filters.Count > 0) { IActionConfirmationFilter actionConfirmationFilter = filters[0]; filters.RemoveAt(0); actionConfirmationFilter.ShowConfirmation(action, delegate(bool result) { confirmAction(action, result, filters, successCallback, failureCallback); }); } else if (isActionValid) { successCallback(); } else if (failureCallback != null) { failureCallback(); } }