示例#1
0
            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;
                }
                }
            }
示例#2
0
            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();
            }
示例#3
0
            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;
                }
            }
示例#4
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();
                    }
                }
            }