/// <summary> /// Gets a stat value for the specified server. /// </summary> /// <param name="server">The adress of the server. If <see cref="IPAddress.Any"/> is specified it will return the sum of all server stat values.</param> /// <param name="item">The stat to be returned</param> /// <returns>The value of the specified stat item</returns> public long GetValue(IPEndPoint server, StatItem item) { // asked for a specific server if (server.Address != IPAddress.Any) { // error check string tmp = GetRaw(server, item); if (String.IsNullOrEmpty(tmp)) throw new ArgumentException("Item was not found: " + item); long value; // return the value if (Int64.TryParse(tmp, out value)) return value; throw new ArgumentException("Invalid value string was returned: " + tmp); } // check if we can sum the value for all servers if ((Optable[(int)item] & OpAllowsSum) != OpAllowsSum) throw new ArgumentException("The " + item + " values cannot be summarized"); long retval = 0; // sum & return foreach (IPEndPoint ep in this.results.Keys) { retval += this.GetValue(ep, item); } return retval; }
/// <summary> /// Gets a stat value for the specified server. /// </summary> /// <param name="server">The adress of the server. If <see cref="IPAddress.Any"/> is specified it will return the sum of all server stat values.</param> /// <param name="item">The stat to be returned</param> /// <returns>The value of the specified stat item</returns> public long GetValue(IPEndPoint server, StatItem item) { // asked for a specific server if (server.Address != IPAddress.Any) { var tmp = this.GetRaw(server, item); return(string.IsNullOrEmpty(tmp) ? throw new ArgumentException("Item was not found: " + item) : Int64.TryParse(tmp, out long value) ? value : throw new ArgumentException("Invalid value string was returned: " + tmp)); } // check if we can sum the value for all servers if ((ServerStats.Optable[(int)item] & ServerStats.OpAllowsSum) != ServerStats.OpAllowsSum) { throw new ArgumentException("The " + item + " values cannot be summarized"); } // sum & return long result = 0; foreach (IPEndPoint ep in this.results.Keys) { result += this.GetValue(ep, item); } return(result); }
public bool TryGetValue(string tth, out StatItem item) { lock (_synRoot) { return(_items.TryGetValue(tth, out item)); } }
private StatItem GetByCurr(List <StatItem> list, CurrencyTypeEnum ct) { lock (list) { var item = new StatItem(); item.CurrencyType = ct; item.Name = ct.ToString(); if (list.Any(x => x.CurrencyType == ct)) { var d = list.First(x => x.CurrencyType == ct); item.DealCount = d.DealCount; item.PriceId = d.PriceId; item.Price = d.Price; item.MiddleValue = d.MiddleValue; item.Name = d.Name; } else { item.DealCount = 0; item.PriceId = 0; item.Price = (decimal)0.0; item.MiddleValue = (decimal)0.0; } return(item); } }
public void BuildBox(SearchResultModel model) { foreach (var item in model.Items) { ProcessItem(item); } var box = new StatBox() { Title = BoxTitle }; model.StatBoxs.Add(box); foreach (var engine in Engines.OrderByDescending(o => o.Counter).Take(10)) { var red = new StatItem() { Title = engine.Name, Value = engine.Counter, Link = "#" }; box.StatItems.Add(red); if (model.Items.Count > 0) { red.ValueText = ((decimal)engine.Counter / model.Items.Count * 100).ToString("f") + "%"; red.ValuePercent = ((decimal)engine.Counter / model.Items.Count * 100); } else { red.ValueText = "0%"; red.ValuePercent = 0; } } }
public void Add(StatItem item) { item.Date = item.Date.ToOffset(new TimeSpan(-6, 0, 0)); item.Date = item.Date.AddMinutes(item.Date.Minute * -1); item.Date = item.Date.AddSeconds(item.Date.Second * -1); item.Date = item.Date.AddMilliseconds(item.Date.Millisecond * -1); Items.Add(item); }
/// <summary> /// Returns the stat value for a specific server. The value is not converted but returned as the server returned it. /// </summary> /// <param name="server">The adress of the server</param> /// <param name="item">The stat value to be returned</param> /// <returns>The value of the stat item</returns> public string GetRaw(IPEndPoint server, StatItem item) { if ((int)item < StatKeys.Length && (int)item >= 0) { return(GetRaw(server, StatKeys[(int)item])); } throw new ArgumentOutOfRangeException("item"); }
public StatsDetailsVM(StatItem statItem) { StatItem = statItem; ItemCollection = new ObservableRangeCollection <StatItem>(); if (statItem.Items != null) { ItemCollection.AddRange(statItem.Items); } }
private ActionResult stats(Guid gid) { var cx = SmartHomeDBContext.Create(AppSettings); var fromD = DateTime.Now.AddDays(-1); var toD = DateTime.Now; var firstlist = from s in cx.DeviceLogs where s.DeviceId == gid && s.Created > fromD && s.Created <= toD select s; var list = from s in firstlist.ToList() let groupKey = new DateTime(s.Created.Year, s.Created.Month, s.Created.Day, s.Created.Hour, (s.Created.Minute / 10) * 10, 0) group s by groupKey into g select new { Timestamp = g.Key, DogHouseHeat = g.Max(e => e.DogHouseHeatingOn), DogHouseTemp = g.Average(e => e.DogHouseTemperature), IsWet = g.Max(e => e.IsWet), WaterOn = g.Max(e => e.WaterOn), Temp = g.Average(e => e.Temperature) }; var finallist = list.OrderBy(e => e.Timestamp); var ret = new StatObject(); foreach (var i in finallist) { var itm = new StatItem(); itm.dogheating = i.DogHouseHeat; itm.dogtemp = i.DogHouseTemp; itm.iswet = i.IsWet; itm.temp = i.Temp; itm.time = MySmartHomeCore.Extensions.DateTimeUtil.GetZonedDate(i.Timestamp, "HH:mm"); itm.wateron = i.WaterOn; if (ret.min > itm.dogtemp) { ret.min = itm.dogtemp; } if (ret.min > itm.temp) { ret.min = itm.temp; } if (ret.max < itm.dogtemp) { ret.max = itm.dogtemp; } if (ret.max < i.Temp) { ret.max = itm.temp; } ret.items.Add(itm); } return(View(ret)); }
private void SetupStatGrid() { dgStat.SelectEnabled = false; dgStat.CaptionHeight = 0; var blank = new StatItem(); dgStat.Columns.Add(new FastColumn(blank.Property(p => p.Name), Localizer.GetString("TitleName"))); dgStat.Columns.Add(new FastColumn(blank.Property(p => p.Result), Localizer.GetString("TitleValue")) { ColumnWidth = 140 }); dgStat.ColorAltCellBackground = Color.FromArgb(230, 230, 230); dgStat.MinimumTableWidth = dgStat.Columns.Count * DefaultColumnWidth; }
public void SetItem(StatItem item) { lock (_synRoot) { if (_items.ContainsKey(item.Magnet.TTH)) { _items[item.Magnet.TTH] = item; } else { _items.Add(item.Magnet.TTH, item); } } }
public void UpgradeStat(StatItem stat) { if (stat == _damageStat) { _manager.CmdUpgradeStat((int)StatType.Damage); } else if (stat == _armorStat) { _manager.CmdUpgradeStat((int)StatType.Armor); } else if (stat == _moveSpeedStat) { _manager.CmdUpgradeStat((int)StatType.MoveSpeed); } }
/// <summary> ///Return Brush color based on StatItem Description /// </summary> /// <param name="item"></param> /// <param name="index"></param> /// <returns></returns> public Brush SelectBrush(object item, int index) { StatItem st = (StatItem)item; resourceDictionary = new ResourceDictionary(); resourceDictionary.Source = new Uri("pack://application:,,,/Ginger;component/Dictionaries/Skins/GingerDefaultSkinDictionary.xaml"); //TODO: find better pallets colors switch (st.Description) { case "Automated": case "Executed": case "Passed": return((Brush)resourceDictionary["$PassedStatusColor"]); case "Failed": case "Not Automated": case "Not Executed": case "Not Passed": return((Brush)resourceDictionary["$FailedStatusColor"]); case "Blocked": return((Brush)resourceDictionary["$BlockedStatusColor"]); case "Pending": return((Brush)resourceDictionary["$PendingStatusColor"]); case "Started": case "Running": case "Wait": case "Canceling": return((Brush)resourceDictionary["$RunningStatusColor"]); case "Stopped": return((Brush)resourceDictionary["$StoppedStatusColor"]); case "NA": case "FailIgnored": case "Skipped": return((Brush)resourceDictionary["$SkippedStatusColor"]); //TODO: add all cover all status, or go to Act, Activity, BF and get color from status default: return((Brush)resourceDictionary["$SkippedStatusColor"]); } }
/// <summary> /// Gets a stat value for the specified server. /// </summary> /// <param name="server">The adress of the server. If <see cref="IPAddress.Any"/> is specified it will return the sum of all server stat values.</param> /// <param name="item">The stat to be returned</param> /// <returns>The value of the specified stat item</returns> public long GetValue(IPEndPoint server, StatItem item) { // asked for a specific server if (server.Address != IPAddress.Any) { // error check string tmp = GetRaw(server, item); if (String.IsNullOrEmpty(tmp)) { throw new ArgumentException("Item was not found: " + item); } long value; // return the value if (Int64.TryParse(tmp, out value)) { return(value); } throw new ArgumentException("Invalid value string was returned: " + tmp); } // check if we can sum the value for all servers if ((Optable[(int)item] & OpAllowsSum) != OpAllowsSum) { throw new ArgumentException("The " + item + " values cannot be summarized"); } long retval = 0; // sum & return foreach (IPEndPoint ep in this.results.Keys) { retval += this.GetValue(ep, item); } return(retval); }
private void HandleUploaded(UploadItem item) { lock (_synRoot) { var magnet = item.Content.Magnet; StatItem statItem; if (_items.TryGetValue(magnet.TTH, out statItem)) { statItem.TotalUploaded += item.UploadedBytes; statItem.LastUsage = DateTime.Now; _items[magnet.TTH] = statItem; } else { statItem = new StatItem(); statItem.Magnet = magnet; statItem.LastUsage = DateTime.Now; statItem.TotalUploaded = item.UploadedBytes; _items.Add(magnet.TTH, statItem); } } }
public void BuildBox(SearchResultModel model) { foreach (var item in model.Items) { ProcessItem(item); } var box = new StatBox() { Title = BoxTitle }; model.StatBoxs.Add(box); foreach (var engine in Engines.OrderByDescending(o=>o.Counter).Take(10)) { var red = new StatItem() { Title = engine.Name, Value = engine.Counter, Link = "#" }; box.StatItems.Add(red); if (model.Items.Count > 0) { red.ValueText = ((decimal)engine.Counter / model.Items.Count * 100).ToString("f") + "%"; red.ValuePercent = ((decimal)engine.Counter / model.Items.Count * 100); } else { red.ValueText = "0%"; red.ValuePercent = 0; } } }
/// <summary> /// Returns the stat value for a specific server. The value is not converted but returned as the server returned it. /// </summary> /// <param name="server">The adress of the server</param> /// <param name="item">The stat value to be returned</param> /// <returns>The value of the stat item</returns> public string GetRaw(IPEndPoint server, StatItem item) { return((int)item < ServerStats.StatKeys.Length && (int)item >= 0 ? this.GetRaw(server, ServerStats.StatKeys[(int)item]) : throw new ArgumentOutOfRangeException(nameof(item))); }
void GetData() { List <CStatItem> lstStatItem = GetStatItemList(); List <string> lstTable = new List <string>(); string sFields = ""; string sGroupBy = ""; string sOrderBy = ""; foreach (CStatItem StatItem in lstStatItem) { string sOrderFiled = ""; if (StatItem.ItemType == CStatItem.enumItemType.Field) { CTable table = (CTable)Global.GetCtx(Session["TopCompany"].ToString()).TableMgr.Find(StatItem.FW_Table_id); if (table == null) { continue; } CColumn column = (CColumn)table.ColumnMgr.Find(StatItem.FW_Column_id); if (column == null) { continue; } if (!lstTable.Contains(table.Code)) { lstTable.Add(table.Code); } if (StatItem.StatType == CStatItem.enumStatType.Val) { sFields += string.Format("[{0}].[{1}],", table.Code, column.Code); sGroupBy += string.Format("[{0}].[{1}],", table.Code, column.Code); sOrderFiled = string.Format("[{0}].[{1}]", table.Code, column.Code); } else { sFields += string.Format("{0}([{1}].[{2}]) as [{3}],", StatItem.GetStatTypeFunc(), table.Code, column.Code, StatItem.Name); sOrderFiled = StatItem.Name; } } else { sFields += string.Format("({0}) as [{1}],", StatItem.Formula, StatItem.Name); sOrderFiled = StatItem.Name; } if (StatItem.Order == CStatItem.enumOrder.Asc) { sOrderBy += sOrderFiled + ","; } else if (StatItem.Order == CStatItem.enumOrder.Desc) { sOrderBy += sOrderFiled + " desc,"; } } sFields = sFields.TrimEnd(",".ToCharArray()); sGroupBy = sGroupBy.TrimEnd(",".ToCharArray()); sOrderBy = sOrderBy.TrimEnd(",".ToCharArray()); string sTable = ""; foreach (string sTb in lstTable) { sTable += sTb + ","; } sTable = sTable.TrimEnd(",".ToCharArray()); string sSql = string.Format("select {0} from {1} ", sFields, sTable); sSql += " where IsDeleted=0 "; if (m_Report.Filter.Trim() != "") { sSql += " and " + m_Report.Filter; } if (sGroupBy != "") { sSql += " group by " + sGroupBy; } if (sOrderBy != "") { sSql += " order by " + sOrderBy; } //因为采用构造sql语句的方法来运行报表,所以仅考虑单数据库的情况, //即取主数据库。如果考虑多数据库分布存储情况,则使用对象来计算报表。 DataTable dt = Global.GetCtx(Session["TopCompany"].ToString()).MainDB.QueryT(sSql); if (dt == null) { //MessageBox.Show("运行报表失败,请修改报表定义!"); return; } string sData = ""; foreach (DataRow r in dt.Rows) { string sRow = ""; int iCol = 0; foreach (CStatItem StatItem in lstStatItem) { string sVal = r[iCol].ToString(); sRow += string.Format("\"{0}\":\"{1}\",", StatItem.Name, sVal); iCol++; } sRow = sRow.TrimEnd(",".ToCharArray()); sRow = "{" + sRow + "},"; sData += sRow; } sData = sData.TrimEnd(",".ToCharArray()); sData = "[" + sData + "]"; string sJson = string.Format("{{\"Rows\":{0},\"Total\":\"{1}\"}}" , sData, dt.Rows.Count); Response.Write(sJson); }
/// <summary> /// Returns the stat value for a specific server. The value is not converted but returned as the server returned it. /// </summary> /// <param name="server">The adress of the server</param> /// <param name="item">The stat value to be returned</param> /// <returns>The value of the stat item</returns> public string GetRaw(IPEndPoint server, StatItem item) { if ((int)item < StatKeys.Length && (int)item >= 0) return GetRaw(server, StatKeys[(int)item]); throw new ArgumentOutOfRangeException("item"); }
public override async Task DispatchAsync(string path, HttpFilterContext context) { /* * is restful api */ if (_processorManager.ContainsProcessor(path)) { /***begin stat*****/ var stat = new StatItem(); var watch = Stopwatch.StartNew(); watch.Start(); if (RestfulApplicationGlobalConfig.DebugMode) { RestfulApplicationBaseComponents.Tracer.BeginTrace(context); } var processor = (RestfulRequestProcessor)_processorManager.GetProcessor(path); /* * is method match */ if (processor.HttpMethod == context.HttpContext.Request.Method.ToLower()) { /* * is api available */ if (processor.Available) { try { await processor.ProcessAsysnc(context); //handle processor output if (RestfulApplicationGlobalConfig.EnableCrossDomain) { context.HttpContext.Response.Headers.Add("Access-Control-Allow-Origin", "*"); } context.HttpContext.Response.Headers.Add("Content-Type", "text/html"); if (context.ReturnValue != null) { var buffer = JsonSerializer.Instance.SerializeToBytes(context.ReturnValue); await context.HttpContext.Response.Body.WriteAsync(buffer, 0, buffer.Length); } } catch (Exception ex) { _logger.Error(ex); if (!context.HttpContext.Response.HasStarted) { context.HttpContext.Response.StatusCode = HttpStatusCodes.SERVER_ERROR; } } } else if (processor.HasAlternativeService) { await DispatchAsync(processor.AlternativeServicePath, context); stat.Sucessed = false; stat.Elapsed = watch.ElapsedMilliseconds; processor.Metric.Add(stat); if (RestfulApplicationGlobalConfig.DebugMode) { RestfulApplicationBaseComponents.Tracer.EndTrace(context); } // should return cause alternative service already flushed return; } else { context.HttpContext.Response.StatusCode = HttpStatusCodes.SERVER_NOT_AVAILABLE; } } else { context.HttpContext.Response.StatusCode = HttpStatusCodes.INCORRECT_HTTP_METHOD; } if (context.HttpContext.Response.StatusCode != HttpStatusCodes.SUCESSED) { stat.Sucessed = false; } stat.Elapsed = watch.ElapsedMilliseconds; processor.Metric.Add(stat); if (RestfulApplicationGlobalConfig.DebugMode) { RestfulApplicationBaseComponents.Tracer.EndTrace(context); } } /* * static file enabled */ else if (RestfulApplicationGlobalConfig.StaticFileEnabled) { var stream = await RestfulApplicationBaseComponents.StaticFileProvider.GetStreamAsync(RestfulApplicationGlobalConfig.VirtueRootPath + path); /* * file not exists */ if (stream == null) { context.HttpContext.Response.StatusCode = HttpStatusCodes.NOT_FOUND; } else { var index = path.LastIndexOf("."); var ext = index != -1 ? path.Substring(index, path.Length - index) : ".html"; context.HttpContext.Response.StatusCode = HttpStatusCodes.SUCESSED; context.HttpContext.Response.Headers.Add("Content-Type", MediaTypeHelper.GetMediaTypeByExtension(ext)); await stream.CopyToAsync(context.HttpContext.Response.Body); stream.Close(); } } else { context.HttpContext.Response.StatusCode = HttpStatusCodes.NOT_FOUND; } /* * flush */ await context.HttpContext.Response.Body.FlushAsync(); }
private void SetupAccountGrid() { var blankStatItem = new StatItem(); dgAccount.Columns.Add(new FastColumn(blankStatItem.Property(p => p.Name), Localizer.GetString("TitleName")) {RelativeWidth = 0.2}); dgAccount.Columns.Add(new FastColumn(blankStatItem.Property(p => p.Result), Localizer.GetString("TitleValue")) {RelativeWidth = 0.8}); dgAccount.ColorAltCellBackground = colorAltCell; dgAccount.MinimumTableWidth = dgAccount.Columns.Count * DefaultColumnWidth; dgAccount.CheckSize(true); gridPendingOrders.CheckSize(true); }
private void FilterModelStatItemSwap(StatItem param) { param.TriStateSwap(); }
void Run() { if (m_Report == null) { return; } dataGridView.Columns.Clear(); List <CStatItem> lstStatItem = new List <CStatItem>(); List <CBaseObject> lstObj = m_Report.StatItemMgr.GetList(); foreach (CBaseObject obj in lstObj) { lstStatItem.Add((CStatItem)obj); } lstStatItem.Sort();//按索引idx排序 foreach (CStatItem StatItem in lstStatItem) { dataGridView.Columns.Add(StatItem.Name, StatItem.Name); } List <string> lstTable = new List <string>(); string sFields = ""; string sGroupBy = ""; string sOrderBy = ""; foreach (CStatItem StatItem in lstStatItem) { string sOrderFiled = ""; if (StatItem.ItemType == CStatItem.enumItemType.Field) { CTable table = (CTable)Program.Ctx.TableMgr.Find(StatItem.FW_Table_id); if (table == null) { continue; } CColumn column = (CColumn)table.ColumnMgr.Find(StatItem.FW_Column_id); if (column == null) { continue; } if (!lstTable.Contains(table.Code)) { lstTable.Add(table.Code); } if (StatItem.StatType == CStatItem.enumStatType.Val) { sFields += string.Format("[{0}].[{1}],", table.Code, column.Code); sGroupBy += string.Format("[{0}].[{1}],", table.Code, column.Code); sOrderFiled = string.Format("[{0}].[{1}]", table.Code, column.Code); } else { sFields += string.Format("{0}([{1}].[{2}]) as [{3}],", StatItem.GetStatTypeFunc(), table.Code, column.Code, StatItem.Name); sOrderFiled = StatItem.Name; } } else { sFields += string.Format("({0}) as [{1}],", StatItem.Formula, StatItem.Name); sOrderFiled = StatItem.Name; } if (StatItem.Order == CStatItem.enumOrder.Asc) { sOrderBy += sOrderFiled + ","; } else if (StatItem.Order == CStatItem.enumOrder.Desc) { sOrderBy += sOrderFiled + " desc,"; } } sFields = sFields.TrimEnd(",".ToCharArray()); sGroupBy = sGroupBy.TrimEnd(",".ToCharArray()); sOrderBy = sOrderBy.TrimEnd(",".ToCharArray()); string sTable = ""; foreach (string sTb in lstTable) { sTable += sTb + ","; } sTable = sTable.TrimEnd(",".ToCharArray()); string sSql = string.Format("select {0} from {1} ", sFields, sTable); sSql += " where IsDeleted=0 "; if (m_Report.Filter.Trim() != "") { sSql += " and " + m_Report.Filter; } if (sGroupBy != "") { sSql += " group by " + sGroupBy; } if (sOrderBy != "") { sSql += " order by " + sOrderBy; } //因为采用构造sql语句的方法来运行报表,所以仅考虑单数据库的情况, //即取主数据库。如果考虑多数据库分布存储情况,则使用对象来计算报表。 DataTable dt = Program.Ctx.MainDB.QueryT(sSql); if (dt == null) { MessageBox.Show("运行报表失败,请修改报表定义!"); return; } foreach (DataRow r in dt.Rows) { dataGridView.Rows.Add(1); DataGridViewRow row = dataGridView.Rows[dataGridView.Rows.Count - 1]; for (int col = 0; col < dataGridView.Columns.Count; col++) { row.Cells[col].Value = r[col]; } } }
private void Start() { moveSpeedStat = MUtil.GetStat <STAT_MoveSpeed>(gameObject); }
public StatsDetailsPage(StatItem item) { BindingContext = VM = new StatsDetailsVM(item); }