parent
1807bab2af
commit
fcd258a2df
@ -1,103 +0,0 @@
|
|||||||
using DbContextLib;
|
|
||||||
using Entities;
|
|
||||||
using Microsoft.EntityFrameworkCore;
|
|
||||||
using Dto;
|
|
||||||
using Model.OrderCriteria;
|
|
||||||
using Shared.Mapper;
|
|
||||||
|
|
||||||
namespace Shared;
|
|
||||||
|
|
||||||
public class LessonDataService : ILessonDataService
|
|
||||||
{
|
|
||||||
private UserDbContext DbContext { get; set; }
|
|
||||||
public LessonDataService(UserDbContext context)
|
|
||||||
{
|
|
||||||
DbContext = context;
|
|
||||||
context.Database.EnsureCreated();
|
|
||||||
}
|
|
||||||
public IEnumerable<LessonDTO> GetLessons(int page, int number, LessonOrderCriteria orderCriteria)
|
|
||||||
{
|
|
||||||
IQueryable<LessonEntity> query = DbContext.Lessons.Skip((page - 1) * number).Take(number);
|
|
||||||
switch (orderCriteria)
|
|
||||||
{
|
|
||||||
case LessonOrderCriteria.None:
|
|
||||||
break;
|
|
||||||
case LessonOrderCriteria.ByTitle:
|
|
||||||
query = query.OrderBy(s => s.Title);
|
|
||||||
break;
|
|
||||||
case LessonOrderCriteria.ByLastPublisher:
|
|
||||||
query = query.OrderBy(s => s.LastPublisher);
|
|
||||||
break;
|
|
||||||
case LessonOrderCriteria.ByLastEdit:
|
|
||||||
query = query.OrderBy(s => s.LastEdit);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
var lessons = query.ToList();
|
|
||||||
return lessons.Select(s => s.FromEntityToDTO());
|
|
||||||
}
|
|
||||||
|
|
||||||
public LessonDTO GetLessonById(int id)
|
|
||||||
{
|
|
||||||
var lessonEntity = DbContext.Lessons.FirstOrDefault(u => u.Id == id);
|
|
||||||
if (lessonEntity == null)
|
|
||||||
{
|
|
||||||
throw new ArgumentException("Impossible de trouver la leçon", nameof(id));
|
|
||||||
}
|
|
||||||
|
|
||||||
return lessonEntity.FromEntityToDTO();
|
|
||||||
}
|
|
||||||
|
|
||||||
public LessonDTO GetLessonByTitle(string title)
|
|
||||||
{
|
|
||||||
var lessonEntity = DbContext.Lessons.FirstOrDefault(u => u.Title == title);
|
|
||||||
if (lessonEntity == null)
|
|
||||||
{
|
|
||||||
throw new ArgumentException("Impossible de trouver la leçon", nameof(title));
|
|
||||||
}
|
|
||||||
|
|
||||||
return lessonEntity.FromEntityToDTO();
|
|
||||||
}
|
|
||||||
|
|
||||||
public bool DeleteLesson(int id)
|
|
||||||
{
|
|
||||||
var lessonEntity = DbContext.Lessons.FirstOrDefault(l => l.Id == id);
|
|
||||||
if (lessonEntity == null)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
DbContext.Lessons.Remove(lessonEntity);
|
|
||||||
DbContext.SaveChangesAsync();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LessonDTO UpdateLesson(int id, LessonDTO lesson)
|
|
||||||
{
|
|
||||||
var updatingLesson = DbContext.Lessons.FirstOrDefault(l => l.Id == id);
|
|
||||||
if (updatingLesson == null)
|
|
||||||
{
|
|
||||||
throw new ArgumentException("Impossible de trouver la leçon", nameof(id));
|
|
||||||
}
|
|
||||||
|
|
||||||
updatingLesson.Title = lesson.Title;
|
|
||||||
updatingLesson.LastPublisher = lesson.LastPublisher;
|
|
||||||
updatingLesson.LastEdit = lesson.LastEdit;
|
|
||||||
DbContext.SaveChangesAsync();
|
|
||||||
return updatingLesson.FromEntityToDTO();
|
|
||||||
}
|
|
||||||
|
|
||||||
public LessonDTO CreateLesson(string title, string lastPublisher, DateOnly? lastEdit)
|
|
||||||
{
|
|
||||||
var newLessonEntity = new LessonDTO()
|
|
||||||
{
|
|
||||||
Title = title,
|
|
||||||
LastPublisher = lastPublisher,
|
|
||||||
LastEdit = lastEdit,
|
|
||||||
};
|
|
||||||
DbContext.Lessons.Add(newLessonEntity.FromDTOToEntity());
|
|
||||||
DbContext.SaveChangesAsync();
|
|
||||||
return newLessonEntity;
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in new issue