Backend Services Split into separate projects for reference from other front ends

This commit is contained in:
daniel-c-harvey
2025-09-07 12:56:52 -04:00
parent a5b7ab041e
commit b16bcfc6cd
47 changed files with 153 additions and 114 deletions
@@ -0,0 +1,77 @@
using DeepDrftModels.Entities;
using DeepDrftModels.Models;
using Microsoft.EntityFrameworkCore;
using DeepDrftWeb.Services.Data;
namespace DeepDrftWeb.Services.Repositories;
public class TrackRepository
{
private readonly DeepDrftContext _db;
public TrackRepository(DeepDrftContext db)
{
_db = db;
}
public async Task<TrackEntity?> GetById(long id)
{
return await _db.Tracks.FindAsync(id);
}
public async Task<List<TrackEntity>> GetAll()
{
return await _db.Tracks.ToListAsync();
}
public async Task<PagedResult<TrackEntity>> GetPage(PagingParameters<TrackEntity> pageParameters)
{
var count = await _db.Tracks.CountAsync();
var page = await _db.Tracks
.OrderBy(pageParameters.OrderBy ?? (t => t.Id))
.Skip((pageParameters.Page - 1) * pageParameters.PageSize)
.Take(pageParameters.PageSize)
.ToListAsync();
return new PagedResult<TrackEntity>(page, count, pageParameters.Page, pageParameters.PageSize);
}
public async Task<TrackEntity> Create(TrackEntity newTrack)
{
var track = _db.Tracks.Add(newTrack);
await _db.SaveChangesAsync();
return track.Entity;
}
public async Task<TrackEntity> Update(TrackEntity track)
{
var trackEntity = await GetById(track.Id);
if (trackEntity == null)
{
return await Create(track);
}
trackEntity.Album = track.Album;
trackEntity.Artist = track.Artist;
trackEntity.Genre = track.Genre;
trackEntity.ImagePath = track.ImagePath;
trackEntity.EntryKey = track.EntryKey;
trackEntity.ReleaseDate = track.ReleaseDate;
trackEntity.TrackName = track.TrackName;
await _db.SaveChangesAsync();
return trackEntity;
}
public async Task Delete(long id)
{
var track = await GetById(id);
if (track != null)
{
_db.Tracks.Remove(track);
await _db.SaveChangesAsync();
}
}
}