using Abp.Dependency;
using IwbZero.ToolCommon.StringModel;
using Microsoft.AspNet.SignalR;
using System;
using System.Linq;
namespace WeApp.Hubs
{
public class IwbHub : Hub, ITransientDependency
{
///
/// 注册链接
///
///
public void Register(string name)
{
Groups.Add(Context.ConnectionId, name);
}
public void SendReload(string no, int type)
{
var arr = no.Split(',').ToList();
var clientGroup = Clients.Groups(arr);
var str = new { no }.Obj2String();
switch (type)
{
case 1:
clientGroup.getReloadAll(str);
break;
case 2:
clientGroup.getReloadStu(str);
break;
case 3:
clientGroup.getReloadLeader(str);
break;
case 4:
clientGroup.getReloadPublic(str);
break;
case 5:
clientGroup.getReloadSpec(str);
break;
case 6:
clientGroup.getReloadPlay(str);
break;
case 20:
clientGroup.getShowTotalRoundScore(str, true);
break;
case 21:
clientGroup.getShowTotalRoundScore(str, false);
break;
}
}
public void SendRefreshCurrentTime(string no, decimal rate = 1, DateTime? date = null)
{
Clients.Group(no).getRefreshCurrentTime(new
{
no,
rate,
date
});
}
public void SendRefreshDownTime(string no, decimal rate = 1, int minute = 15)
{
Clients.Group(no).getRefreshDownTime(new
{
no,
rate,
minute
});
}
public void SendEffectCmd(string no, string effect)
{
Clients.Group(no).getEffectCmd(new
{
no,
effect
});
}
public void SendOperationLog(string no, string role, string word)
{
Clients.Group(no).getOperationLog(new { no, role, word }.Obj2String());
}
}
}