48 lines
1.4 KiB
C#
48 lines
1.4 KiB
C#
using System;
|
|
|
|
namespace Disco.Models.Services.Searching
|
|
{
|
|
public class JobSearchResultItem : ISearchResultItem
|
|
{
|
|
private const string type = "Job";
|
|
private Lazy<string[]> LazyScoreValue;
|
|
|
|
public JobSearchResultItem()
|
|
{
|
|
this.LazyScoreValue = new Lazy<string[]>(BuildScoreValues, false);
|
|
}
|
|
|
|
public virtual string Id { get; set; }
|
|
public string Type { get { return type; } }
|
|
public string Description { get { return string.Format("{0} ({1}; {2})", this.Id, this.UserId, this.DeviceSerialNumber); } }
|
|
public string[] ScoreValues { get { return LazyScoreValue.Value; } }
|
|
|
|
public string DeviceSerialNumber { get; set; }
|
|
|
|
public string UserId { get; set; }
|
|
public string UserFriendlyId { get; set; }
|
|
public string UserDisplayName { get; set; }
|
|
|
|
private string[] BuildScoreValues()
|
|
{
|
|
if (this.UserId == null)
|
|
{
|
|
return new string[] {
|
|
this.Id,
|
|
this.DeviceSerialNumber
|
|
};
|
|
}
|
|
else
|
|
{
|
|
return new string[] {
|
|
this.Id,
|
|
this.UserId.Substring(this.UserId.IndexOf('\\') + 1),
|
|
this.UserId,
|
|
this.UserDisplayName,
|
|
this.DeviceSerialNumber
|
|
};
|
|
}
|
|
}
|
|
}
|
|
}
|