کدهای کلاس ApiResponse بصورت زیر است:


public class ApiResponse<T>
{
public ApiResponse()
{
_messages = new List<ApiResponseMessage>();
}


private T? _value;
public T? Value
{
get { return _value; }
set
{
_value = value;
HasValue = !(value is null);
IsSuccess = true;
}
}
public bool HasValue { get; set; }


private bool _isSuccess;
public bool IsSuccess
{
get { return _isSuccess; }
set
{
_isSuccess = true;
_isFail = false;
}
}


private bool _isFail;
public bool IsFail
{
get { return _isFail; }
set
{
_isFail = true;
_isSuccess = false;
}
}


private IList<ApiResponseMessage>? _messages;
public IList<ApiResponseMessage> Messages
{
get { return _messages; }
}
public bool HasMessage { get; set; }




#region Messages


public void AddErrorMessage(Abstractions.Exceptions.CaspianExc eption caspianException)
{
_messages?.Add(new ApiResponseMessage
{
Type = nameof(ApiResponseMessageEnum.Error),
Message = caspianException.Message,
});


HasMessage = true;
IsFail = true;
}


public void AddWarningMessage(Abstractions.Exceptions.CaspianE xception caspianException)
{
_messages?.Add(new ApiResponseMessage
{
Type = nameof(ApiResponseMessageEnum.Warning),
Message = caspianException.Message,
});


HasMessage = true;
}




public void AddDangerMessage(Abstractions.Exceptions.CaspianEx ception caspianException)
{
_messages?.Add(new ApiResponseMessage
{
Type = nameof(ApiResponseMessageEnum.Danger),
Message = caspianException.Message,
});


HasMessage = true;
}




public void AddInformationMessage(Abstractions.Exceptions.Casp ianException caspianException)
{
_messages?.Add(new ApiResponseMessage
{
Type = nameof(ApiResponseMessageEnum.Information),
Message = caspianException.Message,
});


HasMessage = true;
}




public void ClearMessages()
{
_messages?.Clear();
HasMessage = false;
}




#endregion




public class ApiResponseMessage
{
public string Type { get; set; } = string.Empty;
public string Message { get; set; } = string.Empty;
}


public enum ApiResponseMessageEnum
{
Error,
Warning,
Danger,
Information
}
}