Skip to content

Commit fc2e584

Browse files
committedJul 24, 2016
little update
1 parent da9478c commit fc2e584

File tree

6 files changed

+189
-37
lines changed

6 files changed

+189
-37
lines changed
 

‎models/User.cs

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*********************************************************************************************
2+
*
3+
* ILS-Sim.org Apps
4+
* Copyright (C) 2016 ils-sim.org Team
5+
*
6+
* This program is free software; you can redistribute it and/or modify it under the terms
7+
* of the GNU General Public License as published by the Free Software Foundation; either
8+
* version 3 of the License, or (at your option) any later version.
9+
*
10+
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
11+
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12+
* See the GNU General Public License for more details.
13+
*
14+
* You should have received a copy of the GNU General Public License along with this
15+
* program; if not, see <http://www.gnu.org/licenses/>.
16+
*
17+
*********************************************************************************************/
18+
using System;
19+
20+
namespace models
21+
{
22+
public class User
23+
{
24+
public Int32 id { get; set; }
25+
26+
public String Name { get; set; }
27+
28+
public User(Int32 _id, String _Name)
29+
{
30+
id = _id;
31+
Name = _Name;
32+
}
33+
34+
public override string ToString()
35+
{
36+
return string.Format("[User: id={0}, Name={1}]", id, Name);
37+
}
38+
}
39+
}
40+

‎models/models.csproj

+1
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@
4343
<Compile Include="Emergency.cs" />
4444
<Compile Include="ControlCenter.cs" />
4545
<Compile Include="CarPosition.cs" />
46+
<Compile Include="User.cs" />
4647
</ItemGroup>
4748
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
4849
</Project>

‎network/API/EmergencyFactory.cs

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*********************************************************************************************
2+
*
3+
* ILS-Sim.org Apps
4+
* Copyright (C) 2016 ils-sim.org Team
5+
*
6+
* This program is free software; you can redistribute it and/or modify it under the terms
7+
* of the GNU General Public License as published by the Free Software Foundation; either
8+
* version 3 of the License, or (at your option) any later version.
9+
*
10+
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
11+
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12+
* See the GNU General Public License for more details.
13+
*
14+
* You should have received a copy of the GNU General Public License along with this
15+
* program; if not, see <http://www.gnu.org/licenses/>.
16+
*
17+
*********************************************************************************************/
18+
using NUnit.Framework;
19+
using System;
20+
using System.Collections.Generic;
21+
using models;
22+
23+
namespace network
24+
{
25+
public class EmergencyFactory : AbstractFactory<Emergency>
26+
{
27+
private static List<Emergency> _allEmergencies = null;
28+
29+
public static List<Emergency> GetAll()
30+
{
31+
if(_allEmergencies == null)
32+
{
33+
_allEmergencies = load("Emergencies");
34+
}
35+
return _allEmergencies;
36+
}
37+
38+
public static Emergency Get(int id)
39+
{
40+
List<Emergency> all = GetAll();
41+
foreach(var emergency in all)
42+
{
43+
if(emergency.id == id)
44+
{
45+
return emergency;
46+
}
47+
}
48+
return null;
49+
}
50+
}
51+
}
52+

‎network/API/UserFactory.cs

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*********************************************************************************************
2+
*
3+
* ILS-Sim.org Apps
4+
* Copyright (C) 2016 ils-sim.org Team
5+
*
6+
* This program is free software; you can redistribute it and/or modify it under the terms
7+
* of the GNU General Public License as published by the Free Software Foundation; either
8+
* version 3 of the License, or (at your option) any later version.
9+
*
10+
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
11+
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12+
* See the GNU General Public License for more details.
13+
*
14+
* You should have received a copy of the GNU General Public License along with this
15+
* program; if not, see <http://www.gnu.org/licenses/>.
16+
*
17+
*********************************************************************************************/
18+
using NUnit.Framework;
19+
using System;
20+
using System.Collections.Generic;
21+
using models;
22+
23+
namespace network
24+
{
25+
public class UserFactory : AbstractFactory<models.User>
26+
{
27+
private static List<models.User> _allUsers = null;
28+
29+
public static List<models.User> GetAll()
30+
{
31+
if(_allUsers == null)
32+
{
33+
_allUsers = load("user");
34+
}
35+
return _allUsers;
36+
}
37+
38+
public static models.User Get(int id)
39+
{
40+
List<models.User> all = GetAll();
41+
foreach(var user in all)
42+
{
43+
if(user.id == id)
44+
{
45+
return user;
46+
}
47+
}
48+
return null;
49+
}
50+
}
51+
}
52+

‎network/NetworkManager.cs

+42-37
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
*
1717
*********************************************************************************************/
1818
using System;
19-
using models;
19+
using System.Collections.Generic;
2020

2121
namespace network
2222
{
@@ -29,34 +29,34 @@ public NetworkManager(String host, Int32 port)
2929
client.onPackageReceive += new TCPClient.ReceivePacketEventHandler(PackageReceive);
3030
}
3131

32-
//public delegate void CallAcceptedEventHandler(CallAccept package);
33-
//public event CallAcceptedEventHandler onCallAccepted;
32+
public delegate void CallAcceptedEventHandler(models.Emergency emerg, models.User user);
33+
public event CallAcceptedEventHandler onCallAccepted;
3434

35-
public delegate void CaseEndEventHandler(Emergency emerg);
35+
public delegate void CaseEndEventHandler(models.Emergency emerg);
3636
public event CaseEndEventHandler onCaseEnd;
3737

38-
public delegate void CaseNewEventHandler(Emergency emerg);
38+
public delegate void CaseNewEventHandler(models.Emergency emerg);
3939
public event CaseNewEventHandler onCaseNew;
4040

41-
public delegate void CaseUpdateEventHandler(Emergency emerg);
41+
public delegate void CaseUpdateEventHandler(models.Emergency emerg);
4242
public event CaseUpdateEventHandler onCaseUpdate;
4343

44-
public delegate void EmergEndEventHandler(Emergency emerg);
44+
public delegate void EmergEndEventHandler(models.Emergency emerg);
4545
public event EmergEndEventHandler onEmergEnd;
4646

47-
public delegate void EmergNewEventHandler(Emergency emerg);
47+
public delegate void EmergNewEventHandler(models.Emergency emerg);
4848
public event EmergNewEventHandler onEmergNew;
4949

50-
public delegate void EmergUpdateEventHandler(Emergency emerg);
50+
public delegate void EmergUpdateEventHandler(models.Emergency emerg);
5151
public event EmergUpdateEventHandler onEmergUpdate;
5252

53-
public delegate void MsgChatEventHandler(User sender, String message);
53+
public delegate void MsgChatEventHandler(models.User sender, String message);
5454
public event MsgChatEventHandler onMsgChat;
5555

56-
public delegate void MsgPrivateEventHandler(User sender, String message);
56+
public delegate void MsgPrivateEventHandler(models.User sender, String message);
5757
public event MsgPrivateEventHandler onMsgPrivate;
5858

59-
public delegate void MsgWallEventHandler(User sender, String message);
59+
public delegate void MsgWallEventHandler(models.User sender, String message);
6060
public event MsgWallEventHandler onMsgWall;
6161

6262
public delegate void QuitEventHandler();
@@ -65,71 +65,73 @@ public NetworkManager(String host, Int32 port)
6565
public delegate void ServerWallEventHandler(String message);
6666
public event ServerWallEventHandler onServerWall;
6767

68-
//public delegate void UserListAnswerEventHandler(UserListAnswer package);
69-
//public event UserListAnswerEventHandler onUserListAnswer;
68+
public delegate void UserListAnswerEventHandler(List<models.User> users);
69+
public event UserListAnswerEventHandler onUserListAnswer;
7070

7171
public delegate void UserLoginAnswerEventHandler(bool loginwasok);
7272
public event UserLoginAnswerEventHandler onUserLoginAnswer;
7373

74-
public delegate void VehicleAlarmEventHandler(Car car);
74+
public delegate void VehicleAlarmEventHandler(models.Car car);
7575
public event VehicleAlarmEventHandler onVehicleAlarm;
7676

77-
public delegate void VehicleMsgEventHandler(Car car, String message);
77+
public delegate void VehicleMsgEventHandler(models.Car car, String message);
7878
public event VehicleMsgEventHandler onVehicleMsg;
7979

80-
public delegate void VehiclePositionEventHandler(Car car, CarPosition position);
80+
public delegate void VehiclePositionEventHandler(models.Car car, models.CarPosition position);
8181
public event VehiclePositionEventHandler onVehiclePosition;
8282

83-
public delegate void VehicleStornoEventHandler(Car car);
83+
public delegate void VehicleStornoEventHandler(models.Car car);
8484
public event VehicleStornoEventHandler onVehicleStorno;
8585

86-
public delegate void VehicleUpdateEventHandler(Car car);
86+
public delegate void VehicleUpdateEventHandler(models.Car car);
8787
public event VehicleUpdateEventHandler onVehicleUpdate;
8888

8989
private void PackageReceive(Protocol package)
9090
{
9191
Console.WriteLine(package.ToString());
9292
switch(package.Type)
9393
{
94-
/*case Protocol.Types.Type.CallAccepted:
94+
case Protocol.Types.Type.CallAccepted:
9595
if(onCallAccepted != null)
96-
onCallAccepted(package.CallAccepted);
97-
break;*/
96+
onCallAccepted(
97+
EmergencyFactory.Get(package.CallAccepted.IdEmerg),
98+
UserFactory.Get(package.CallAccepted.IdReciever));
99+
break;
98100
case Protocol.Types.Type.CaseEnd:
99101
if(onCaseEnd != null)
100-
onCaseEnd(package.CaseEnd);
102+
onCaseEnd(EmergencyFactory.Get(package.CaseEnd.IdCase));
101103
break;
102104
case Protocol.Types.Type.CaseNew:
103105
if(onCaseNew != null)
104-
onCaseNew(package.CaseNew);
106+
onCaseNew(EmergencyFactory.Get(package.CaseNew.IdCase));
105107
break;
106108
case Protocol.Types.Type.CaseUpdate:
107109
if(onCaseUpdate != null)
108-
onCaseNew(package.CaseNew);
110+
onCaseUpdate(EmergencyFactory.Get(package.CaseUpdate.IdCase));
109111
break;
110112
case Protocol.Types.Type.EmergEnd:
111113
if(onEmergEnd != null)
112-
onEmergEnd(package.EmergEnd);
114+
onEmergEnd(EmergencyFactory.Get(package.EmergEnd.IdEmerg));
113115
break;
114116
case Protocol.Types.Type.EmergNew:
115117
if(onEmergNew != null)
116-
onEmergNew(package.EmergNew);
118+
onEmergNew(EmergencyFactory.Get(package.EmergNew.IdEmerg));
117119
break;
118120
case Protocol.Types.Type.EmergUpdate:
119121
if(onEmergUpdate != null)
120-
onEmergUpdate(package.EmergUpdate);
122+
onEmergUpdate(EmergencyFactory.Get(package.EmergUpdate.IdEmerg));
121123
break;
122124
case Protocol.Types.Type.MsgChat:
123125
if(onMsgChat != null)
124-
onMsgChat(null, package.MsgChat.NewMessage);
126+
onMsgChat(UserFactory.Get(package.MsgChat.IdSender), package.MsgChat.NewMessage);
125127
break;
126128
case Protocol.Types.Type.MsgPrivate:
127129
if(onMsgPrivate != null)
128-
onMsgPrivate(null, package.MsgPrivate.NewMessage);
130+
onMsgPrivate(UserFactory.Get(package.MsgPrivate.IdSender), package.MsgPrivate.NewMessage);
129131
break;
130132
case Protocol.Types.Type.MsgWall:
131133
if(onMsgWall != null)
132-
onMsgWall(null, package.MsgWall.NewMessage);
134+
onMsgWall(UserFactory.Get(package.MsgWall.IdSender), package.MsgWall.NewMessage);
133135
break;
134136
case Protocol.Types.Type.Quit:
135137
if(onQuit != null)
@@ -145,27 +147,30 @@ private void PackageReceive(Protocol package)
145147
break;*/
146148
case Protocol.Types.Type.UserLoginAnswer:
147149
if(onUserLoginAnswer != null)
148-
onUserLoginAnswer(package.UserLoginAnswer.Servertime != null);
150+
onUserLoginAnswer(package.UserLoginAnswer.Servertime != 0);
149151
break;
150152
case Protocol.Types.Type.VehicleAlarm:
151153
if(onVehicleAlarm != null)
152-
onVehicleAlarm(CarFactory.Get(package.VehicleAlarm.IdVehicle), null);
154+
onVehicleAlarm(CarFactory.Get(package.VehicleAlarm.IdVehicle));
153155
break;
154156
case Protocol.Types.Type.VehicleMsg:
155157
if(onVehicleMsg != null)
156-
onVehicleMsg(package.VehicleMsg);
158+
onVehicleMsg(CarFactory.Get(package.VehicleMsg.IdVehicle), package.VehicleMsg.NewMessage);
157159
break;
158160
case Protocol.Types.Type.VehiclePosition:
159161
if(onVehiclePosition != null)
160-
onVehiclePosition(package.VehiclePosition);
162+
onVehiclePosition(
163+
CarFactory.Get(package.VehiclePosition.IdVehicle),
164+
new models.CarPosition(DateTime.Now,
165+
new models.Point(package.VehiclePosition.Latitude, package.VehiclePosition.Longitude)));
161166
break;
162167
case Protocol.Types.Type.VehicleStorno:
163168
if(onVehicleStorno != null)
164-
onVehicleStorno(package.VehicleStornno);
169+
onVehicleStorno(CarFactory.Get(package.VehicleStornno.IdVehicle));
165170
break;
166171
case Protocol.Types.Type.VehicleUpdate:
167172
if(onVehicleUpdate != null)
168-
onVehicleUpdate(package.VehicleUpdate);
173+
onVehicleUpdate(CarFactory.Get(package.VehicleUpdate.IdVehicle));
169174
break;
170175
}
171176
}

‎network/network.csproj

+2
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@
6565
<Link>HS\csharp_out\Vehicle.cs</Link>
6666
</Compile>
6767
<Compile Include="HS\TCPClient.cs" />
68+
<Compile Include="API\EmergencyFactory.cs" />
69+
<Compile Include="API\UserFactory.cs" />
6870
</ItemGroup>
6971
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
7072
<ItemGroup>

0 commit comments

Comments
 (0)
Please sign in to comment.