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