Skip to content

Commit 6b8a367

Browse files
committed
Update RemoveEvent feature for CMS 7.5
1 parent 2e782b3 commit 6b8a367

File tree

3 files changed

+127
-65
lines changed

3 files changed

+127
-65
lines changed

DeveloperTools/Controllers/RemoteEventController.cs

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,26 @@
1111
using System.Collections;
1212
using DeveloperTools.Models;
1313
using EPiServer.Events.Clients;
14+
using EPiServer.Events.Providers;
15+
using System.Threading.Tasks;
16+
using EPiServer.Licensing.Services;
1417

1518
namespace DeveloperTools.Controllers
1619
{
1720
public class RemoteEventController : DeveloperToolsController
1821
{
19-
static Guid RaiserId = Guid.NewGuid();
22+
private static Guid RaiserId = Guid.NewGuid();
23+
private readonly IEventRegistry _eventRegistry;
24+
private readonly ServerStateService _serverStateService;
25+
private readonly EventProviderService _providerService;
26+
27+
public RemoteEventController(IEventRegistry eventRegistry, ServerStateService serverStateService, EventProviderService providerService)
28+
{
29+
_eventRegistry = eventRegistry;
30+
_serverStateService = serverStateService;
31+
_providerService = providerService;
32+
}
33+
2034
public ActionResult Index()
2135
{
2236
return View("Index", GetRemoteEventModel());
@@ -28,10 +42,10 @@ public ActionResult SendMessage(SendRemoteEventModel sendRemoteEventModel)
2842
int i = 0;
2943
if (sendRemoteEventModel.EventId != Guid.Empty)
3044
{
31-
Event e = new Event(sendRemoteEventModel.EventId);
45+
Event e = Event.Get(sendRemoteEventModel.EventId);
3246
for (; i < sendRemoteEventModel.NumberOfevents; i++)
3347
{
34-
e.Raise(RaiserId, sendRemoteEventModel.Param);
48+
Task.Factory.StartNew(() => e.Raise(RaiserId, sendRemoteEventModel.Param));
3549
}
3650
sendRemoteEventModel.NumberOfeventsSent = i;
3751
}
@@ -49,15 +63,31 @@ private RemoteEventsModel GetRemoteEventModel()
4963
List<RemoteEventModel> remoteEventModel = new List<RemoteEventModel>();
5064
long sentEvents = 0;
5165
long receivedEvents = 0;
52-
foreach (var ev in Event.GetAll())
66+
foreach (var ev in _eventRegistry.List())
5367
{
54-
var rm = new RemoteEventModel() { Name = ev.Id.ToString(), NumberOfReceived = RemoteEventsManager.GetReceivedCount(ev.Id), NumberOfSent = RemoteEventsManager.GetSentCount(ev.Id) };
68+
var rm = new RemoteEventModel() { Name = ev.Id.ToString(), NumberOfReceived = ev.ReceivedCount, NumberOfSent = ev.SentCount };
5569
sentEvents += rm.NumberOfSent;
5670
receivedEvents += rm.NumberOfReceived;
5771
remoteEventModel.Add(rm);
5872
}
59-
var model = new RemoteEventsModel() { RemoteEventModel = remoteEventModel, TotalNumberOfReceivedEvent = receivedEvents, TotalNumberOfSentEvent = sentEvents };
60-
return model;
73+
74+
var activeServers = LicensingServices.Instance.GetService<IServerStateService>().GetActiveServers();
75+
76+
var remoteServers = _serverStateService.CurrentServerState()
77+
.Where(x => x.Active)
78+
.ToArray();
79+
80+
return new RemoteEventsModel()
81+
{
82+
RemoteEventModel = remoteEventModel,
83+
TotalNumberOfReceivedEvent = receivedEvents,
84+
TotalNumberOfSentEvent = sentEvents,
85+
ActiveServers = activeServers,
86+
ServerState = remoteServers,
87+
ProviderName = _providerService.DefaultProvider.Description ?? _providerService.DefaultProvider.Name,
88+
ProviderType = _providerService.DefaultProvider.GetType().FullName,
89+
Enabled = _providerService.Enabled
90+
};
6191
}
6292
}
6393
}

DeveloperTools/Models/RemoteEventModel.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.Text;
55
using System.Reflection;
66
using System.Collections;
7+
using EPiServer.Events.Clients;
78

89
namespace DeveloperTools.Models
910
{
@@ -12,14 +13,19 @@ public class RemoteEventsModel
1213
{
1314
public RemoteEventsModel()
1415
{
15-
RemoteEventModel = Enumerable.Empty<RemoteEventModel>();
16+
RemoteEventModel = Enumerable.Empty<RemoteEventModel>();
1617
SendRemoteEventModel = new SendRemoteEventModel();
1718
}
1819

19-
public IEnumerable<RemoteEventModel> RemoteEventModel {get;set;}
20+
public IEnumerable<RemoteEventModel> RemoteEventModel { get; set; }
2021
public long TotalNumberOfSentEvent { get; set; }
2122
public long TotalNumberOfReceivedEvent { get; set; }
2223
public SendRemoteEventModel SendRemoteEventModel { get; set; }
24+
public IEnumerable<string> ActiveServers { get; set; }
25+
public IEnumerable<ServerState> ServerState { get; set; }
26+
public string ProviderName { get; set; }
27+
public string ProviderType { get; set; }
28+
public bool Enabled { get; set; }
2329
}
2430

2531
[Serializable]
Lines changed: 82 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,93 @@
11
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<RemoteEventsModel>" MasterPageFile="../Shared/DeveloperTools.Master" %>
2-
<%@ Assembly Name="DeveloperTools" %>
3-
<%@ Import namespace="DeveloperTools.Models" %>
4-
5-
<asp:Content ID="Content" runat="server" ContentPlaceHolderID="MainRegion">
62

7-
<link rel="stylesheet" type="text/css" href="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.0/css/jquery.dataTables.css" />
8-
<script type="text/javascript" language="javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"></script>
9-
<script src="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.0/jquery.dataTables.min.js" type="text/javascript"></script>
3+
<%@ Assembly Name="DeveloperTools" %>
4+
<%@ Import Namespace="DeveloperTools.Models" %>
105

11-
<h1>A tool uses for show diagnostic and statical Remote Events</h1>
6+
<asp:Content ID="Content" runat="server" ContentPlaceHolderID="MainRegion">
127

13-
<p>Number of Event Types: <strong><%: Model.RemoteEventModel != null ? Model.RemoteEventModel.Count():0%>.</strong></p>
14-
<p>Total Number of Sent Events: <strong><%: Model.TotalNumberOfSentEvent%>.</strong></p>
15-
<p>Total Number of Received Events: <strong><%: Model.TotalNumberOfReceivedEvent%>.</strong></p>
8+
<link rel="stylesheet" type="text/css" href="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/css/jquery.dataTables.css" />
9+
<script type="text/javascript" language="javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js"></script>
10+
<script src="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/jquery.dataTables.min.js" type="text/javascript"></script>
1611

17-
<table cellpadding="0" cellspacing="0" border="0" class="display" id="theList">
18-
<thead>
19-
<tr>
20-
<th align="left">Name</th>
21-
<th align="left">Number of Sent Events</th>
22-
<th align="left">Number Of Received Events</th>
23-
</tr>
24-
</thead>
25-
<tbody>
26-
<% foreach (var m in Model.RemoteEventModel)
27-
{%>
28-
<tr>
29-
<td><%:m.Name%></td>
30-
<td><%:m.NumberOfSent%></td>
31-
<td><%:m.NumberOfReceived %></td>
32-
</tr>
33-
<%}%>
34-
</tbody>
35-
</table>
12+
<h1>A tool uses for show diagnostic and statical Remote Events</h1>
3613

37-
<br />
38-
<br />
39-
<br />
40-
<div>
14+
<p style="margin-bottom: .5em">
15+
Configuration status: <strong><%: Model.Enabled ? "Enabled" : "Disabled" %></strong><br />
16+
Provider: <strong><%: Model.ProviderName %></strong> (<%: Model.ProviderType %>)<br />
17+
Remote servers: <strong><%: Model.ServerState.Count() %></strong><br />
18+
Licensed servers: <strong><%: Model.ActiveServers.Count() %></strong> (<%: string.Join(", ", Model.ActiveServers) %>)
19+
</p>
20+
<table cellpadding="0" cellspacing="0" border="0" class="display dataTable" id="serverList">
21+
<thead>
22+
<tr>
23+
<th align="left">Server</th>
24+
<th align="left">Application</th>
25+
<th align="left">Last Contact</th>
26+
</tr>
27+
</thead>
28+
<tbody>
29+
<% foreach (var s in Model.ServerState)
30+
{%>
31+
<tr>
32+
<td><%: s.ServerName %></td>
33+
<td><%: s.ApplicationName %></td>
34+
<td><%: s.LastContact %></td>
35+
</tr>
36+
<%}%>
37+
</tbody>
38+
</table>
4139

40+
<p style="margin-bottom: .5em">
41+
Number of Event Types: <strong><%: Model.RemoteEventModel != null ? Model.RemoteEventModel.Count():0%>.</strong><br />
42+
Total Number of Sent Events: <strong><%: Model.TotalNumberOfSentEvent%>.</strong><br />
43+
Total Number of Received Events: <strong><%: Model.TotalNumberOfReceivedEvent%>.</strong>
44+
</p>
4245

43-
<% using (Html.BeginForm("Index", "RemoteEvent", new { }, FormMethod.Post))
44-
{ %>
45-
<%=Html.Label("EventId")%>: <%=Html.TextBoxFor(m=>m.SendRemoteEventModel.EventId) %>
46-
<%=Html.Label("Param")%>: <%=Html.TextBoxFor(m=>m.SendRemoteEventModel.Param) %>
47-
<%=Html.Label("Number Of Events")%>: <%=Html.TextBoxFor(m=>m.SendRemoteEventModel.NumberOfevents) %>
48-
<input type="submit" value="Send Message" />
49-
Sent message: <%:Model.SendRemoteEventModel.NumberOfeventsSent%>
50-
<% } %>
51-
</div>
46+
<table cellpadding="0" cellspacing="0" border="0" class="display dataTable" id="eventList">
47+
<thead>
48+
<tr>
49+
<th align="left">Name</th>
50+
<th align="left">Number of Sent Events</th>
51+
<th align="left">Number Of Received Events</th>
52+
</tr>
53+
</thead>
54+
<tbody>
55+
<% foreach (var m in Model.RemoteEventModel)
56+
{%>
57+
<tr>
58+
<td><%:m.Name%></td>
59+
<td><%:m.NumberOfSent%></td>
60+
<td><%:m.NumberOfReceived %></td>
61+
</tr>
62+
<%}%>
63+
</tbody>
64+
</table>
65+
<br />
66+
<br />
67+
<br />
68+
<div>
69+
<% using (Html.BeginForm("Index", "RemoteEvent", new { }, FormMethod.Post))
70+
{ %>
71+
<%=Html.Label("EventId")%>: <%=Html.TextBoxFor(m=>m.SendRemoteEventModel.EventId) %>
72+
<%=Html.Label("Param")%>: <%=Html.TextBoxFor(m=>m.SendRemoteEventModel.Param) %>
73+
<%=Html.Label("Number Of Events")%>: <%=Html.TextBoxFor(m=>m.SendRemoteEventModel.NumberOfevents) %>
74+
<input type="submit" value="Send Message" />
75+
Sent message: <%:Model.SendRemoteEventModel.NumberOfeventsSent%>
76+
<% } %>
77+
</div>
5278

53-
<script>
54-
$(document).ready(function () {
55-
$('#theList').dataTable(
56-
{
57-
"aaSorting": [[3, "desc"]],
58-
"bPaginate": false,
59-
"bLengthChange": false,
60-
"bFilter": true,
61-
"bSort": true,
62-
"bInfo": false,
63-
"bAutoWidth": true
79+
<script>
80+
$(document).ready(function () {
81+
$('.dataTable').dataTable(
82+
{
83+
"aaSorting": [[3, "desc"]],
84+
"bPaginate": false,
85+
"bLengthChange": false,
86+
"bFilter": true,
87+
"bSort": true,
88+
"bInfo": false,
89+
"bAutoWidth": true
90+
});
6491
});
65-
});
66-
</script>
92+
</script>
6793
</asp:Content>

0 commit comments

Comments
 (0)