public async Task ResolveError(Guid id, string result, Dictionary <string, object> data)
        {
            var error = UserErrors.FindOrThrow(id);
            var ue    = (UserError)error.UserError;

            if ((data != null) && (ue.ContextInfo != null))
            {
                data.ForEach(x => ue.ContextInfo[x.Key] = x.Value);
            }
            ue.RecoveryOptions.First(x => x.CommandName == result).Execute(null);
            UserErrors = UserErrors.Except(new[] { error }).ToArray();
            await new UserErrorResolved(id, result).Raise().ConfigureAwait(false);
        }