Room.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using fis.media.Library.Media.EventArgs;
  2. using fis.media.Library.Media.Members;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace fis.media.Library.Media.Rooms
  9. {
  10. public abstract class Room : IRoom
  11. {
  12. protected Room(RoomTypeEnum roomTypeEnum)
  13. {
  14. RoomTypeEnum= roomTypeEnum;
  15. }
  16. public string RoomId { get; set; }
  17. public List<AbstractMember> Members { get; set; }
  18. public RoomTypeEnum RoomTypeEnum { get; }
  19. public event EventHandler<ErrorArgs> ErrorAccurred;
  20. public event Action OnRoomClosed;
  21. public event EventHandler<AbstractMember> MemberJoined;
  22. public event EventHandler<AbstractMember> MemberLeaved;
  23. public virtual void Close()
  24. {
  25. Dispose();
  26. }
  27. public void Dispose()
  28. {
  29. DoDispose();
  30. }
  31. protected virtual bool DoDispose()
  32. {
  33. return true;
  34. }
  35. public virtual int EnterRoom(AbstractMember member)
  36. {
  37. Members.Add(member);
  38. return 1;
  39. }
  40. public virtual int KickMember(AbstractMember member)
  41. {
  42. throw new NotImplementedException();
  43. }
  44. }
  45. }