public Result <T> Error <T>(MetaError metaError) { return(new Result <T>() { MetaError = metaError, Obj = default(T) }); }
public Result Error(MetaError metaError) { return(new Result() { MetaError = metaError }); }
public static MetaError ToMetaError(this ValidationFailure error, HttpStatusCode protocolCode = HttpStatusCode.Conflict) { var err = new Error(error.ErrorMessage, error.ErrorCode); var meta = new MetaError(err, protocolCode); return(meta); }
protected static void AssertError(MetaError error, string file, string id, int lineNumber, int columnNumber, int?endLineNumber = null, int?endColumnNumber = null) { AssertError(error, file, id); Assert.Equal(lineNumber, error.LineNumber); Assert.Equal(columnNumber, error.ColumnNumber); Assert.Equal(endLineNumber ?? lineNumber, error.EndLineNumber); Assert.Equal(endColumnNumber ?? columnNumber, error.EndColumnNumber); }
static BuildErrorEventArgs ToBuildError(MetaError error) { return(new BuildErrorEventArgs( subcategory: "MetaSharp", code: error.Id, file: error.File, lineNumber: error.LineNumber, columnNumber: error.ColumnNumber, endLineNumber: error.EndLineNumber, endColumnNumber: error.EndColumnNumber, message: error.Message, helpKeyword: string.Empty, senderName: "MetaSharp" )); }
protected bool IsValid(string value, int minLength, int maxLegth, MetaError errorForNull, MetaError errorForLength, out Result result) { if (string.IsNullOrWhiteSpace(value)) { result = Error(errorForNull); } else if (value.Length < minLength || value.Length > maxLegth) { result = Error(errorForLength); } else { result = null; } return(result == null); }
public static Mapper <MetaValue> .ToRule ObjectsAreDecomposed(Mapper <MetaValue> binder) { object FromMeta(MetaValue target) { return(target.Value.Match <object>( metaObject => throw new NotImplementedException(), metaValue => metaValue.Value.Value, metaArray => throw new NotImplementedException() )); } MetaObject ToMetaObject(object target) { MetaType ToMetaType(Type type) { if (type == typeof(object)) { throw new Exception(); } return(new MetaType { Name = type.GetTypeInfo().IsGenericType&& !type.IsConstructedGenericType ? null : MetaName.From(type.FullName), GenericType = type.GetTypeInfo().IsGenericType&& !type.IsConstructedGenericType ? ToMetaType(type.GetGenericTypeDefinition()) : null, GenericArguments = type.GetTypeInfo().IsGenericType&& !type.IsConstructedGenericType ? type.GetTypeInfo().GenericTypeArguments.Select(ToMetaType).ToArray() : null }); } MetaParameter ToParam(ParameterInfo arg) => new MetaParameter() { Name = MetaName.From(arg.Name), Type = ToMetaType(arg.ParameterType) }; MetaResult ToResult(Func <object> execute) { try { var result = execute(); return(MetaResult.From(binder.Map(result).AsT0)); } catch (Exception ex) { return(MetaResult.From(MetaError.From(ex.Message))); } } MetaAction ToAction(MethodInfo method) => new MetaAction() { Name = MetaName.From(method.Name), Call = args => ToResult(() => method.Invoke(target, args.Select(arg => FromMeta(arg.Value)).ToArray())), Parameters = method.GetParameters().Select(ToParam) }; MetaProperty ToProperty(PropertyInfo propertyInfo) => new MetaProperty() { Name = MetaName.From(propertyInfo.Name), Type = ToMetaType(propertyInfo.PropertyType), GetValue = !propertyInfo.CanRead ? null as Func <MetaValue> : () => { var value = propertyInfo.GetValue(target); return(value == null?MetaScalar.From(new MetaNull()) : binder.Map(value).AsT0); }, SetValue = !propertyInfo.CanWrite ? null as Action <MetaValue> : (arg) => { propertyInfo.SetValue(target, FromMeta(arg.Value)); }, }; return(new MetaObject() { Type = ToMetaType(target.GetType()), Properties = target.GetType().GetTypeInfo().DeclaredProperties.Where(t => !t.IsSpecialName && t.DeclaringType == target.GetType()).Select(ToProperty).ToArray(), Actions = target.GetType().GetTypeInfo().DeclaredMethods.Where(t => !t.Name.StartsWith("<") && !t.Name.StartsWith("get_") && !t.Name.StartsWith("set_") && t.DeclaringType == target.GetType()).Select(ToAction).ToArray() }); } return(target => (Mapper <MetaValue> .RuleOutput)(MetaValue) ToMetaObject(target)); }
protected static void AssertError(MetaError error, string file, string id) { Assert.Equal(file, error.File); Assert.Equal(id, error.Id); }
protected static void AssertError(MetaError error, string file, string id, int lineNumber, int columnNumber, int? endLineNumber = null, int? endColumnNumber = null) { AssertError(error, file, id); Assert.Equal(lineNumber, error.LineNumber); Assert.Equal(columnNumber, error.ColumnNumber); Assert.Equal(endLineNumber ?? lineNumber, error.EndLineNumber); Assert.Equal(endColumnNumber ?? columnNumber, error.EndColumnNumber); }
protected static void AssertError(MetaError error, string file, string id, string message, int lineNumber, int columnNumber, int? endLineNumber = null, int? endColumnNumber = null) { AssertError(error, file, id, lineNumber, columnNumber, endLineNumber, endColumnNumber); Assert.Equal(message, error.Message); }
protected static void AssertError(MetaError error, string file, string id, string message, int lineNumber, int columnNumber, int?endLineNumber = null, int?endColumnNumber = null) { AssertError(error, file, id, lineNumber, columnNumber, endLineNumber, endColumnNumber); Assert.Equal(message, error.Message); }
public static IRuleBuilderOptions <T, TProperty> WithCustomError <T, TProperty>(this IRuleBuilderOptions <T, TProperty> rule, MetaError metaError) { rule.WithErrorCode(metaError.StatusCode.ToString()); rule.WithMessage(metaError.Error); return(rule); }
static BuildErrorEventArgs ToBuildError(MetaError error) { return new BuildErrorEventArgs( subcategory: "MetaSharp", code: error.Id, file: error.File, lineNumber: error.LineNumber, columnNumber: error.ColumnNumber, endLineNumber: error.EndLineNumber, endColumnNumber: error.EndColumnNumber, message: error.Message, helpKeyword: string.Empty, senderName: "MetaSharp" ); }
/// <inheritdoc /> public YandexApiResponseException(string message, MetaError apiMetaError) : base(message) { ApiMetaError = apiMetaError; }
/// <inheritdoc /> public YandexApiResponseException(MetaError apiMetaError) { ApiMetaError = apiMetaError; }