Did some preliminary streaming tests from an mobile app and the functionality works. it is a little rough but it can be smoothed out. Created manager classes to abstract functionality from the SongManager class. #7
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Configuration;
|
||||
|
||||
using Icarus.Controllers.Utilities;
|
||||
using Icarus.Models;
|
||||
using Icarus.Models.Context;
|
||||
|
||||
namespace Icarus.Controllers.Managers
|
||||
{
|
||||
public class AlbumManager : BaseManager
|
||||
{
|
||||
#region Fields
|
||||
#endregion
|
||||
|
||||
|
||||
#region Properties
|
||||
#endregion
|
||||
|
||||
|
||||
#region Constructors
|
||||
#endregion
|
||||
|
||||
|
||||
#region Methods
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Configuration;
|
||||
|
||||
using Icarus.Controllers.Utilities;
|
||||
using Icarus.Models;
|
||||
using Icarus.Models.Context;
|
||||
|
||||
namespace Icarus.Controllers.Managers
|
||||
{
|
||||
public class ArtistManager : BaseManager
|
||||
{
|
||||
#region Fields
|
||||
#endregion
|
||||
|
||||
|
||||
#region Properties
|
||||
#endregion
|
||||
|
||||
|
||||
#region Constructors
|
||||
#endregion
|
||||
|
||||
|
||||
#region Methods
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Configuration;
|
||||
|
||||
using Icarus.Controllers.Utilities;
|
||||
using Icarus.Models;
|
||||
using Icarus.Models.Context;
|
||||
|
||||
namespace Icarus.Controllers.Managers
|
||||
{
|
||||
public class GenreManager : BaseManager
|
||||
{
|
||||
#region Fields
|
||||
#endregion
|
||||
|
||||
|
||||
#region Properties
|
||||
#endregion
|
||||
|
||||
|
||||
#region Constructors
|
||||
#endregion
|
||||
|
||||
|
||||
#region Methods
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -1131,7 +1131,7 @@ namespace Icarus.Controllers.Managers
|
||||
return;
|
||||
}
|
||||
|
||||
var album = albumStore.GetAlbum(song);
|
||||
var album = albumStore.GetAlbum(song, true);
|
||||
|
||||
if (album.SongCount <= 1)
|
||||
{
|
||||
@@ -1146,7 +1146,7 @@ namespace Icarus.Controllers.Managers
|
||||
return;
|
||||
}
|
||||
|
||||
var artist = artistStore.GetArtist(song);
|
||||
var artist = artistStore.GetArtist(song, true);
|
||||
|
||||
if (artist.SongCount <= 1)
|
||||
{
|
||||
@@ -1161,7 +1161,7 @@ namespace Icarus.Controllers.Managers
|
||||
return;
|
||||
}
|
||||
|
||||
var genre = genreStore.GetGenre(song);
|
||||
var genre = genreStore.GetGenre(song, true);
|
||||
|
||||
if (genre.SongCount <= 1)
|
||||
{
|
||||
@@ -1176,7 +1176,7 @@ namespace Icarus.Controllers.Managers
|
||||
return;
|
||||
}
|
||||
|
||||
var year = yearStore.GetSongYear(song);
|
||||
var year = yearStore.GetSongYear(song, true);
|
||||
|
||||
if (year.SongCount <= 1)
|
||||
{
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Configuration;
|
||||
|
||||
using Icarus.Controllers.Utilities;
|
||||
using Icarus.Models;
|
||||
using Icarus.Models.Context;
|
||||
|
||||
namespace Icarus.Controllers.Managers
|
||||
{
|
||||
public class YearManager : BaseManager
|
||||
{
|
||||
#region Fields
|
||||
#endregion
|
||||
|
||||
|
||||
#region Properties
|
||||
#endregion
|
||||
|
||||
|
||||
#region Constructors
|
||||
#endregion
|
||||
|
||||
|
||||
#region Methods
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,8 @@
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net.Http.Headers;
|
||||
using System.Web;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
@@ -37,23 +39,19 @@ namespace Icarus.Controllers
|
||||
|
||||
#region HTTP endpoints
|
||||
[HttpGet("{id}")]
|
||||
public IActionResult Get(int id)
|
||||
public async Task<IActionResult> Get(int id)
|
||||
{
|
||||
var songStore= HttpContext
|
||||
.RequestServices
|
||||
.GetService(typeof(MusicStoreContext)) as MusicStoreContext;
|
||||
|
||||
var song = songStore.GetSong(new Song
|
||||
{
|
||||
Id = id
|
||||
});
|
||||
|
||||
var song = songStore.GetSong(new Song { Id = id });
|
||||
|
||||
var mem = new MemoryStream();
|
||||
|
||||
using (var stream = new FileStream(song.SongPath, FileMode.Open, FileAccess.Read))
|
||||
{
|
||||
stream.CopyToAsync(mem);
|
||||
await stream.CopyToAsync(mem);
|
||||
}
|
||||
|
||||
mem.Position = 0;
|
||||
|
||||
Reference in New Issue
Block a user