You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.6 KiB
53 lines
1.6 KiB
using Apewer.Web;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Net;
|
|
using System.Text;
|
|
|
|
namespace Apewer.AspNetBridge
|
|
{
|
|
|
|
/// <summary></summary>
|
|
public class HttpResponseMessage
|
|
{
|
|
|
|
/// <summary></summary>
|
|
public HttpContent Content { get; set; }
|
|
|
|
/// <summary></summary>
|
|
public HttpStatusCode StatusCode { get; set; }
|
|
|
|
/// <exception cref="ArgumentOutOfRangeException"></exception>
|
|
public HttpResponseMessage(HttpStatusCode statusCode = HttpStatusCode.OK)
|
|
{
|
|
var code = (int)StatusCode;
|
|
if (code < 0 || code > 999) throw new ArgumentOutOfRangeException("statusCode");
|
|
StatusCode = statusCode;
|
|
}
|
|
|
|
/// <summary></summary>
|
|
public override string ToString() => "";
|
|
|
|
/// <summary></summary>
|
|
internal ApiModel ToModel()
|
|
{
|
|
var hrm = this;
|
|
if (hrm == null) return new ApiStatusModel(204);
|
|
if (hrm.Content == null) return new ApiStatusModel(204);
|
|
|
|
var stream = hrm.Content.Stream;
|
|
if (stream == null) return new ApiStatusModel(204);
|
|
|
|
var model = new ApiStreamModel(stream);
|
|
model.Status = (int)hrm.StatusCode;
|
|
if (hrm.Content.Headers != null)
|
|
{
|
|
if (hrm.Content.Headers.ContentType != null) model.ContentType = hrm.Content.Headers.ContentType.MediaType;
|
|
if (hrm.Content.Headers.ContentDisposition != null) model.Attachment = hrm.Content.Headers.ContentDisposition.FileName;
|
|
}
|
|
return model;
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|