Modification du service des succès

pull/37/head
Clement CHIEU 1 year ago
parent 5686b7267a
commit 4eee15fa4d

@ -28,8 +28,8 @@ builder.Services.AddScoped<IInquiryService<InquiryDTO>, InquiryDataServiceApi>()
builder.Services.AddScoped<IParagraphService<ParagraphEntity>, ParagraphDataService>();
builder.Services.AddScoped<IParagraphService<ParagraphDTO>, ParagraphDataServiceApi>();
builder.Services.AddScoped<ISuccessService<SuccessEntity>, DbDataManager.Service.SuccessDataService>();
builder.Services.AddScoped<ISuccessService<SuccessDTO>, Shared.SuccessDataService>();
builder.Services.AddScoped<ISuccessService<SuccessEntity>, SuccessDataService>();
builder.Services.AddScoped<ISuccessService<SuccessDTO>, SuccessDataServiceApi>();
builder.Services.AddScoped<ILessonService<LessonEntity>, LessonDataService>();
builder.Services.AddScoped<ILessonService<LessonDTO>, LessonDataServiceApi>();

@ -1,26 +1,28 @@
using Entities;
using Dto;
using Entities;
using Model.OrderCriteria;
using Shared;
using Shared.Mapper;
namespace API.Service;
public class SuccessDataServiceApi(ISuccessService<SuccessEntity> sucessService) : ISuccessService<SuccessEntity>
public class SuccessDataServiceApi(ISuccessService<SuccessEntity> sucessService) : ISuccessService<SuccessDTO>
{
public IEnumerable<SuccessEntity> GetSuccesses(int page, int number, SuccessOrderCriteria orderCriteria)
public IEnumerable<SuccessDTO> GetSuccesses(int page, int number, SuccessOrderCriteria orderCriteria)
{
var successesEntities = sucessService.GetSuccesses(page, number, orderCriteria);
return successesEntities.Select(e => e).ToList();
return successesEntities.Select(e => e.FromEntityToDTO()).ToList();
}
public SuccessEntity GetSuccessByUserId(int id) => sucessService.GetSuccessByUserId(id);
public SuccessDTO GetSuccessByUserId(int id) => sucessService.GetSuccessByUserId(id).FromEntityToDTO();
public SuccessEntity GetSuccessByInquiryId(int id) => sucessService.GetSuccessByInquiryId(id);
public SuccessDTO GetSuccessByInquiryId(int id) => sucessService.GetSuccessByInquiryId(id).FromEntityToDTO();
public bool DeleteSuccess(int id) => sucessService.DeleteSuccess(id);
public SuccessEntity UpdateSuccess(int id, SuccessEntity success) =>
sucessService.UpdateSuccess(id, success);
public SuccessDTO UpdateSuccess(int id, SuccessDTO success) =>
sucessService.UpdateSuccess(id, success.FromDTOToEntity()).FromEntityToDTO();
public SuccessEntity CreateSuccess(int userId, int inquiryId, bool isFinished) =>
sucessService.CreateSuccess(userId, inquiryId, isFinished);
public SuccessDTO CreateSuccess(int userId, int inquiryId, bool isFinished) =>
sucessService.CreateSuccess(userId, inquiryId, isFinished).FromEntityToDTO();
}

@ -16,43 +16,61 @@ public class SuccessDataService : ISuccessService<SuccessEntity>
context.Database.EnsureCreated();
}
public SuccessEntity GetSuccessByUserId(int id)
public IEnumerable<SuccessEntity> GetSuccesses(int page, int number, SuccessOrderCriteria orderCriteria)
{
var successEntity = DbContext.Successes.FirstOrDefault(u => u.UserId == id);
if (successEntity == null)
IQueryable<SuccessEntity> query = DbContext.Successes.Skip((page - 1) * number).Take(number);
switch (orderCriteria)
{
throw new ArgumentException("Impossible de trouver le succès avec l'user id", nameof(id));
case SuccessOrderCriteria.None:
break;
case SuccessOrderCriteria.ByUserId:
query = query.OrderBy(s => s.UserId);
break;
case SuccessOrderCriteria.ByInquiryId:
query = query.OrderBy(s => s.InquiryId);
break;
case SuccessOrderCriteria.ByIsFinished:
query = query.OrderBy(s => s.IsFinished);
break;
default:
break;
}
return successEntity;
var successes = query.ToList();
return successes;
}
public SuccessEntity GetSuccessByInquiryId(int id)
public SuccessEntity GetSuccessByUserId(int id)
{
var successEntity = DbContext.Successes.FirstOrDefault(u => u.InquiryId == id);
if (successEntity == null)
var userEntity = DbContext.Successes.FirstOrDefault(u => u.UserId == id);
if (userEntity == null)
{
throw new ArgumentException("Impossible de trouver le succès avec l'inquiry id", nameof(id));
throw new ArgumentException("Impossible de trouver le succès", nameof(id));
}
return successEntity;
return userEntity;
}
public IEnumerable<SuccessEntity> GetSuccesses(int page, int number, SuccessOrderCriteria orderCriteria)
public SuccessEntity GetSuccessByInquiryId(int id)
{
return DbContext.Successes.Skip((page - 1) * number).Take(number).ToList()
.Select(u => u);
var userEntity = DbContext.Successes.FirstOrDefault(u => u.InquiryId == id);
if (userEntity == null)
{
throw new ArgumentException("Impossible de trouver le succès", nameof(id));
}
return userEntity;
}
public bool DeleteSuccess(int id)
{
var userEntity = DbContext.Successes.FirstOrDefault(u => u.UserId == id);
if (userEntity == null)
var successEntity = DbContext.Successes.FirstOrDefault(u => u.UserId == id);
if (successEntity == null)
{
return false;
}
DbContext.Successes.Remove(userEntity);
DbContext.Successes.Remove(successEntity);
DbContext.SaveChangesAsync();
return true;
}
@ -62,14 +80,12 @@ public class SuccessDataService : ISuccessService<SuccessEntity>
var updatingSuccess = DbContext.Successes.FirstOrDefault(u => u.UserId == id);
if (updatingSuccess == null)
{
throw new ArgumentException("Impossible de trouver le succès avec l'user id", nameof(id));
throw new ArgumentException("Impossible de trouver le succès", nameof(id));
}
updatingSuccess.UserId = success.UserId;
updatingSuccess.InquiryId = success.InquiryId;
updatingSuccess.IsFinished = success.IsFinished;
// Permet d'indiquer en Db que l'entité a été modifiée.
DbContext.Entry(updatingSuccess).State = EntityState.Modified;
DbContext.SaveChangesAsync();
return updatingSuccess;
}

@ -12,7 +12,7 @@ using Microsoft.Extensions.Logging;
using Model.OrderCriteria;
using Service_LessonDataService = DbDataManager.Service.LessonDataService;
using Service_ParagraphDataService = DbDataManager.Service.ParagraphDataService;
using SuccessDataService = Shared.SuccessDataService;
using Service_SuccessDataService = DbDataManager.Service.SuccessDataService;
using UserDataService = Shared.UserDataService;
var connection = new SqliteConnection("DataSource=:memory:");
@ -36,7 +36,7 @@ using (var context = new UserDbContext(options))
var paragraphController = new ParagraphsController(new ParagraphDataServiceApi(new Service_ParagraphDataService(context)), paragraphLogger);
var lessonController =
new LessonsController(new LessonDataServiceApi(new Service_LessonDataService(context)), lessonLogger);
var successController = new SuccessesController(new SuccessDataService(context), successLogger);
var successController = new SuccessesController(new SuccessDataServiceApi(new Service_SuccessDataService(context)), successLogger);
void PrintUsers()
{

Loading…
Cancel
Save