@model Disco.Web.Models.Device.ShowModel @{ Authorization.Require(Claims.Device.ShowDetails); var canConfig = Authorization.Has(Claims.Device.Properties.Details); if (canConfig) { Html.BundleDeferred("~/ClientScripts/Modules/Disco-PropertyChangeHelpers"); } var processors = Model.Device.DeviceDetails.Processors(); var physicalMemory = Model.Device.DeviceDetails.PhysicalMemory(); var diskDrives = Model.Device.DeviceDetails.DiskDrives(); var networkAdapters = Model.Device.DeviceDetails.NetworkAdapters(); var lanMacAddress = Model.Device.DeviceDetails.LanMacAddress(); var wlanMacAddress = Model.Device.DeviceDetails.WLanMacAddress(); var bios = Model.Device.DeviceDetails.Bios(); var baseBoard = Model.Device.DeviceDetails.BaseBoard(); var computerSystem = Model.Device.DeviceDetails.ComputerSystem(); var batteries = Model.Device.DeviceDetails.Batteries(); }
@if (bios != null) { } @if (baseBoard != null) { } @if (computerSystem != null) { } @if (processors != null) { } @if (physicalMemory != null) { } @if (networkAdapters != null) { } else { if (lanMacAddress != null) { } if (wlanMacAddress != null) { } } @if (diskDrives != null) { } @if (batteries != null) { } @if (Model.Device.LastEnrolDate.HasValue) { }
BIOS @foreach (var b in bios) { }
Manufacturer Serial Number Version System Version Release Date
@b.Manufacturer @b.SerialNumber @b.SMBIOSBIOSVersion @(b.SMBIOSMajorVersion.GetValueOrDefault(0)).@b.SMBIOSMinorVersion @(b.SystemBiosMajorVersion).@b.SystemBiosMinorVersion @if (b.ReleaseDate.HasValue) { @b.ReleaseDate.Value.ToString("yyyy-MM-dd") }
Base Board @foreach (var b in baseBoard) { }
Manufacturer Model Product Part Number SKU Serial Number Config Options Version
@b.Manufacturer @b.Model @b.Product @b.PartNumber @b.SKU @b.SerialNumber @if (b.ConfigOptions != null) { @string.Join("; ", b.ConfigOptions) } @b.Version
System @foreach (var c in computerSystem) { }
Description Form Factor Type Primary Owner Chassis SKU System SKU OEM Reference Time Zone Roles
@c.Description @c.PCSystemType @c.SystemType @c.PrimaryOwnerName @c.PrimaryOwnerContact @c.ChassisSKUNumber @c.SystemSKUNumber @if (c.OEMStringArray != null) { @string.Join("; ", c.OEMStringArray) } @if (c.CurrentTimeZone.HasValue) { @((c.CurrentTimeZone.Value / 60).ToString(@"00\:"))@(Math.Abs(c.CurrentTimeZone.Value % 60).ToString("00")) } @if (c.Roles != null) { @string.Join("; ", c.Roles) }
Processors @foreach (var processor in processors) { }
Name Description Architecture Max Clock Speed Cores Logical Processors
@processor.Name @processor.Description @processor.Architecture @processor.MaxClockSpeedFriendly() @processor.NumberOfCores.GetValueOrDefault(0).ToString("N0") @processor.NumberOfLogicalProcessors.GetValueOrDefault(0).ToString("N0")
Memory @foreach (var memory in physicalMemory) { }
Location Manufacturer Part Number Serial Number Capacity Clock Speed
@memory.DeviceLocator @memory.Manufacturer @memory.PartNumber @memory.SerialNumber @memory.CapacityFriendly() @memory.ConfiguredClockSpeed
Network Adapters @foreach (var adapter in networkAdapters) { }
Connection Manufacturer Product Speed MAC Address
@(adapter.NetConnectionID ?? "N/A") @if (adapter.IsWlanAdapter) {} @adapter.Manufacturer @adapter.ProductName @adapter.SpeedFriendly() @adapter.MACAddress
LAN MAC Address @(lanMacAddress)
WLAN MAC Address @(wlanMacAddress)
Disk Drives @foreach (var disk in diskDrives) { if (disk.Partitions != null) { // calculate stretched offsets var minPartitionSize = (double)disk.Size * 0.1; var diskSizeAdjusted = disk.Partitions.Sum(p => Math.Max(minPartitionSize, p.Size.GetValueOrDefault(0))); var diskAdjustedOffet = (double)0; } }
Manufacturer Model Serial Number Firmware Type Interface Size
@disk.Manufacturer @disk.Model @disk.SerialNumber @disk.FirmwareRevision @disk.MediaType @disk.InterfaceType @disk.SizeFriendly()
@foreach (var partition in disk.Partitions) { var logicalDisk = partition.LogicalDisk; var offsetPercentage = Math.Round(((partition.StartingOffset.GetValueOrDefault(0) + diskAdjustedOffet) / diskSizeAdjusted) * 100, 3); var widthPercentage = Math.Round((Math.Max(minPartitionSize, partition.Size.GetValueOrDefault(0)) / diskSizeAdjusted) * 100, 3); var freeSpacePercentage = 0d; if (partition.Size < minPartitionSize) { diskAdjustedOffet += minPartitionSize - partition.Size.GetValueOrDefault(0); } var partitionTitle = partition.Type; var tags = new List(); if (partition.BootPartition.GetValueOrDefault(false)) { tags.Add("Boot"); } if (partition.PrimaryParition.GetValueOrDefault(false)) { tags.Add("Primary"); } if (logicalDisk != null) { partitionTitle = string.Format("{0} {1}", logicalDisk.DeviceID, logicalDisk.VolumeName); tags.Add(logicalDisk.SizeFriendly()); tags.Add(logicalDisk.FreeSpaceFriendly() + " Free"); tags.Add(logicalDisk.FileSystem); tags.Add(logicalDisk.DriveType); freeSpacePercentage = Math.Round(((double)logicalDisk.FreeSpace.GetValueOrDefault(0) / logicalDisk.Size.GetValueOrDefault(0)) * 100, 3); } else { tags.Add(partition.SizeFriendly()); } var tag = string.Join(" | ", tags); @if (freeSpacePercentage > 0.5) { } @partitionTitle
@tag
}
AC Adapter @if (canConfig) { @Html.TextBox("DeviceDetail_ACAdapter", Model.Device.DeviceDetails.ACAdapter()) @AjaxHelpers.AjaxSave() @AjaxHelpers.AjaxLoader() } else { @(Model.Device.DeviceDetails.ACAdapter() ?? "Unknown") }
Battery @if (canConfig) { @Html.TextBox("DeviceDetail_Battery", Model.Device.DeviceDetails.Battery()) @AjaxHelpers.AjaxSave() @AjaxHelpers.AjaxLoader() } else { @(Model.Device.DeviceDetails.Battery() ?? "Unknown") }
  @foreach (var battery in batteries) { }
Name Description Availability Chemistry Design Voltage Design Capacity Capacity
@battery.Name @battery.Description @battery.Availability @battery.Chemistry @battery.DesignVoltage.GetValueOrDefault(0).ToString("N0") mV @battery.DesignCapacity.GetValueOrDefault(0).ToString("N0") mWh @battery.FullChargeCapacity.GetValueOrDefault(0).ToString("N0") mWh
Keyboard @if (canConfig) { @Html.TextBox("DeviceDetail_Keyboard", Model.Device.DeviceDetails.Keyboard()) @AjaxHelpers.AjaxSave() @AjaxHelpers.AjaxLoader() } else { @(Model.Device.DeviceDetails.Keyboard() ?? "Unknown") }
Details collected @CommonHelpers.FriendlyDate(Model.Device.LastEnrolDate) at time of last enrolment