示例#1
0
        public IEnumerable <ClientDataMeterZoneInfo> GetChanged()
        {
            var currentClientDataMeterStates = _getZoneInfos()
                                               .Select(x => ClientDataMeterZoneInfo.Create(x, DataMeter))
                                               .ToHashSet();

            foreach (var x in currentClientDataMeterStates
                     .Except(_previousClientDataMeterStates))
            {
                yield return(x);
            }

            _previousClientDataMeterStates = currentClientDataMeterStates;
        }
示例#2
0
        public async Task RequestZonesFor(int dataMeterWebId)
        {
            var initialState = GameServer
                               .Instance
                               .SimulationSession
                               .Area
                               .EnumerateZoneInfos()
                               .Select(x => ClientDataMeterZoneInfo.Create(x, DataMeterInstances.DataMeters.Single(y => y.WebId == dataMeterWebId)))
                               .Where(x => !string.IsNullOrWhiteSpace(x.colour));

            foreach (var batchState in initialState.GetBatched(100))
            {
                await Clients.Caller.SendAsync("submitDataMeterInfos", batchState);
            }
        }