using AppliWebANA.Models; using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace AppliWebANA.Repositories.Messagerie { public class MessagerieRepositoryEnMemoire : MessagerieRepositoryBase { private static Dictionary> Messageries = new Dictionary>(); public override IList AjouterUtilisateur( string nomUtilisateur ) { nomUtilisateur = nomUtilisateur.ToUpper(); lock( MessagerieRepositoryEnMemoire.Messageries ) { List messages; if( !MessagerieRepositoryEnMemoire.Messageries.TryGetValue( nomUtilisateur, out messages ) ) { messages = new List() { new Message() { Expediteur = "SYSTÈME", Corps = "Bienvenue sur la messagerie" } }; MessagerieRepositoryEnMemoire.Messageries.Add( nomUtilisateur, messages ); } return messages.ToList(); } } public override void Envoyer( string destinataire, Message message ) { List messages; lock( MessagerieRepositoryEnMemoire.Messageries ) { messages = MessagerieRepositoryEnMemoire.Messageries[destinataire.ToUpper()]; } lock( messages ) { messages.Insert( 0, message ); } } public override IList ListerMessages( string nomUtilisateur ) { List messages; lock( MessagerieRepositoryEnMemoire.Messageries ) { messages = MessagerieRepositoryEnMemoire.Messageries[nomUtilisateur.ToUpper()]; } lock( messages ) { return messages.ToList(); } } public override IList ListerUtilisateurs() { lock( MessagerieRepositoryEnMemoire.Messageries ) { return MessagerieRepositoryEnMemoire.Messageries.Keys.ToList(); } } } }