Skip to content

Instantly share code, notes, and snippets.

@eldewall
Last active December 26, 2015 21:29
Show Gist options
  • Save eldewall/7216524 to your computer and use it in GitHub Desktop.
Save eldewall/7216524 to your computer and use it in GitHub Desktop.
public interface IResult<T> {
bool Success { get; }
T Data { get; }
string Error { get; }
}
public class ErrorResult<T> : Result<T> {
public ErrorResult(string error) : base(null, false, error) {
}
}
public class SuccessResult<T> : Result<T> {
public SuccessResult(T data) : base(data, true, "") {
}
}
public class Result<T> : IResult<T> {
public bool Success {get; private set;}
public T Data {get; private set;}
public string Error {get; private set; }
public Result(T data, bool success, string error) {
Data = data;
Success = success;
Error = error;
}
public static IResult<T> Success(T data) {
return new Result(data, true, ""); // ELLER return new SuccessResult(data);
}
public static IResult<T> Error(string error) {
return new Result(null, false, error); // ELLER return new ErrorResult(error);
}
}
public IResult<T> Execute() {
Query.Send(Param);
if (Query.Success) {
return new SuccessResult(Query.Data);
} else {
return new ErrorResult(Query.Message);
}
}
public IResult<T> Execute() {
Query.Send(Param);
if (Query.Success) {
return Result.Success(Query.Data);
} else {
return Result.Error(Query.Message);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment