1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

using Lightcast.Infrastructure;
namespace Lightcast.Presentation.Models {
	public class Aspect {
		/// <summary>
		/// The aspect id.
		/// </summary>
		[Required]
		[Rules("The globally unique identifier for the model.")]
		public Guid Id { get; set; }

		/// <summary>
		/// The aspect name.
		/// </summary>
		[Required]
		[DataType(DataType.Text)]
		[RegularExpression(Text.RegularExpressions.Name, ErrorMessage = Text.ErrorMessages.Name)]
		[Display(Name = "Name")]
		[Rules("The name of the aspect, you can't use: <em>[ ] | ; , $ \\ < > \"</em>")]
		public string Name { get; set; }

		/// <summary>
		/// The aspect description.
		/// </summary>
		[Required]
		[DataType(DataType.MultilineText)]
		[Display(Name = "Description")]
		[Rules("A brief description of the aspect.")]
		public string Description { get; set; }

		/// <summary>
		/// The aspect archetype.
		/// </summary>
		[Required]
		[Display(Name = "Archetype")]
		[Rules("The primary archetype that the aspect belongs to. Select <em>None</em> if this does not apply.")]
		public Archetype Archetype { get; set; }

		[Required]
		[Display(Name = "Classification")]
		[Rules("The classification of the aspect being created. <strong>All aspects must have a classification</strong>.")]
		public Classification Classification { get; set; }

		/// <summary>
		/// The various properties associated with the aspect.
		/// </summary>
		[Display(Name = "Properties")]
		[Rules("The properties attached to the aspect")]
		public IList<Property> Properties { get; set; }
	}
}