diff options
| -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; |
