using System; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Web; using ApacKernel; using ApacKernel.Services.SignalR; using Microsoft.AspNet.SignalR; using Microsoft.AspNet.SignalR.Hubs; using Now.Business; using Now.Entities; using Now.Web.Hubs; namespace Now.Web.Tickers { public class DcDispatchStatisticsTicker : TickerBase { private readonly static Lazy _instance = new Lazy(() => new DcDispatchStatisticsTicker(GlobalHost.ConnectionManager.GetHubContext().Clients)); public DcDispatchStatisticsTicker(IHubConnectionContext clients) : base(clients) { } public static DcDispatchStatisticsTicker Instance { get { return _instance.Value; } } private string GetInterval(string groupName) { return groupName.Substring(groupName.IndexOf('_') + 1); } protected override void GetAndSendData(object state = null) { var groups = DcDispatchStatisticsHub.GetGroups(); if (groups != null && Clients != null) foreach (var group in groups) { Clients.Group(group) .updateCharts( DistributionCenterWorkflow.Instance.GetDispatchedUnitsStatistics(GetInterval(group)).ToList()); } } protected override TimeSpan UpdateInterval { get { return ApacConfig.AppSettings.DcStatisticsTicks(); } } } }