MessagerieRepositoryEnMemoire.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using AppliWebANA.Models;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Web;
  6. namespace AppliWebANA.Repositories.Messagerie {
  7. public class MessagerieRepositoryEnMemoire : MessagerieRepositoryBase {
  8. private static Dictionary<string, List<Message>> Messageries = new Dictionary<string, List<Message>>();
  9. public override IList<Message> AjouterUtilisateur( string nomUtilisateur ) {
  10. nomUtilisateur = nomUtilisateur.ToUpper();
  11. lock( MessagerieRepositoryEnMemoire.Messageries ) {
  12. List<Message> messages;
  13. if( !MessagerieRepositoryEnMemoire.Messageries.TryGetValue( nomUtilisateur, out messages ) ) {
  14. messages = new List<Models.Message>() {
  15. new Message() {
  16. Expediteur = "SYSTÈME",
  17. Corps = "Bienvenue sur la messagerie"
  18. }
  19. };
  20. MessagerieRepositoryEnMemoire.Messageries.Add( nomUtilisateur, messages );
  21. }
  22. return messages.ToList();
  23. }
  24. }
  25. public override void Envoyer( string destinataire, Message message ) {
  26. List<Message> messages;
  27. lock( MessagerieRepositoryEnMemoire.Messageries ) {
  28. messages = MessagerieRepositoryEnMemoire.Messageries[destinataire.ToUpper()];
  29. }
  30. lock( messages ) {
  31. messages.Insert( 0, message );
  32. }
  33. }
  34. public override IList<Message> ListerMessages( string nomUtilisateur ) {
  35. List<Message> messages;
  36. lock( MessagerieRepositoryEnMemoire.Messageries ) {
  37. messages = MessagerieRepositoryEnMemoire.Messageries[nomUtilisateur.ToUpper()];
  38. }
  39. lock( messages ) {
  40. return messages.ToList();
  41. }
  42. }
  43. public override IList<string> ListerUtilisateurs() {
  44. lock( MessagerieRepositoryEnMemoire.Messageries ) {
  45. return MessagerieRepositoryEnMemoire.Messageries.Keys.ToList();
  46. }
  47. }
  48. }
  49. }