/// <summary> /// /// </summary> /// <param name="dataLogModel"></param> /// <param name="businessDataModel"></param> /// <returns></returns> public RatelHttpResponses Add_BusinessData_DataLog(DataLogModel dataLogModel, BusinessDataModel businessDataModel) { var response = new RatelHttpResponses(); dataLogModel.Data = businessDataModel.SerializeProtobuf(); using (var t = Datalog.dbEngine.GetTransaction()) { t.Insert(Datalog._Ratel_log, dataLogModel.Id, dataLogModel); t.Insert <string, string>(businessDataModel.tableName, businessDataModel.key, businessDataModel.content); t.Commit(); } //var _Node = ClustersNode.node.Where(x => x.Value.ConnectionStatus == true // && x.Value.me == false // && x.Value.master == true // && x.Value.channel != null); //foreach (var item in _Node) //{ // var node_item = item.Value; // try // { // var data = new RatelMessagePack() // { // command = Command.RequestCommand_DataLog,//AddBusinessData, // Data = null, // }; // var _byte = data.SerializeProtobuf(); // var _unpooled = Unpooled.WrappedBuffer(_byte); // node_item.channel.WriteAndFlushAsync(_unpooled); // } // catch (Exception ex) { } //} return(response); }
/// <summary> /// /// </summary> /// <param name="dataLogModel"></param> public RatelHttpResponses Add_IP_DataLog(DataLogModel dataLogModel, IPClustersModel iPClustersModel) { var response = new RatelHttpResponses(); Node.ClustersNode.AddNodeDic(new ClustersNodeSetting() { channel = null, ConnectionStatus = false, host = iPClustersModel.Content, master = iPClustersModel.Master, me = false }); List <NodeModel> nodeModels = new List <NodeModel>(); foreach (var item in Node.ClustersNode.node) { bool _me = item.Value.me; nodeModels.Add(new NodeModel() { host = item.Key, master = item.Value.master, me = _me }); } AddIPAddress(nodeModels); //dataLogModel.Data = nodeModels.SerializeProtobuf(); //using (var t = Datalog.dbEngine.GetTransaction()) //{ // t.Insert(Datalog._Ratel_log, dataLogModel.Id, dataLogModel); // t.Commit(); //} //var _Node = ClustersNode.node.Where(x => x.Value.ConnectionStatus == true // && x.Value.me == false // && x.Value.master == true // && x.Value.channel != null); //foreach (var item in _Node) //{ // var node_item = item.Value; // try // { // var data = new RatelMessagePack() // { // command = Command.RequestCommand_DataLog, // Data = null, // }; // var _byte = data.SerializeProtobuf(); // var _unpooled = Unpooled.WrappedBuffer(_byte); // node_item.channel.WriteAndFlushAsync(_unpooled); // } // catch (Exception ex) { } //} return(response); }
/// <summary> /// Initializes a new instance of the <see cref="MeterGraphPresenter"/> class. /// </summary> /// <param name="dataLogModel">The data log model.</param> /// <param name="eventAggregator">The event aggregator.</param> public MeterGraphPresenter(DataLogModel dataLogModel) { _dataLogModel = dataLogModel; CloseCommand = new DelegateCommand <object>(new Action <object>(o => { _backgroundWorker.Stop(); OnRequestRemoval(); })); _backgroundWorker.Tick += new EventHandler(BackgroundWorker_Tick); _backgroundWorker.Interval = TimeSpan.FromSeconds(1); }
/// <summary> /// Gets the data set for a particular date. /// </summary> /// <param name="date">The date.</param> /// <returns></returns> public DataLogModel GetDataSet(DateTime date) { DataLogModel data = new DataLogModel(); string fileName = Path.Combine(GetDataDirectory(), date.ToString("yyyy-MM-dd") + ".dsx"); if (File.Exists(fileName)) { data.ReadXml(fileName, System.Data.XmlReadMode.IgnoreSchema); foreach (var row in data.Impacts.Where(row => row.Timestamp.Date != date).ToList()) data.Impacts.RemoveImpactsRow(row); foreach (var row in data.Scores.Where(row => row.Timestamp.Date != date).ToList()) data.Scores.RemoveScoresRow(row); data.AcceptChanges(); } return data; }
/// <summary> /// Updates the game details. /// </summary> private void UpdateGameDetails() { this.IsDataAvailable = false; _gameData = _service.GetDataSet(this.GameDate); if (_gameData != null && _gameData.Impacts.Count > 0) { this.IsDataAvailable = true; this.FirstGameNumber = _gameData.Impacts.Min(row => row.GameNumber); this.LastGameNumber = _gameData.Impacts.Max(row => row.GameNumber); this.GameNumber = this.FirstGameNumber; } }
/// <summary> /// Initializes a new instance of the <see cref="ReceiverService"/> class. /// </summary> /// <param name="eventAggregator">The event aggregator.</param> public DataLogService(IUnityContainer container, IEventAggregator eventAggregator, ILoggerFacade logger, ConfigProperties config, DataLogModel dataLog, GameMetaDataModel game) { _container = container; _eventAggregator = eventAggregator; _logger = logger; _dataLog = dataLog; _game = game; _config = config; SubscribeEvents(); LoadDataSet(); if (dataLog.Impacts.Count > 0) { game.GameNumber = (byte)(dataLog.Impacts.Max(row => row.GameNumber) + 1); } _databaseWriter.DoWork += (sender, e) => WriteDatabaseToDisk(); }
/// <summary> /// Initializes a new instance of the <see cref="ReceiverService"/> class. /// </summary> /// <param name="eventAggregator">The event aggregator.</param> public DataLogService(IUnityContainer container, IEventAggregator eventAggregator, ILoggerFacade logger, ConfigProperties config, DataLogModel dataLog, GameMetaDataModel game) { _container = container; _eventAggregator = eventAggregator; _logger = logger; _dataLog = dataLog; _game = game; _config = config; SubscribeEvents(); LoadDataSet(); if (dataLog.Impacts.Count > 0) { game.GameNumber = (byte)(dataLog.Impacts.Max(row => row.GameNumber) + 1); } _databaseWriter.DoWork += (sender, e) => WriteDatabaseToDisk(); }
/// <summary> /// Updates the game details. /// </summary> private void UpdateGameDetails() { this.IsDataAvailable = false; using (new ShowBusyIndicator()) { this.gameData = GameHistoryService.GetDataForDate(this.SelectedGameDate); if (this.gameData != null && this.gameData.Impacts.Count > 0) { this.IsDataAvailable = true; this.FirstAvailableGameNumber = this.gameData.Impacts.Min(row => row.GameNumber); this.LastAvailableGameNumber = this.gameData.Impacts.Max(row => row.GameNumber); this.SelectedGameNumber = this.FirstAvailableGameNumber; } } }
/// <summary> /// Gets the data set for a particular date. /// </summary> /// <param name="date">The date.</param> /// <returns></returns> public DataLogModel GetDataSet(DateTime date) { DataLogModel data = new DataLogModel(); string fileName = Path.Combine(GetDataDirectory(), date.ToString("yyyy-MM-dd") + ".dsx"); if (File.Exists(fileName)) { data.ReadXml(fileName, System.Data.XmlReadMode.IgnoreSchema); foreach (var row in data.Impacts.Where(row => row.Timestamp.Date != date).ToList()) { data.Impacts.RemoveImpactsRow(row); } foreach (var row in data.Scores.Where(row => row.Timestamp.Date != date).ToList()) { data.Scores.RemoveScoresRow(row); } data.AcceptChanges(); } return(data); }
/// <summary> /// 模型数据改变 /// </summary> /// <param name="obj"></param> private void dataChanged(DataLogModel commSocketServerModel) { getPageData(pageRepuestParams.PageIndex, pageRepuestParams.PageSize); var tmpModel = DataLogInfoList.FirstOrDefault(a => a.Id == commSocketServerModel.Id); this.DataLogInfo = DataLogInfoList.FirstOrDefault(); ////新增、不存在的数据插入到第一行便于查看 //if (Equals(tmpModel, null)) //{ // this.EnterpriseInfoList.Insert(0, enterpriseModel); // //this.EnterpriseInfoList.Insert(0, enterpriseModel); // EnterpriseInfoList.RemoveAt(this.EnterpriseInfoList.Count - 1); //} //else //{ // //修改的更新后置于第一行,便于查看 // tmpModel = enterpriseModel; // EnterpriseInfoList.Move(EnterpriseInfoList.IndexOf(tmpModel), 0); // tmpModel = enterpriseModel; //} }
/// <summary> /// /// </summary> /// <param name="dataLogModel"></param> public RatelHttpResponses Del_IP_DataLog(DataLogModel dataLogModel, IPClustersModel iPClustersModel) { var response = new RatelHttpResponses(); DeleteIPAddress(iPClustersModel.Content); //Node.ClustersNode.RemoveNodeDic(iPClustersModel.Content); //dataLogModel.Data = iPClustersModel.Content.SerializeProtobuf(); //using (var t = Datalog.dbEngine.GetTransaction()) //{ // t.Insert(Datalog._Ratel_log, dataLogModel.Id, dataLogModel); // t.Commit(); //} //var _Node = ClustersNode.node.Where(x => x.Value.ConnectionStatus == true // && x.Value.me == false // && x.Value.master == true // && x.Value.channel != null); //foreach (var item in _Node) //{ // var node_item = item.Value; // try // { // var data = new RatelMessagePack() // { // command = Command.RequestCommand_DataLog, // Data = null, // }; // var _byte = data.SerializeProtobuf(); // var _unpooled = Unpooled.WrappedBuffer(_byte); // node_item.channel.WriteAndFlushAsync(_unpooled); // } // catch (Exception ex) { } //} return(response); }
/// <summary> /// Initializes a new instance of the <see cref="MeterGraphPresenter"/> class. /// </summary> /// <param name="dataLogModel">The data log model.</param> /// <param name="eventAggregator">The event aggregator.</param> public MeterGraphPresenter(DataLogModel dataLogModel) { _dataLogModel = dataLogModel; CloseCommand = new DelegateCommand<object>(new Action<object>(o => { _backgroundWorker.Stop(); OnRequestRemoval(); })); _backgroundWorker.Tick += new EventHandler(BackgroundWorker_Tick); _backgroundWorker.Interval = TimeSpan.FromSeconds(1); }