using System.Collections.Generic;
public int UserId { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public bool HasConsented { get; set; }
public DateTime ConsentDate { get; set; }
public int ConsentId { get; set; }
public int UserId { get; set; }
public DateTime ConsentDate { get; set; }
public string ConsentDetails { get; set; }
public bool IsActive { get; set; }
public DateTime ExpiryDate { get; set; }
public int PrivilegeId { get; set; }
public int UserId { get; set; }
public string PrivilegeType { get; set; }
public DateTime StartDate { get; set; }
public DateTime ExpiryDate { get; set; }
public bool IsActive { get; set; }
public class UserConsentService
public List<User> Users { get; set; }
public List<Consent> Consents { get; set; }
public List<Privilege> Privileges { get; set; }
public UserConsentService()
Users = new List<User>();
Consents = new List<Consent>();
Privileges = new List<Privilege>();
public bool CheckUserConsent(int userId)
var user = Users.FirstOrDefault(u => u.UserId == userId);
Console.WriteLine("Utilisateur non trouvé.");
var consent = Consents.FirstOrDefault(c => c.UserId == userId && c.IsActive && c.ExpiryDate > DateTime.Now);
Console.WriteLine($"Consentement validé pour l'utilisateur {user.FirstName} {user.LastName}.");
Console.WriteLine($"Aucun consentement valide trouvé pour l'utilisateur {user.FirstName} {user.LastName}.");
public void AddConsent(int userId, string details, DateTime expiryDate)
var user = Users.FirstOrDefault(u => u.UserId == userId);
var consent = new Consent
ConsentDate = DateTime.Now,
ConsentDetails = details,
user.HasConsented = true;
Console.WriteLine($"Consentement ajouté pour {user.FirstName} {user.LastName}.");
public bool CheckPrivilege(int userId, string privilegeType)
var privilege = Privileges.FirstOrDefault(p => p.UserId == userId && p.PrivilegeType == privilegeType && p.IsActive && p.ExpiryDate > DateTime.Now);
Console.WriteLine($"Privilège '{privilegeType}' valide pour l'utilisateur {userId}.");
Console.WriteLine($"Privilège '{privilegeType}' non valide pour l'utilisateur {userId}.");
public void AddPrivilege(int userId, string privilegeType, DateTime startDate, DateTime expiryDate)
var privilege = new Privilege
PrivilegeType = privilegeType,
Privileges.Add(privilege);
Console.WriteLine($"Privilège '{privilegeType}' accordé à l'utilisateur {userId}.");
public void RevokePrivilege(int userId, string privilegeType)
var privilege = Privileges.FirstOrDefault(p => p.UserId == userId && p.PrivilegeType == privilegeType && p.IsActive);
privilege.IsActive = false;
Console.WriteLine($"Privilège '{privilegeType}' révoqué pour l'utilisateur {userId}.");
public static void Main(string[] args)
var userService = new UserConsentService();
var user1 = new User { UserId = 1, FirstName = "John", LastName = "Doe", Email = "john.doe@example.com" };
var user2 = new User { UserId = 2, FirstName = "Jane", LastName = "Smith", Email = "jane.smith@example.com" };
userService.Users.Add(user1);
userService.Users.Add(user2);
userService.AddConsent(1, "Consentement pour le traitement des données personnelles.", DateTime.Now.AddMonths(1));
userService.AddConsent(2, "Consentement pour le traitement des données personnelles.", DateTime.Now.AddMonths(3));
userService.AddPrivilege(1, "Admin", DateTime.Now, DateTime.Now.AddMonths(1));
userService.AddPrivilege(2, "User", DateTime.Now, DateTime.Now.AddMonths(2));
userService.CheckUserConsent(1);
userService.CheckUserConsent(2);
userService.CheckPrivilege(1, "Admin");
userService.CheckPrivilege(2, "User");
userService.RevokePrivilege(1, "Admin");
userService.CheckPrivilege(1, "Admin");