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:
amazing-username
2019-05-26 22:04:30 +00:00
parent 05a33d4d9e
commit a772627abc
7 changed files with 121 additions and 18 deletions
+28
View File
@@ -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
}
}
+28
View File
@@ -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
}
}
+28
View File
@@ -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
}
}
+4 -4
View File
@@ -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)
{
+28
View File
@@ -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
}
}
+5 -7
View File
@@ -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;