using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Disco.Models.Services.Searching { public class DeviceSearchResultItem : ISearchResultItem { private const string type = "Device"; private Lazy LazyScoreValue; public DeviceSearchResultItem() { this.LazyScoreValue = new Lazy(BuildScoreValues, false); } public string Id { get; set; } public string Type { get { return type; } } public string Description { get { return string.Format("{0} ({1})", this.Id, this.ComputerName); } } public string[] ScoreValues { get { return LazyScoreValue.Value; } } public string AssetNumber { get; set; } public string AssignedUserDescription { get { if (AssignedUserId != null) { if (AssignedUserDisplayName != null) return string.Format("{0} ({1})", AssignedUserDisplayName, AssignedUserId); else return AssignedUserId; } return string.Empty; } } public string AssignedUserDisplayName { get; set; } public string AssignedUserId { get; set; } public string ComputerName { get; set; } public string DeviceModelDescription { get; set; } public string DeviceProfileDescription { get; set; } public string DeviceBatchName { get; set; } public int JobCount { get; set; } public DateTime? DecommissionedDate { get; set; } private string[] BuildScoreValues() { if (this.AssignedUserId == null) { return new string[] { this.Id, this.AssetNumber, this.ComputerName }; } else { return new string[] { this.Id, this.AssetNumber, this.ComputerName, this.AssignedUserId.Substring(this.AssignedUserId.IndexOf('\\') + 1), this.AssignedUserId, this.AssignedUserDisplayName }; } } } }