Test Many to many
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using LaDOSE.Business.Interface;
|
||||||
using LaDOSE.Entity;
|
using LaDOSE.Entity;
|
||||||
using LaDOSE.Entity.Context;
|
using LaDOSE.Entity.Context;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
@@ -15,28 +16,33 @@ namespace LaDOSE.Api.Controllers
|
|||||||
public class GameController : ControllerBase
|
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]
|
[HttpGet]
|
||||||
public List<Game> Get()
|
public List<Game> Get()
|
||||||
{
|
{
|
||||||
|
|
||||||
return _db.Game.ToList();
|
return _gameService.GetAll().ToList();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GET api/Config/5
|
// GET api/Game/5
|
||||||
[HttpGet("{id}")]
|
[HttpGet("{id}")]
|
||||||
public Game Get(int 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
|
// configure DI for application services
|
||||||
services.AddScoped<IUserService, UserService>();
|
services.AddScoped<IUserService, UserService>();
|
||||||
|
services.AddScoped<IGameService, GameService>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ namespace LaDOSE.Entity.Context
|
|||||||
public DbSet<Game> Game { get; set; }
|
public DbSet<Game> Game { get; set; }
|
||||||
public DbSet<ApplicationUser> ApplicationUser { get; set; }
|
public DbSet<ApplicationUser> ApplicationUser { get; set; }
|
||||||
public DbSet<Season> Season { get; set; }
|
public DbSet<Season> Season { get; set; }
|
||||||
|
//public DbSet<SeasonGame> SeasonGame { get; set; }
|
||||||
|
|
||||||
public LaDOSEDbContext(DbContextOptions options) : base(options)
|
public LaDOSEDbContext(DbContextOptions options) : base(options)
|
||||||
{
|
{
|
||||||
@@ -14,7 +15,24 @@ namespace LaDOSE.Entity.Context
|
|||||||
|
|
||||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
base.OnModelCreating(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;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace LaDOSE.Entity
|
namespace LaDOSE.Entity
|
||||||
{
|
{
|
||||||
public class Game
|
public class Game
|
||||||
{
|
{
|
||||||
|
[Key]
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public string ImgUrl { get; set; }
|
public string ImgUrl { get; set; }
|
||||||
|
|
||||||
|
public virtual IEnumerable<SeasonGame> Seasons { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,18 @@
|
|||||||
using System;
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace LaDOSE.Entity
|
namespace LaDOSE.Entity
|
||||||
{
|
{
|
||||||
public class Season
|
public class Season
|
||||||
{
|
{
|
||||||
|
[Key]
|
||||||
public int Id { get; set; }
|
public int Id { get; set; }
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
public DateTime StartDate { get; set; }
|
public DateTime StartDate { get; set; }
|
||||||
public DateTime EndDate { 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