public void Info_Couters_Identify_Test()
        {
            List <string> counterlines;

            ////SystemMeasurement.Info_Couters("Memory", false);
            //List<PerformanceCounter> counters = SystemMeasurement.Info_Couters("Paging File");
            //Assert.Equal(4, counters.Count);

            //_Debug.WriteLine("Paging File:");
            //_Debug.WriteLine("==============");
            //SystemMeasurement.Info_Couters(out counterlines, "Paging File", true);
            //_Debug.WriteLine(counterlines.zTo_Str("".NL()));

            //_Debug.WriteLine("Memory:");
            //_Debug.WriteLine("=========");
            //SystemMeasurement.Info_Couters(out counterlines, "Memory");
            //_Debug.WriteLine(counterlines.zTo_Str("".NL()));

            //_Debug.WriteLine("PhysicalDisk:");
            //_Debug.WriteLine("==============");
            //SystemMeasurement.Info_Couters(out counterlines, "PhysicalDisk", false, false);
            //_Debug.WriteLine(counterlines.zTo_Str("".NL()));

            // "Processor"
            _Debug.WriteLine("Processor:");
            _Debug.WriteLine("==============");
            SystemMeasurement.Info_Couters(out counterlines, "Processor", false, false);
            _Debug.WriteLine(counterlines.zTo_Str("".NL()));
        }
        public void Info_Counters_Test()
        {
            // Get all catagories
            var categories = SystemMeasurement.Info_CategoryNames();

            _Debug.WriteLine($"No of categories: {categories.Count}");
        }
        public void Memory_Test()
        {
            _Debug.WriteLine("Memory:");
            if (Environment.Is64BitProcess)
            {
                _Debug.WriteLine("  64-bit process");
            }
            else
            {
                _Debug.WriteLine("  32-bit process");
            }

            // activeProcessMemory
            var activeProcessMemory = SystemMeasurement.Memory(enCounter_Memory.activeProcessMemory);

            Assert.True(activeProcessMemory.Value_ > 0);
            _Debug.WriteLine($"  {activeProcessMemory}");
            _Debug.WriteLine("-----------------------------");
            _Debug.WriteLine("  " + SystemMeasurement.Memory(enCounter_Memory.PhysicalMemory_Total).ToString());
            _Debug.WriteLine("  " + SystemMeasurement.Memory(enCounter_Memory.PhysicalMemory_Available).ToString());
            _Debug.WriteLine("  " + SystemMeasurement.Memory(enCounter_Memory.PhysicalMemory_InUse).ToString());
            _Debug.WriteLine("-----------------------------");

            _Debug.WriteLine("  " + SystemMeasurement.Memory(enCounter_Memory.VirtualMemory_Total).ToString());
            _Debug.WriteLine("  " + SystemMeasurement.Memory(enCounter_Memory.VirtualMemory_Available).ToString());
            _Debug.WriteLine("  " + SystemMeasurement.Memory(enCounter_Memory.VirtualMemory_InUse).ToString());
            _Debug.WriteLine("-----------------------------");

            // page file
            enumPerformanceMeasureAttribute pagingFileUsage = SystemMeasurement.Memory(enCounter_Memory.pagingFileUsage);

            _Debug.WriteLine($"  {pagingFileUsage}");

            // pagingFilePeak
            enumPerformanceMeasureAttribute pagingFilePeak = SystemMeasurement.Memory(enCounter_Memory.pagingFilePeak);

            _Debug.WriteLine($"  {pagingFilePeak}");
            _Debug.WriteLine("-----------------------------");

            // PhysicalMemory_Available
            enumPerformanceMeasureAttribute availableMemory = SystemMeasurement.Memory(enCounter_Memory.pagingFileUsage);

            Assert.Equal("Paging file usage", availableMemory.Name_Caption);
            Assert.Equal("%", availableMemory.Value_Unit);
            Assert.Equal("Paging File", availableMemory.Name_Category);
            Assert.Equal("% Usage", availableMemory.Name_Counter);
        }
        public void IO_Test()
        {
            // Speed
            _Debug.WriteLine("Drive Speed:");
            _Debug.WriteLine("  " + SystemMeasurement.IO(enCounter_IO.Speed));
            _Debug.WriteLine("Method2:");
            _Debug.WriteLine($"  Drive c: {_lamed.lib.IO.Drive.Drive_Speed(ShowProgress).zToStr()}MB/sec");

            // Disk
            _Debug.WriteLine("  " + SystemMeasurement.IO(enCounter_IO.Total_Transer));
            var diskAvgSecRead = new PerformanceCounter("PhysicalDisk", "Disk Transfers/sec", "_Total");

            _Debug.WriteLine($"Disk Transfer:{diskAvgSecRead.NextValue()}");
            System.Threading.Thread.Sleep(100);
            _Debug.WriteLine($"Disk Transfer:{diskAvgSecRead.NextValue()}");
            _Debug.WriteLine("  " + SystemMeasurement.IO(enCounter_IO.Total_Transer));
        }
        public void Memory_enCounter_Test()
        {
            // Input
            var enumInput = enCounter_Memory.PhysicalMemory_Available;

            // Method 1
            var performanceMeasure = enumInput.zAttribute_AsPerformanceMeasure();

            SystemMeasurement.Memory(performanceMeasure);
            _Debug.WriteLine(performanceMeasure.ToString());
            // Tests
            Assert.Equal("Memory", performanceMeasure.Name_Category);
            Assert.Equal("Available Physical memory", performanceMeasure.Name_Caption);
            Assert.Equal(1, performanceMeasure.Format_DecimalPlaces);
            Assert.True(performanceMeasure.Value_ > 0);

            // Method 2
            _Debug.WriteLine(SystemMeasurement.Memory(enumInput).ToString());
        }
        public void SystemMeasurement_Tests()
        {
            // This method will test all sytem measurements
            _Debug.WriteLine("Memory:");
            foreach (var enum1 in _lamed.Types.Enum.Enumvalues <enCounter_Memory>())
            {
                _Debug.WriteLine("  " + SystemMeasurement.Memory(enum1));                                                                      // Memory
            }
            _Debug.WriteLine("IO:");
            var letters = _lamed.lib.IO.Drive.Letters(enIO_DriveType.Writeable);

            foreach (string drive in letters)
            {
                _Debug.WriteLine("  " + drive);
                foreach (var enum1 in _lamed.Types.Enum.Enumvalues <enCounter_IO>())
                {
                    _Debug.WriteLine("  " + SystemMeasurement.IO(enum1, drive));                                                                  // Disk
                }
                _Debug.WriteLine("  ------------------------");
            }
        }
Exemplo n.º 7
0
        public ActionResult Create(ReportStartModel Model)
        {
            var isDataRecorder  = CurrentUser.Roles.Any(x => x.RoleId == context.Ref.Roles.DataRecorder.Id);
            var isAuditRecorder = CurrentUser.Roles.Any(x => x.RoleId == context.Ref.Roles.AuditRecorder.Id);
            var isAdmin         = _userService.IsAdmin() || _userService.IsSiteAdmin();

            if (ModelState.IsValid)
            {
                var site = context.Sites.FirstOrDefault(x => x.Id == Model.SiteId);

                if (site != null)
                {
                    var R = new Report();

                    R.User           = CurrentUser;
                    R.Site           = site;
                    R.CreationDate   = DateTime.UtcNow;
                    R.SubmissionDate = null;

                    var userId = CurrentUser.Id;

                    if ((isDataRecorder && isAuditRecorder) || isAdmin)
                    {
                        R.ReportType = Model.Use;
                    }
                    else if (isDataRecorder)
                    {
                        R.ReportType = "Measurement";
                    }
                    else if (isAuditRecorder)
                    {
                        R.ReportType = "Independent Quality Assurance";
                    }

                    foreach (var building in site.Buildings.Where(x => x.IsActive))
                    {
                        //var BR = new BuildingReport();
                        //BR.Building = building;

                        //Admins can access everything, otherwise filter based on user access
                        foreach (var system in building.Systems.Where(x => isAdmin || x.Users.Any()))
                        {
                            if (!system.IsActive)
                            {
                                continue;
                            }
                            var SM = new SystemMeasurement();
                            SM.BuildingSystem = system;

                            foreach (var parameter in system.SystemType.Parameters.Where(x => x.Use == R.ReportType || x.Use == "Both"))
                            {
                                var M = new Measurement();
                                M.Value        = String.Empty;
                                M.Comment      = String.Empty;
                                M.Parameter    = parameter;
                                M.IsApplicable = true;
                                // M.Parameter.AltParameter = -1;
                                SM.Measurements.Add(M);
                            }

                            if (SM.Measurements.Any())
                            {
                                R.SystemMeasurements.Add(SM);
                            }
                        }

                        //if (BR.SystemMeasurements.Any())
                        //{
                        //    R.SystemMeasurements.Add(BR);
                        //}
                    }
                    context.Reports.Add(R);
                    context.SaveChanges();
                    return(RedirectToAction("Edit", new { Id = R.Id }));
                }
                else
                {
                    ModelState.AddModelError("SiteId", "The selected site does not exist.");
                }
            }


            if ((isDataRecorder && isAuditRecorder) || isAdmin)
            {
                ViewBag.HasMultipleUse = true;
            }

            var allowedSites = _userService.GetActiveSites();

            ViewBag.Sites = allowedSites.Select(x => new { Id = x.Id, Name = x.Name }).ToList();
            return(View());
        }