Test Many to many
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using LaDOSE.Business.Interface;
|
||||
using LaDOSE.Entity;
|
||||
using LaDOSE.Entity.Context;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
@@ -15,28 +16,33 @@ namespace LaDOSE.Api.Controllers
|
||||
public class GameController : ControllerBase
|
||||
{
|
||||
|
||||
private readonly LaDOSEDbContext _db;
|
||||
private readonly IGameService _gameService;
|
||||
|
||||
public GameController(LaDOSEDbContext db)
|
||||
public GameController(IGameService gameService)
|
||||
{
|
||||
_db = db;
|
||||
_gameService = gameService;
|
||||
}
|
||||
// GET api/Config
|
||||
// GET api/Game
|
||||
[HttpGet]
|
||||
public List<Game> Get()
|
||||
{
|
||||
|
||||
return _db.Game.ToList();
|
||||
|
||||
|
||||
return _gameService.GetAll().ToList();
|
||||
|
||||
}
|
||||
|
||||
// GET api/Config/5
|
||||
// GET api/Game/5
|
||||
[HttpGet("{id}")]
|
||||
public Game Get(int id)
|
||||
{
|
||||
return _db.Game.FirstOrDefault(e=>e.Id==id);
|
||||
return _gameService.GetById(id);
|
||||
}
|
||||
|
||||
|
||||
|
||||
[HttpPut()]
|
||||
public bool Put(Game game)
|
||||
{
|
||||
return _gameService.Update(game);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,6 +87,7 @@ namespace LaDOSE.Api
|
||||
|
||||
// configure DI for application services
|
||||
services.AddScoped<IUserService, UserService>();
|
||||
services.AddScoped<IGameService, GameService>();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ namespace LaDOSE.Entity.Context
|
||||
public DbSet<Game> Game { get; set; }
|
||||
public DbSet<ApplicationUser> ApplicationUser { get; set; }
|
||||
public DbSet<Season> Season { get; set; }
|
||||
//public DbSet<SeasonGame> SeasonGame { get; set; }
|
||||
|
||||
public LaDOSEDbContext(DbContextOptions options) : base(options)
|
||||
{
|
||||
@@ -14,7 +15,24 @@ namespace LaDOSE.Entity.Context
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
|
||||
|
||||
base.OnModelCreating(modelBuilder);
|
||||
modelBuilder.Entity<SeasonGame>()
|
||||
.HasKey(t => new { t.SeasonId, t.GameId });
|
||||
|
||||
|
||||
|
||||
modelBuilder.Entity<SeasonGame>()
|
||||
.HasOne(pt => pt.Season)
|
||||
.WithMany(p => p.Games)
|
||||
.HasForeignKey(pt => pt.GameId);
|
||||
|
||||
modelBuilder.Entity<SeasonGame>()
|
||||
.HasOne(pt => pt.Game)
|
||||
.WithMany(p => p.Seasons)
|
||||
.HasForeignKey(pt => pt.SeasonId);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,16 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace LaDOSE.Entity
|
||||
{
|
||||
public class Game
|
||||
{
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string ImgUrl { get; set; }
|
||||
|
||||
public virtual IEnumerable<SeasonGame> Seasons { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace LaDOSE.Entity
|
||||
{
|
||||
public class Season
|
||||
{
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
public string Name { get; set; }
|
||||
|
||||
public DateTime StartDate { get; set; }
|
||||
public DateTime EndDate { get; set; }
|
||||
|
||||
|
||||
public virtual IEnumerable<SeasonGame> Games { get; set; }
|
||||
}
|
||||
}
|
||||
11
LaDOSE.Src/LaDOSE.Entity/SeasonGame.cs
Normal file
11
LaDOSE.Src/LaDOSE.Entity/SeasonGame.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
namespace LaDOSE.Entity
|
||||
{
|
||||
public class SeasonGame
|
||||
{
|
||||
public int GameId { get; set; }
|
||||
public Game Game { get; set; }
|
||||
public int SeasonId { get; set; }
|
||||
public Season Season { get; set; }
|
||||
|
||||
}
|
||||
}
|
||||
15
LaDOSE.Src/LaDOSE.Service/Interface/IGameService.cs
Normal file
15
LaDOSE.Src/LaDOSE.Service/Interface/IGameService.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using System.Collections.Generic;
|
||||
using LaDOSE.Entity;
|
||||
|
||||
namespace LaDOSE.Business.Interface
|
||||
{
|
||||
public interface IGameService
|
||||
{
|
||||
|
||||
IEnumerable<Game> GetAll();
|
||||
Game GetById(int id);
|
||||
Game Create(Game game);
|
||||
bool Update(Game game);
|
||||
void Delete(int id);
|
||||
}
|
||||
}
|
||||
71
LaDOSE.Src/LaDOSE.Service/Service/GameService.cs
Normal file
71
LaDOSE.Src/LaDOSE.Service/Service/GameService.cs
Normal file
@@ -0,0 +1,71 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using LaDOSE.Business.Interface;
|
||||
using LaDOSE.Entity;
|
||||
using LaDOSE.Entity.Context;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace LaDOSE.Business.Service
|
||||
{
|
||||
public class GameService : IGameService
|
||||
{
|
||||
private LaDOSEDbContext _context;
|
||||
|
||||
public GameService(LaDOSEDbContext context)
|
||||
{
|
||||
_context = context;
|
||||
}
|
||||
|
||||
public IEnumerable<Game> GetAll()
|
||||
{
|
||||
return _context.Game.Include(e => e.Seasons).ToList();
|
||||
}
|
||||
|
||||
public Game GetById(int id)
|
||||
{
|
||||
return _context.Game.Include(e => e.Seasons).FirstOrDefault(e=>e.Id == id);
|
||||
}
|
||||
|
||||
public Game Create(Game game)
|
||||
{
|
||||
if (game.Id != 0)
|
||||
{
|
||||
throw new Exception("Id is invalid");
|
||||
}
|
||||
var gameAdded = _context.Game.Add(game);
|
||||
_context.SaveChanges();
|
||||
return gameAdded.Entity;
|
||||
}
|
||||
|
||||
public bool Update(Game game)
|
||||
{
|
||||
if (game.Id == 0)
|
||||
{
|
||||
throw new Exception("Id is invalid");
|
||||
}
|
||||
|
||||
var gameUpdated = _context.Game.FirstOrDefault(e => e == game);
|
||||
|
||||
gameUpdated = game;
|
||||
try
|
||||
{
|
||||
_context.SaveChanges();
|
||||
return true;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e);
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void Delete(int id)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user