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

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;
}
}
}