Generic Service

JSON Reference loop
Events
This commit is contained in:
2018-10-07 03:03:38 +02:00
parent 642d533a49
commit 9a9d4c7053
12 changed files with 270 additions and 117 deletions

View File

@@ -0,0 +1,13 @@
using System.Collections.Generic;
namespace LaDOSE.Business.Interface
{
public interface IBaseService<T> where T : class
{
IEnumerable<T> GetAll();
T GetById(int id);
T Create(T entity);
bool Update(T entity);
bool Delete(int id);
}
}

View File

@@ -0,0 +1,9 @@
using LaDOSE.Entity;
namespace LaDOSE.Business.Interface
{
public interface IEventService : IBaseService<Event>
{
}
}

View File

@@ -3,13 +3,8 @@ using LaDOSE.Entity;
namespace LaDOSE.Business.Interface
{
public interface IGameService
public interface IGameService : IBaseService<Game>
{
IEnumerable<Game> GetAll();
Game GetById(int id);
Game Create(Game game);
bool Update(Game game);
void Delete(int id);
}
}

View File

@@ -0,0 +1,44 @@
using System.Collections.Generic;
using System.Linq;
using LaDOSE.Business.Interface;
using LaDOSE.Entity.Context;
using Microsoft.EntityFrameworkCore;
namespace LaDOSE.Business.Service
{
public class BaseService<T> : IBaseService<T> where T : class
{
protected LaDOSEDbContext _context;
public BaseService(LaDOSEDbContext context)
{
this._context = context;
}
public virtual IEnumerable<T> GetAll()
{
return _context.Set<T>().ToList();
}
public virtual T GetById(int id)
{
return _context.Find<T>(id);
}
public virtual T Create(T entity)
{
var added = _context.Add(entity);
return added.Entity;
}
public virtual bool Update(T entity)
{
var entityEntry = _context.Update(entity);
return _context.Entry(entityEntry).State == EntityState.Unchanged;
}
public virtual bool Delete(int id)
{
var find = _context.Find<T>(id);
_context.Remove(find);
return _context.Entry(find).State == EntityState.Deleted;
}
}
}

View File

@@ -0,0 +1,26 @@
using System;
using LaDOSE.Business.Interface;
using LaDOSE.Entity;
using LaDOSE.Entity.Context;
namespace LaDOSE.Business.Service
{
public class EventService : BaseService<Event>, IEventService
{
public EventService(LaDOSEDbContext context) : base(context)
{
}
public override Event Create(Event e)
{
if (e.Id != 0)
{
throw new Exception("Id is invalid");
}
var eventAdded = _context.Event.Add(e);
_context.SaveChanges();
return eventAdded.Entity;
}
}
}

View File

@@ -8,64 +8,18 @@ using Microsoft.EntityFrameworkCore;
namespace LaDOSE.Business.Service
{
public class GameService : IGameService
public class GameService : BaseService<Game> ,IGameService
{
private LaDOSEDbContext _context;
public GameService(LaDOSEDbContext context)
public GameService(LaDOSEDbContext context) : base(context)
{
_context = context;
}
public IEnumerable<Game> GetAll()
public override 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();
}
}
}