-
Notifications
You must be signed in to change notification settings - Fork 0
/
VMRoom.cs
106 lines (89 loc) · 2.76 KB
/
VMRoom.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MagicTactilForWindows.Model;
using System.Windows.Input;
using MagicTactilForWindows.Utilities;
namespace MagicTactilForWindows.ViewModel
{
class VMRoom : APage
{
#region attribute
/*
* link to the server
*/
private Network _Server;
private Room _roomAssociated;
public Room roomAssociated
{
get { return _roomAssociated; }
set { _roomAssociated = value; }
}
private String name;
#region command
private ICommand __leave;
public ICommand leave
{
get
{
if (__leave == null)
__leave = new RelayCommand<object>(leaveRoom, null);
return __leave;
}
}
#endregion command
#endregion attribute
public VMRoom(Network Server)
{
_Server = Server;
_Server.LEARReturn += new EventHandler<serverReturnEventArgs>(r_LEAR);
_Server.DEROReturn += new EventHandler<serverReturnEventArgs>(r_DERO);
_Server.GETUReturn += new EventHandler<serverReturnEventArgs>(r_GETU);
}
#region server_return
void r_LEAR(object sender, serverReturnEventArgs e)
{
if (e.data.Contains("OK"))
{
MoveToEventArgs args = new MoveToEventArgs("Rooms");
EventHandler<MoveToEventArgs> handler = this.getMoveTo();
if (handler != null)
handler(this, args);
}
}
void r_DERO(object sender, serverReturnEventArgs e)
{
if (e.data.Contains("OK"))
{
MoveToEventArgs args = new MoveToEventArgs("Rooms");
EventHandler<MoveToEventArgs> handler = this.getMoveTo();
if (handler != null)
handler(this, args);
}
}
void r_GETU(object sender, serverReturnEventArgs e)
{
name = VMProfile.getval(e.data, "username");
_Server.GETUReturn -= new EventHandler<serverReturnEventArgs>(r_GETU);
}
#endregion server_return
#region event
public void roomAssociation(object sender, RoomEventArgs e)
{
roomAssociated = e.associated;
}
private void leaveRoom(object param)
{
if (name.Equals(roomAssociated.nameOwner))
{
_Server.DeleteRoom(name, roomAssociated.nameRoom);
}
else
{
_Server.LeaveRoom(name, roomAssociated.nameRoom);
}
}
#endregion event
}
}