using DTOs; using Entities; using Model; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ExtensionsClassLibrairie { /// /// define some methods to manipulate entity, model and dto adminstrators : /// convert model to DTO, model to Entity, ... /// and equality protocols /// public static class AdministratorExtensionMethods { // conversion methods public static Administrator ToModel(this AdministratorEntity a) => new Administrator(a.Username, a.HashedPassword, a.Id); public static Administrator ToModel(this AdministratorDto a) => new Administrator(a.Username, a.HashedPassword, a.Id); public static AdministratorDto ToDto(this Administrator a) => new AdministratorDto { Id = a.Id, HashedPassword = a.HashedPassword, Username = a.Username }; public static AdministratorEntity ToEntity(this Administrator a) => new AdministratorEntity { Id = a.Id, HashedPassword = a.HashedPassword, Username = a.Username }; // reuse other methods public static AdministratorDto ToDto(this AdministratorEntity a) => a.ToModel().ToDto(); public static AdministratorEntity ToEntity(this AdministratorDto a) => a.ToModel().ToEntity(); public static string ToString(this AdministratorDto dto) { return $"{dto.Id} : {dto.Username}"; } } }