2018-12-22 20:33:23 +00:00
|
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
|
using Roadie.Library;
|
|
|
|
|
using Roadie.Library.Caching;
|
|
|
|
|
using Roadie.Library.Configuration;
|
|
|
|
|
using Roadie.Library.Encoding;
|
|
|
|
|
using Roadie.Library.Models;
|
|
|
|
|
using Roadie.Library.Utility;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Diagnostics;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using data = Roadie.Library.Data;
|
|
|
|
|
|
|
|
|
|
namespace Roadie.Api.Services
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Returns lookups (or dictionaries) of various allowable values for a given Type
|
|
|
|
|
/// </summary>
|
|
|
|
|
public class LookupService : ServiceBase, ILookupService
|
|
|
|
|
{
|
|
|
|
|
public LookupService(IRoadieSettings configuration,
|
|
|
|
|
IHttpEncoder httpEncoder,
|
|
|
|
|
IHttpContext httpContext,
|
|
|
|
|
data.IRoadieDbContext dbContext,
|
|
|
|
|
ICacheManager cacheManager,
|
|
|
|
|
ILogger<PlaylistService> logger)
|
|
|
|
|
: base(configuration, httpEncoder, dbContext, cacheManager, logger, httpContext)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2018-12-24 19:40:49 +00:00
|
|
|
|
public Task<OperationResult<IEnumerable<DataToken>>> ArtistTypes()
|
2018-12-22 20:33:23 +00:00
|
|
|
|
{
|
|
|
|
|
var sw = Stopwatch.StartNew();
|
2018-12-24 19:40:49 +00:00
|
|
|
|
return Task.FromResult(new OperationResult<IEnumerable<DataToken>>
|
2018-12-22 20:33:23 +00:00
|
|
|
|
{
|
|
|
|
|
Data = this.EnumToDataTokens(typeof(Roadie.Library.Enums.ArtistType)),
|
|
|
|
|
IsSuccess = true,
|
|
|
|
|
OperationTime = sw.ElapsedMilliseconds
|
2018-12-24 19:40:49 +00:00
|
|
|
|
});
|
2018-12-22 20:33:23 +00:00
|
|
|
|
}
|
|
|
|
|
|
2018-12-24 19:40:49 +00:00
|
|
|
|
public Task<OperationResult<IEnumerable<DataToken>>> BandStatus()
|
2018-12-22 20:33:23 +00:00
|
|
|
|
{
|
|
|
|
|
var sw = Stopwatch.StartNew();
|
2018-12-24 19:40:49 +00:00
|
|
|
|
return Task.FromResult(new OperationResult<IEnumerable<DataToken>>
|
2018-12-22 20:33:23 +00:00
|
|
|
|
{
|
|
|
|
|
Data = this.EnumToDataTokens(typeof(Roadie.Library.Enums.BandStatus)),
|
|
|
|
|
IsSuccess = true,
|
|
|
|
|
OperationTime = sw.ElapsedMilliseconds
|
2018-12-24 19:40:49 +00:00
|
|
|
|
});
|
2018-12-22 20:33:23 +00:00
|
|
|
|
}
|
|
|
|
|
|
2018-12-24 19:40:49 +00:00
|
|
|
|
public Task<OperationResult<IEnumerable<DataToken>>> BookmarkTypes()
|
2018-12-22 20:33:23 +00:00
|
|
|
|
{
|
|
|
|
|
var sw = Stopwatch.StartNew();
|
2018-12-24 19:40:49 +00:00
|
|
|
|
return Task.FromResult(new OperationResult<IEnumerable<DataToken>>
|
2018-12-22 20:33:23 +00:00
|
|
|
|
{
|
|
|
|
|
Data = this.EnumToDataTokens(typeof(Roadie.Library.Enums.BookmarkType)),
|
|
|
|
|
IsSuccess = true,
|
|
|
|
|
OperationTime = sw.ElapsedMilliseconds
|
2018-12-24 19:40:49 +00:00
|
|
|
|
});
|
2018-12-22 20:33:23 +00:00
|
|
|
|
}
|
|
|
|
|
|
2018-12-24 19:40:49 +00:00
|
|
|
|
public Task<OperationResult<IEnumerable<DataToken>>> CollectionTypes()
|
2018-12-22 20:33:23 +00:00
|
|
|
|
{
|
|
|
|
|
var sw = Stopwatch.StartNew();
|
2018-12-24 19:40:49 +00:00
|
|
|
|
return Task.FromResult(new OperationResult<IEnumerable<DataToken>>
|
2018-12-22 20:33:23 +00:00
|
|
|
|
{
|
|
|
|
|
Data = this.EnumToDataTokens(typeof(Roadie.Library.Enums.CollectionType)),
|
|
|
|
|
IsSuccess = true,
|
|
|
|
|
OperationTime = sw.ElapsedMilliseconds
|
2018-12-24 19:40:49 +00:00
|
|
|
|
});
|
2018-12-22 20:33:23 +00:00
|
|
|
|
}
|
|
|
|
|
|
2018-12-24 19:40:49 +00:00
|
|
|
|
public Task<OperationResult<IEnumerable<DataToken>>> LibraryStatus()
|
2018-12-22 20:33:23 +00:00
|
|
|
|
{
|
|
|
|
|
var sw = Stopwatch.StartNew();
|
2018-12-24 19:40:49 +00:00
|
|
|
|
return Task.FromResult(new OperationResult<IEnumerable<DataToken>>
|
2018-12-22 20:33:23 +00:00
|
|
|
|
{
|
|
|
|
|
Data = this.EnumToDataTokens(typeof(Roadie.Library.Enums.LibraryStatus)),
|
|
|
|
|
IsSuccess = true,
|
|
|
|
|
OperationTime = sw.ElapsedMilliseconds
|
2018-12-24 19:40:49 +00:00
|
|
|
|
});
|
2018-12-22 20:33:23 +00:00
|
|
|
|
}
|
|
|
|
|
|
2018-12-24 19:40:49 +00:00
|
|
|
|
public Task<OperationResult<IEnumerable<DataToken>>> ReleaseTypes()
|
2018-12-22 20:33:23 +00:00
|
|
|
|
{
|
|
|
|
|
var sw = Stopwatch.StartNew();
|
2018-12-24 19:40:49 +00:00
|
|
|
|
return Task.FromResult(new OperationResult<IEnumerable<DataToken>>
|
2018-12-22 20:33:23 +00:00
|
|
|
|
{
|
|
|
|
|
Data = this.EnumToDataTokens(typeof(Roadie.Library.Enums.ReleaseType)),
|
|
|
|
|
IsSuccess = true,
|
|
|
|
|
OperationTime = sw.ElapsedMilliseconds
|
2018-12-24 19:40:49 +00:00
|
|
|
|
});
|
2018-12-22 20:33:23 +00:00
|
|
|
|
}
|
|
|
|
|
|
2018-12-24 19:40:49 +00:00
|
|
|
|
public Task<OperationResult<IEnumerable<DataToken>>> RequestStatus()
|
2018-12-22 20:33:23 +00:00
|
|
|
|
{
|
|
|
|
|
var sw = Stopwatch.StartNew();
|
2018-12-24 19:40:49 +00:00
|
|
|
|
return Task.FromResult(new OperationResult<IEnumerable<DataToken>>
|
2018-12-22 20:33:23 +00:00
|
|
|
|
{
|
|
|
|
|
Data = this.EnumToDataTokens(typeof(Roadie.Library.Enums.RequestStatus)),
|
|
|
|
|
IsSuccess = true,
|
|
|
|
|
OperationTime = sw.ElapsedMilliseconds
|
2018-12-24 19:40:49 +00:00
|
|
|
|
});
|
2018-12-22 20:33:23 +00:00
|
|
|
|
}
|
|
|
|
|
|
2018-12-24 19:40:49 +00:00
|
|
|
|
public Task<OperationResult<IEnumerable<DataToken>>> Status()
|
2018-12-22 20:33:23 +00:00
|
|
|
|
{
|
|
|
|
|
var sw = Stopwatch.StartNew();
|
2018-12-24 19:40:49 +00:00
|
|
|
|
return Task.FromResult(new OperationResult<IEnumerable<DataToken>>
|
2018-12-22 20:33:23 +00:00
|
|
|
|
{
|
|
|
|
|
Data = this.EnumToDataTokens(typeof(Roadie.Library.Enums.Statuses)),
|
|
|
|
|
IsSuccess = true,
|
|
|
|
|
OperationTime = sw.ElapsedMilliseconds
|
2018-12-24 19:40:49 +00:00
|
|
|
|
});
|
2018-12-22 20:33:23 +00:00
|
|
|
|
}
|
|
|
|
|
|
2018-12-24 19:40:49 +00:00
|
|
|
|
public Task<OperationResult<IEnumerable<DataToken>>> QueMessageTypes()
|
2018-12-22 20:33:23 +00:00
|
|
|
|
{
|
|
|
|
|
var sw = Stopwatch.StartNew();
|
2018-12-24 19:40:49 +00:00
|
|
|
|
return Task.FromResult(new OperationResult<IEnumerable<DataToken>>
|
2018-12-22 20:33:23 +00:00
|
|
|
|
{
|
|
|
|
|
Data = this.EnumToDataTokens(typeof(Roadie.Library.Enums.QueMessageType)),
|
|
|
|
|
IsSuccess = true,
|
|
|
|
|
OperationTime = sw.ElapsedMilliseconds
|
2018-12-24 19:40:49 +00:00
|
|
|
|
});
|
2018-12-22 20:33:23 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private IEnumerable<DataToken> EnumToDataTokens(Type ee)
|
|
|
|
|
{
|
|
|
|
|
var result = new List<DataToken>();
|
|
|
|
|
foreach (var ls in Enum.GetValues(ee))
|
|
|
|
|
{
|
|
|
|
|
result.Add(new DataToken
|
|
|
|
|
{
|
|
|
|
|
Text = ls.ToString(),
|
|
|
|
|
Value = ((short)ls).ToString()
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
return result.OrderBy(x => x.Text);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|