using Wino.Core.Domain.Exceptions;
namespace Wino.Core.Domain.Models.Server
{
///
/// Encapsulates responses from the Wino server.
/// Exceptions are stored separately in the Message and StackTrace properties due to serialization issues.
///
/// Type of the expected response.
public class WinoServerResponse
{
public bool IsSuccess { get; set; }
public string Message { get; set; }
public T Data { get; set; }
public static WinoServerResponse CreateSuccessResponse(T data)
{
return new WinoServerResponse
{
IsSuccess = true,
Data = data
};
}
public static WinoServerResponse CreateErrorResponse(string message)
{
return new WinoServerResponse
{
IsSuccess = false,
Message = message
};
}
public void ThrowIfFailed()
{
if (!IsSuccess)
throw new WinoServerException(Message);
}
}
}