kemnet
5/21/2015 - 2:52 PM

gistfile1.cs

public class ServiceResult
    {
        public bool HasError { get; private set; }
        public ServiceError ServiceError { get; private set; }

        public ServiceResult(ServiceError error)
        {
            ServiceError = error;
            HasError = true;
        }

        private ServiceResult()
        {
            HasError = false;
        }

        public static ServiceResult Success()
        {
            return new ServiceResult();
        }

        public static ServiceResult<T> Success<T>(T result)
        {
            return new ServiceResult<T>(result);
        }

        public static ServiceResult Error(ServiceError error)
        {
            return new ServiceResult(error);
        }

        public static ServiceResult<T> Error<T>(ServiceError error)
        {
            return new ServiceResult<T>(error);
        }
    }

    public class ServiceResult<T>
    {
        public bool HasError { get; private set; }
        public T Result { get; private set; }
        public ServiceError ServiceError { get; private set; }

        public ServiceResult(T result)
        {
            Result = result;
            HasError = false;
        }

        public ServiceResult(ServiceError error)
        {
            ServiceError = error;
            HasError = true;
        }
    }