Files
EstusShots-Net/EstusShots.Shared/Models/OperationResult.cs

63 lines
1.6 KiB
C#

using System;
namespace EstusShots.Shared.Models
{
public class OperationResult
{
public bool Success { get; }
public string ShortMessage { get; set; }
public string DetailedMessage { get; set; }
public string StackTrace { get; set; }
public OperationResult()
{
Success = true;
}
public OperationResult(bool success, string shortMessage, string detailedMessage = null)
{
Success = success;
ShortMessage = shortMessage;
DetailedMessage = detailedMessage;
}
public OperationResult(Exception e)
{
Success = false;
ShortMessage = e.Message;
DetailedMessage = e.InnerException?.Message;
StackTrace = e.StackTrace;
}
}
public class ApiResponse<T> where T : class, new()
{
public OperationResult OperationResult { get; set; }
public T Data { get; set; }
public ApiResponse()
{
OperationResult = new OperationResult();
Data = new T();
}
public ApiResponse(OperationResult operationResult)
{
OperationResult = operationResult;
Data = new T();
}
public ApiResponse(T data)
{
OperationResult = new OperationResult();
Data = data;
}
public ApiResponse(OperationResult operationResult, T data)
{
OperationResult = operationResult;
Data = data;
}
}
}