Suppression des propriétés de navigation dans InquiryEntity qui provoquaient une NullPointerException et qui étaient inutiles #35

Merged
johnny.ratton merged 1 commits from inquiryEntity into master 1 year ago

@ -95,12 +95,12 @@ namespace API.Controllers
[ProducesResponseType(typeof(string), 400)]
public IActionResult CreateInquiry([FromBody] InquiryDTO dto)
{
if (dto.Title == null || dto.Description == null || dto.Database == null || dto.InquiryTable == null)
if (dto.Title == null || dto.Description == null)
{
return BadRequest();
}
_logger.LogInformation("[INFORMATION] Une enquête a été créé : title - {title}, description - {description}, isUser - {isUser}, database - {database}, inquiryTable - {inquiryTable}", dto.Title, dto.Description, dto.IsUser, dto.Database, dto.InquiryTable);
return Created(nameof(GetInquiries), _inquiryDataService.CreateInquiry(dto.Title, dto.Description, dto.IsUser, dto.Database, dto.InquiryTable));
_logger.LogInformation("[INFORMATION] Une enquête a été créé : title - {title}, description - {description}, isUser - {isUser}", dto.Title, dto.Description, dto.IsUser);
return Created(nameof(GetInquiries), _inquiryDataService.CreateInquiry(dto.Title, dto.Description, dto.IsUser));
}
[HttpPut("inquiry/{id}")]

@ -6,9 +6,9 @@ namespace API.Service;
public class InquiryDataServiceApi(IInquiryService<InquiryEntity> inquiryService) : IInquiryService<InquiryEntity>
{
public InquiryEntity CreateInquiry(string title, string description, bool isUser, int tableId, int solutionId)
public InquiryEntity CreateInquiry(string title, string description, bool isUser)
{
return inquiryService.CreateInquiry(title, description, isUser, tableId, solutionId);
return inquiryService.CreateInquiry(title, description, isUser);
}
public bool DeleteInquiry(int id)

@ -68,23 +68,19 @@ public class InquiryDataService : IInquiryService<InquiryEntity>
updatingInquiry.Title = inquiry.Title;
updatingInquiry.Description = inquiry.Description;
updatingInquiry.IsUser = inquiry.IsUser;
updatingInquiry.IdInquiryTable = inquiry.IdInquiryTable;
updatingInquiry.IdDatabase = inquiry.IdDatabase;
// Permet d'indiquer en Db que l'entité a été modifiée.
DbContext.Entry(updatingInquiry).State = EntityState.Modified;
DbContext.SaveChangesAsync();
return updatingInquiry;
}
public InquiryEntity CreateInquiry(string title, string description, bool isUser, int tableId, int solutionId)
public InquiryEntity CreateInquiry(string title, string description, bool isUser)
{
var newInquiryEntity = new InquiryEntity()
{
Title = title,
Description = description,
IsUser = isUser,
IdDatabase = tableId,
IdInquiryTable = solutionId,
IsUser = isUser
};
DbContext.Inquiries.Add(newInquiryEntity);
DbContext.SaveChangesAsync();

@ -10,25 +10,18 @@ public class InquiryDTO
public bool IsUser { get; set; }
public int Database { get; set; }
public int InquiryTable { get; set; }
public InquiryDTO(int id, string title, string description, bool isUser, int database, int inquiryTable)
public InquiryDTO(int id, string title, string description, bool isUser)
{
Id = id;
Title = title;
Description = description;
IsUser = isUser;
Database = database;
InquiryTable = inquiryTable;
}
public InquiryDTO(string title, string description, bool isUser, int database, int inquiryTable)
public InquiryDTO(string title, string description, bool isUser)
{
Title = title;
Description = description;
IsUser = isUser;
Database = database;
InquiryTable = inquiryTable;
}
}

@ -1,15 +1,15 @@
namespace Entities;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Entities;
public class InquiryEntity
{
[Key]
public int Id { get; }
public string Title { get; set; }
public string Description { get; set; }
public bool IsUser { get; set; }
public int IdDatabase { get; set; }
public InquiryTableEntity Database { get; set; }
public int IdInquiryTable { get; set; }
public SolutionEntity InquiryTable { get; set; }
public InquiryEntity()
{
@ -20,36 +20,19 @@ public class InquiryEntity
Id = id;
}
public InquiryEntity(int id, string title, string description, bool isUser, InquiryTableEntity database,
SolutionEntity inquiryTable)
{
Id = id;
Title = title;
Description = description;
IsUser = isUser;
Database = database;
InquiryTable = inquiryTable;
}
public InquiryEntity(string title, string description, bool isUser, InquiryTableEntity database,
SolutionEntity inquiryTable)
public InquiryEntity(string title, string description, bool isUser)
{
Id = 0;
Title = title;
Description = description;
IsUser = isUser;
Database = database;
InquiryTable = inquiryTable;
}
public InquiryEntity(int id, string title, string description, bool isUser, int database,
int inquiryTable)
public InquiryEntity(int id, string title, string description, bool isUser)
{
Id = id;
Title = title;
Description = description;
IsUser = isUser;
IdDatabase = database;
IdInquiryTable = inquiryTable;
}
}

@ -6,18 +6,14 @@ public class Inquiry
public string Title { get; set; }
public string Description { get; set; }
public bool IsUser { get; set; }
public int Database { get; set; }
public int InquiryTable { get; set; }
public Inquiry() { }
public Inquiry(int id, string title, string description, bool isUser, int database, int inquiryTable)
public Inquiry(int id, string title, string description, bool isUser)
{
Id = id;
Title = title;
Description = description;
IsUser = isUser;
Database = database;
InquiryTable = inquiryTable;
}
}

@ -10,5 +10,5 @@ public interface IInquiryDataService : IInquiryService<InquiryDTO>
public InquiryDTO GetInquiryByTitle(string title);
public bool DeleteInquiry(int id);
public InquiryDTO UpdateInquiry(int id, InquiryDTO inquiry);
public InquiryDTO CreateInquiry(string title, string description, bool isUser, int tableId, int solutionId);
public InquiryDTO CreateInquiry(string title, string description, bool isUser);
}

@ -9,5 +9,5 @@ public interface IInquiryService<TInquiry>
public TInquiry GetInquiryByTitle(string title);
public bool DeleteInquiry(int id);
public TInquiry UpdateInquiry(int id, TInquiry inquiry);
public TInquiry CreateInquiry(string title, string description, bool isUser, int tableId, int solutionId);
public TInquiry CreateInquiry(string title, string description, bool isUser);
}

@ -60,9 +60,9 @@ public class InquiryDataService : IInquiryDataService
return inquiryEntity.FromEntityToDTO();
}
public InquiryDTO CreateInquiry(string title, string description, bool isUser, int tableId, int solutionId)
public InquiryDTO CreateInquiry(string title, string description, bool isUser)
{
var newInquiryEntity = new InquiryDTO(title, description, isUser, tableId, solutionId);
var newInquiryEntity = new InquiryDTO(title, description, isUser);
DbContext.Inquiries.Add(newInquiryEntity.FromDTOToEntity());
DbContext.SaveChangesAsync();
return newInquiryEntity;
@ -90,8 +90,6 @@ public class InquiryDataService : IInquiryDataService
updatingInquiry.Title = inquiry.Title;
updatingInquiry.Description = inquiry.Description;
updatingInquiry.IsUser = inquiry.IsUser;
updatingInquiry.IdDatabase = inquiry.Database;
updatingInquiry.IdInquiryTable = inquiry.InquiryTable;
DbContext.SaveChangesAsync();
return updatingInquiry.FromEntityToDTO();
}

@ -8,37 +8,32 @@ public static class InquiryMapper
{
public static Inquiry FromDTOToModel(this InquiryDTO InqDto)
{
return new Inquiry(InqDto.Id, InqDto.Title, InqDto.Description, InqDto.IsUser, InqDto.Database,
InqDto.InquiryTable);
return new Inquiry(InqDto.Id, InqDto.Title, InqDto.Description, InqDto.IsUser);
}
public static Inquiry FromEntityToModel(this InquiryEntity InqEntity)
{
return new Inquiry(InqEntity.Id, InqEntity.Title, InqEntity.Description, InqEntity.IsUser,
InqEntity.Database.OwnerId, InqEntity.InquiryTable.OwnerId);
return new Inquiry(InqEntity.Id, InqEntity.Title, InqEntity.Description, InqEntity.IsUser);
}
public static InquiryEntity FromModelToEntity(this Inquiry Inq)
{
return new InquiryEntity(Inq.Id, Inq.Title, Inq.Description, Inq.IsUser, new InquiryTableEntity(Inq.Database),
new SolutionEntity(Inq.InquiryTable));
return new InquiryEntity(Inq.Id, Inq.Title, Inq.Description, Inq.IsUser);
}
public static InquiryEntity FromDTOToEntity(this InquiryDTO InqDto)
{
return new InquiryEntity(InqDto.Id, InqDto.Title, InqDto.Description, InqDto.IsUser,
new InquiryTableEntity(InqDto.Database), new SolutionEntity(InqDto.InquiryTable));
return new InquiryEntity(InqDto.Id, InqDto.Title, InqDto.Description, InqDto.IsUser);
}
public static InquiryDTO FromModelToDTO(this Inquiry Inq)
{
return new InquiryDTO(Inq.Id, Inq.Title, Inq.Description, Inq.IsUser, Inq.Database, Inq.InquiryTable);
return new InquiryDTO(Inq.Id, Inq.Title, Inq.Description, Inq.IsUser);
}
public static InquiryDTO FromEntityToDTO(this InquiryEntity InqEntity)
{
return new InquiryDTO(InqEntity.Id, InqEntity.Title, InqEntity.Description, InqEntity.IsUser,
InqEntity.Database.OwnerId, InqEntity.InquiryTable.OwnerId);
return new InquiryDTO(InqEntity.Id, InqEntity.Title, InqEntity.Description, InqEntity.IsUser);
}
}

@ -62,8 +62,8 @@ public class StubbedContext : UserDbContext
new SolutionEntity(3, "Erwan", "Menager", "La salle de bain", "L'arachide", "Parce que c'est Erwan"));
modelBuilder.Entity<InquiryEntity>().HasData(
new InquiryEntity(1, "L'enquête de la carotte", "La description de l'inquiry1", true, 1, 1),
new InquiryEntity(2, "L'enquête sur les orang outan", "The new description", false, 2, 2),
new InquiryEntity(3, "L'enquête sur les parapluies", "Il pleuvait", false, 3, 3));
new InquiryEntity(1, "L'enquête de la carotte", "La description de l'inquiry1", true),
new InquiryEntity(2, "L'enquête sur les orang outan", "The new description", false),
new InquiryEntity(3, "L'enquête sur les parapluies", "Il pleuvait", false));
}
}

@ -251,7 +251,7 @@ using (var context = new UserDbContext(options))
var database = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Veuillez saisir l'id de la solution :");
var solution = Convert.ToInt32(Console.ReadLine());
var res = inquiryController.CreateInquiry(new InquiryDTO(title, description, false, database, solution));
var res = inquiryController.CreateInquiry(new InquiryDTO(title, description, false));
if (res.GetType() == typeof(CreatedResult))
{
Console.WriteLine("\nEnquête créée avec succès");
@ -390,7 +390,7 @@ using (var context = new UserDbContext(options))
var database = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Veuillez saisir un commentaire :");
var inquiryTable = Convert.ToInt32(Console.ReadLine());
var retour = inquiryController.UpdateInquiry(id, new InquiryDTO(id, title, description, bool.Parse(isUser), database, inquiryTable));
var retour = inquiryController.UpdateInquiry(id, new InquiryDTO(id, title, description, bool.Parse(isUser)));
if (retour.GetType() == typeof(OkObjectResult))
{
Console.WriteLine("Mise à jour effectué avec succès !");

@ -164,7 +164,7 @@ using (var db = new StubbedContext(options))
Console.WriteLine(sol.MurdererFirstName);
var inquirySolution = await inquiries.FirstOrDefaultAsync(i => i.Title == "L'enquête sur les orang outan");
var i = inquirySolution.InquiryTable;
var i = inquirySolution.Id;
foreach (var pptt in typeof(SolutionEntity).GetProperties()
.Where(p => p.CanWrite && p.Name != nameof(SolutionEntity.Owner)))
{
@ -176,9 +176,7 @@ using (var db = new StubbedContext(options))
var newInquiry = new InquiryEntity(
"La nouvelle enquete",
"La description de la nouvelle enquete",
true,
null,
null);
true);
if (!inquiries.Any(inquiry => inquiry.Title == newInquiry.Title))
{
inquiries.Add(newInquiry);

Loading…
Cancel
Save