parent
d8e041736f
commit
1107d035cb
@ -1,101 +0,0 @@
|
||||
using Entities;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Dto;
|
||||
using Model.OrderCriteria;
|
||||
using DbContextLib;
|
||||
using Shared.Mapper;
|
||||
|
||||
namespace Shared;
|
||||
|
||||
public class InquiryDataService : IInquiryDataService
|
||||
{
|
||||
private UserDbContext DbContext { get; set; }
|
||||
|
||||
public InquiryDataService(UserDbContext context)
|
||||
{
|
||||
DbContext = context;
|
||||
context.Database.EnsureCreated();
|
||||
}
|
||||
|
||||
public IEnumerable<InquiryDTO> GetInquiries(int page, int number, InquiryOrderCriteria orderCriteria)
|
||||
{
|
||||
IQueryable<InquiryEntity> query = DbContext.Inquiries.Skip((page - 1) * number).Take(number);
|
||||
switch (orderCriteria)
|
||||
{
|
||||
case InquiryOrderCriteria.None:
|
||||
break;
|
||||
case InquiryOrderCriteria.ByTitle:
|
||||
query = query.OrderBy(s => s.Title);
|
||||
break;
|
||||
case InquiryOrderCriteria.ByDescription:
|
||||
query = query.OrderBy(s => s.Description);
|
||||
break;
|
||||
case InquiryOrderCriteria.ByIsUser:
|
||||
query = query.OrderBy(s => s.IsUser);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
var inquiries = query.ToList();
|
||||
return inquiries.Select(s => s.FromEntityToDTO());
|
||||
}
|
||||
|
||||
public InquiryDTO GetInquiryById(int id)
|
||||
{
|
||||
var inquiryEntity = DbContext.Inquiries.FirstOrDefault(i => i.Id == id);
|
||||
if (inquiryEntity == null)
|
||||
{
|
||||
throw new ArgumentException("Impossible de trouver l'enquête", nameof(id));
|
||||
}
|
||||
|
||||
return inquiryEntity.FromEntityToDTO();
|
||||
}
|
||||
|
||||
public InquiryDTO GetInquiryByTitle(string title)
|
||||
{
|
||||
var inquiryEntity = DbContext.Inquiries.FirstOrDefault(i => i.Title == title);
|
||||
if (inquiryEntity == null)
|
||||
{
|
||||
throw new ArgumentException("Impossible de trouver l'enquête", nameof(title));
|
||||
}
|
||||
|
||||
return inquiryEntity.FromEntityToDTO();
|
||||
}
|
||||
|
||||
public InquiryDTO CreateInquiry(string title, string description, bool isUser)
|
||||
{
|
||||
var newInquiryEntity = new InquiryDTO(title, description, isUser);
|
||||
DbContext.Inquiries.Add(newInquiryEntity.FromDTOToEntity());
|
||||
DbContext.SaveChangesAsync();
|
||||
return newInquiryEntity;
|
||||
}
|
||||
|
||||
public bool DeleteInquiry(int id)
|
||||
{
|
||||
var inquiryEntity = DbContext.Inquiries.FirstOrDefault(u => u.Id == id);
|
||||
if (inquiryEntity == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
DbContext.Inquiries.Remove(inquiryEntity);
|
||||
DbContext.SaveChangesAsync();
|
||||
return true;
|
||||
}
|
||||
|
||||
public InquiryDTO UpdateInquiry(int id, InquiryDTO inquiry)
|
||||
{
|
||||
var updatingInquiry = DbContext.Inquiries.FirstOrDefault(u => u.Id == id);
|
||||
if (updatingInquiry == null)
|
||||
{
|
||||
throw new ArgumentException("Impossible de trouver l'enquête", nameof(id));
|
||||
}
|
||||
|
||||
updatingInquiry.Title = inquiry.Title;
|
||||
updatingInquiry.Description = inquiry.Description;
|
||||
updatingInquiry.IsUser = inquiry.IsUser;
|
||||
DbContext.SaveChangesAsync();
|
||||
return updatingInquiry.FromEntityToDTO();
|
||||
}
|
||||
}
|
Loading…
Reference in new issue