ArticleModel.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using System;
  2. using System.ComponentModel;
  3. using System.ComponentModel.DataAnnotations;
  4. namespace HyperCube.Models
  5. {
  6. public enum ArticleStatus {
  7. [Display(Name = "Новая")]
  8. New = 0,
  9. [Display(Name = "Добавлена")]
  10. Added,
  11. [Display(Name = "Отредактирована")]
  12. Edited,
  13. [Display(Name = "Проверена")]
  14. Verified,
  15. [Display(Name = "Отклонена")]
  16. Rejected,
  17. [Display(Name = "Удалена")]
  18. Deleted }
  19. public class ArticleModel : ICloneable
  20. {
  21. public string Filename { get; set; }
  22. [Required]
  23. public string Name { get; set; }
  24. [Required]
  25. public DateTime PublishDate { get; set; } = DateTime.Now.Date;
  26. [Required]
  27. public string Authors { get; set; }
  28. [Required]
  29. public string Keywords { get; set; }
  30. [Required]
  31. public string Annotation { get; set; }
  32. public string Text { get; set; }
  33. public ArticleStatus Status { get; set; } = ArticleStatus.New;
  34. [Required]
  35. public int? Rating
  36. {
  37. get { return rating; }
  38. set
  39. {
  40. rating = value;
  41. if (rating < 1) rating = 1;
  42. if (rating > 5) rating = 5;
  43. }
  44. }
  45. private int? rating;
  46. public object Clone()
  47. {
  48. return MemberwiseClone();
  49. }
  50. }
  51. }