Generate the name of a computer from its properties
I would highlight two things:

It is not really common to throw exception inside a property getter
Because the Name has only just a getter then you can consider to expose it as a method instead.

From implementation point of you, you can improve readability if you do something like this:
var nameBuilder = new StringBuilder();
nameBuilder.Append('I'); 

var siteWhitelist = new AssetSite[] { AssetSite.Sydney, AssetSite.Rotterdam };
if (!siteWhitelist.Contains(this.AssetSite))
    throw new ArgumentOutOfRangeException(&quot;Invalid site&quot;);

string site = this.AssetSite switch
{
    AssetSite.Sydney    =&gt; &quot;S&quot;;
    AssetSite.Rotterdam =&gt; &quot;R&quot;; 
};

nameBuilder.Append(site);
nameBuilder.Append(&quot;PC&quot;); 

string computerType = this.IsLaptop ?  &quot;L&quot; : &quot;D&quot;;

nameBuilder.Append(computerType)
nameBuilder.Append(this.AssetTag);

return nameBuilder.ToString();

Of course you can further improve it, by introducing a Dictionary&lt;AssetSite, string&gt; where you can store the mapping between sites and letters.