public static void setData(CoCEnum.EventNotify id, DataRow dr, stCoCRrdData data) { switch (id) { case CoCEnum.EventNotify.MemberChangeDonationSend: { data.a += ( dr.Field <Int64>("send", DataRowVersion.Current) - dr.Field <Int64>("send", DataRowVersion.Original) ); break; } case CoCEnum.EventNotify.MemberChangeDonationReceive: { data.a += ( dr.Field <Int64>("receive", DataRowVersion.Current) - dr.Field <Int64>("receive", DataRowVersion.Original) ); break; } case CoCEnum.EventNotify.ClanChangePoints: { data.a = dr.Field <Int64>("points", DataRowVersion.Current); break; } case CoCEnum.EventNotify.ClanChangeWarWin: { data.a = dr.Field <Int64>("warwin", DataRowVersion.Current); break; } } }
private void UpdateRrdOne(CoCEnum.EventNotify id, stCoCRrdData data, long start) { string path1Db = CoCRrdUtil.getRrdDbPath(id, this._parent._rootpath); if ((string.IsNullOrWhiteSpace(path1Db)) || (!File.Exists(path1Db))) { return; } RrdDb rrdDb = new RrdDb(path1Db); Sample sample = rrdDb.CreateSample(start); sample.SetValue("a", data.a); sample.Update(); rrdDb.Close(); }
public void UpdateRrd() { long start = CoCRrdUtil.getUnixTimeStamp(DateTime.Now); CoCEnum.RrdGrapPeriod[] enumGrapPeriod = (CoCEnum.RrdGrapPeriod[])Enum.GetValues(typeof(CoCEnum.RrdGrapPeriod)).Cast <CoCEnum.RrdGrapPeriod>(); foreach (var d in this._data) { stCoCRrdData data = d.Value as stCoCRrdData; this.UpdateRrdOne((CoCEnum.EventNotify)d.Key, data, start); foreach (CoCEnum.RrdGrapPeriod pr in enumGrapPeriod) { this.UpdateImageOne((CoCEnum.EventNotify)d.Key, pr, this._parent._ci); } data.a = 0; } }
private void CreateOne(CoCEnum.EventNotify id) { string path = CoCRrdUtil.getRrdDbPath(id, this._parent._rootpath); if ((string.IsNullOrWhiteSpace(path)) || (File.Exists(path))) { return; } stCoCRrdData data = this._data.Where(o => (o.Key == id)).Select(o => { return((stCoCRrdData)o.Value); }).FirstOrDefault(); if (data == null) { return; } RrdDef rrdDef = null; RrdDb rrdDb = null; try { rrdDef = new RrdDef(path); rrdDef.StartTime = this._startTime; rrdDef.Step = (this._periodTime * 60); rrdDef.AddDatasource("a", data.type, (rrdDef.Step * 2), Double.NaN, Double.NaN); rrdDef.AddArchive("AVERAGE", 0, 1, 1); rrdDef.AddArchive("AVERAGE", 0, 1, RrdPeriod.Week(this._periodTime)); rrdDef.AddArchive("AVERAGE", 0, 1, RrdPeriod.Month(this._periodTime)); rrdDef.AddArchive("AVERAGE", 0, 1, RrdPeriod.Year(this._periodTime)); rrdDef.AddArchive("MIN", 0, 1, RrdPeriod.Day(this._periodTime)); rrdDef.AddArchive("MIN", 0, 1, RrdPeriod.Week(this._periodTime)); rrdDef.AddArchive("MIN", 0, 1, RrdPeriod.Month(this._periodTime)); rrdDef.AddArchive("MIN", 0, 1, RrdPeriod.Year(this._periodTime)); rrdDef.AddArchive("MAX", 0, 1, RrdPeriod.Day(this._periodTime)); rrdDef.AddArchive("MAX", 0, 1, RrdPeriod.Week(this._periodTime)); rrdDef.AddArchive("MAX", 0, 1, RrdPeriod.Month(this._periodTime)); rrdDef.AddArchive("MAX", 0, 1, RrdPeriod.Year(this._periodTime)); rrdDb = new RrdDb(rrdDef); } catch (Exception e) { if (this._parent.isLogEnable) { this._parent._ilog.LogError(e.Message); } } finally { if (rrdDb != null) { rrdDb.Close(); } } }