Skip to content

Instantly share code, notes, and snippets.

@bruceharrison1984
Last active September 5, 2019 03:58
Show Gist options
  • Save bruceharrison1984/d3903936d3e8123bcb7002e75ba0bfef to your computer and use it in GitHub Desktop.
Save bruceharrison1984/d3903936d3e8123bcb7002e75ba0bfef to your computer and use it in GitHub Desktop.
Example of a C# Asp.net core response envelope
using System.Net;
using Microsoft.AspNetCore.Mvc;
namespace WidgetApi.Models
{
internal class ResponseEnvelopeResult<T> : ObjectResult where T : class
{
/// <summary>
/// Data envelope for wrapping responses
/// </summary>
/// <param name="statusCode">http status code to return</param>
/// <param name="data">raw response data</param>
/// <param name="error">friendly error string</param>
public ResponseEnvelopeResult(HttpStatusCode statusCode = HttpStatusCode.OK, T data = null, object error = null) : base(new ResponseEnvelope<T>(data, error))
{
this.StatusCode = (int)statusCode;
}
}
internal class ResponseEnvelope<T> where T : class
{
public T Data { get; }
public object Error { get; }
public ResponseEnvelope(T data, object error)
{
Data = data;
Error = error;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment