diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2025-07-20 01:28:34 +0300 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2025-07-20 01:28:34 +0300 |
| commit | 66cfac58db68c158c15200201cba40b5f1710f2f (patch) | |
| tree | f0745f3a83820edd7e26200317dff6927b04a6e7 /Software | |
| parent | 4b737c824ee1b1a347ea63aabe3273f2c16f3ac3 (diff) | |
| download | Tango-66cfac58db68c158c15200201cba40b5f1710f2f.tar.gz Tango-66cfac58db68c158c15200201cba40b5f1710f2f.zip | |
Multi Env Async Stats.
Diffstat (limited to 'Software')
| -rw-r--r-- | Software/Visual_Studio/Web/Tango.Portal/Utils/StatisticsUtils.cs | 49 |
1 files changed, 27 insertions, 22 deletions
diff --git a/Software/Visual_Studio/Web/Tango.Portal/Utils/StatisticsUtils.cs b/Software/Visual_Studio/Web/Tango.Portal/Utils/StatisticsUtils.cs index 9cf83b717..f8bfcdd6d 100644 --- a/Software/Visual_Studio/Web/Tango.Portal/Utils/StatisticsUtils.cs +++ b/Software/Visual_Studio/Web/Tango.Portal/Utils/StatisticsUtils.cs @@ -1,8 +1,10 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading.Tasks; using System.Web; using Tango.BL.Entities; +using Tango.Portal.Enumerations; using Tango.Portal.Models; namespace Tango.Portal.Utils @@ -17,27 +19,31 @@ namespace Tango.Portal.Utils public Statistics GetStats() { - if (_stats == null || DateTime.Now > _fetchDate.AddDays(7)) + if (_stats == null || DateTime.Now > _fetchDate.AddDays(1)) { _fetchDate = DateTime.Now; _stats = new Statistics(); - try + Task.Factory.StartNew(() => { - using (var db = DbUtils.CreateContext(Enumerations.PortalEnvironment.Test)) + try { - var jobRuns = db.JobRuns.Select(x => new { x.ActualStartPosition, x.ActualEndPosition, x.EndPosition, x.Status }) - .ToList() - .Select(x => new JobRun() + foreach (var env in Enum.GetValues(typeof(PortalEnvironment)).Cast<PortalEnvironment>()) + { + using (var db = DbUtils.CreateContext(env)) { - ActualStartPosition = x.ActualStartPosition, - ActualEndPosition = x.ActualEndPosition, - EndPosition = x.EndPosition, - Status = x.Status - }) - .ToList(); + var jobRuns = db.JobRuns.Select(x => new { x.ActualStartPosition, x.ActualEndPosition, x.EndPosition, x.Status }) + .ToList() + .Select(x => new JobRun() + { + ActualStartPosition = x.ActualStartPosition, + ActualEndPosition = x.ActualEndPosition, + EndPosition = x.EndPosition, + Status = x.Status + }) + .ToList(); - int[] arr = (new List<BL.Enumerations.TangoUpdateStatuses>() + int[] arr = (new List<BL.Enumerations.TangoUpdateStatuses>() { BL.Enumerations.TangoUpdateStatuses.DatabaseCompleted, BL.Enumerations.TangoUpdateStatuses.OfflineFirmwareUpgradeCompleted, @@ -46,17 +52,16 @@ namespace Tango.Portal.Utils BL.Enumerations.TangoUpdateStatuses.UpdateCompleted }).Cast<int>().ToArray(); - var upgrades = db.TangoUpdates.Where(x => arr.Contains(x.Status)).Count(); + var upgrades = db.TangoUpdates.Where(x => arr.Contains(x.Status)).Count(); - _stats.TotalDyedThread = (int)jobRuns.Sum(x => x.Distance) / 1000; - _stats.JobsCompleted = jobRuns.Count; - _stats.SoftwareUpgrades = upgrades; + _stats.TotalDyedThread += (int)jobRuns.Sum(x => x.Distance) / 1000; + _stats.JobsCompleted += jobRuns.Count; + _stats.SoftwareUpgrades += upgrades; + } + } } - } - catch (Exception) - { - - } + catch { } + }); } return _stats; |
