public static OperationResult Invoke(Action action)
		{
			var result = new OperationResult();

			try
			{
				action();

				result
					.SetSuccess(true);
			}
			catch (Exception exception)
			{
				result
					.SetSuccess(false)
					.SetException(exception);
			}

			return result;
		}
		public static string TranslateErrorMessage(OperationResult result)
		{
			return Messages[result.ErrorCode] ?? result.Message;
		}