diff options
Diffstat (limited to 'MediaBrowser.Common/Net/Handlers/BaseJsonHandler.cs')
| -rw-r--r-- | MediaBrowser.Common/Net/Handlers/BaseJsonHandler.cs | 37 |
1 files changed, 14 insertions, 23 deletions
diff --git a/MediaBrowser.Common/Net/Handlers/BaseJsonHandler.cs b/MediaBrowser.Common/Net/Handlers/BaseJsonHandler.cs index a35af9231..a3a47a4a3 100644 --- a/MediaBrowser.Common/Net/Handlers/BaseJsonHandler.cs +++ b/MediaBrowser.Common/Net/Handlers/BaseJsonHandler.cs @@ -6,19 +6,22 @@ namespace MediaBrowser.Common.Net.Handlers {
public abstract class BaseJsonHandler<T> : BaseHandler
{
- public override string ContentType
+ public override Task<string> GetContentType()
{
- get { return MimeTypes.JsonMimeType; }
+ return Task.Run(() =>
+ {
+ return MimeTypes.JsonMimeType;
+ });
}
private bool _ObjectToSerializeEnsured = false;
private T _ObjectToSerialize;
- private void EnsureObjectToSerialize()
+ private async Task EnsureObjectToSerialize()
{
if (!_ObjectToSerializeEnsured)
{
- _ObjectToSerialize = GetObjectToSerialize();
+ _ObjectToSerialize = await GetObjectToSerialize();
if (_ObjectToSerialize == null)
{
@@ -29,30 +32,18 @@ namespace MediaBrowser.Common.Net.Handlers }
}
- private T ObjectToSerialize
- {
- get
- {
- EnsureObjectToSerialize();
- return _ObjectToSerialize;
- }
- }
+ protected abstract Task<T> GetObjectToSerialize();
- protected abstract T GetObjectToSerialize();
-
- protected override void PrepareResponse()
+ protected override async Task PrepareResponse()
{
- base.PrepareResponse();
-
- EnsureObjectToSerialize();
+ await EnsureObjectToSerialize();
}
- protected override Task WriteResponseToOutputStream(Stream stream)
+ protected async override Task WriteResponseToOutputStream(Stream stream)
{
- return Task.Run(() =>
- {
- JsonSerializer.SerializeToStream<T>(ObjectToSerialize, stream);
- });
+ await EnsureObjectToSerialize();
+
+ JsonSerializer.SerializeToStream<T>(_ObjectToSerialize, stream);
}
}
}
|
