|
|
|
using System;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
using Yavsc.Attributes.Validation;
|
|
|
|
using Yavsc.Interfaces;
|
|
|
|
|
|
|
|
namespace Yavsc.Models.Blog
|
|
|
|
{
|
|
|
|
public class Comment : IComment<long>, IBaseTrackedEntity
|
|
|
|
{
|
|
|
|
[Key(), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
|
|
|
public long Id { get; set; }
|
|
|
|
|
|
|
|
[YaStringLength(1024)]
|
|
|
|
public string Content { get; set; }
|
|
|
|
|
|
|
|
[ForeignKeyAttribute("PostId")][JsonIgnore]
|
|
|
|
public virtual BlogPost Post { get; set; }
|
|
|
|
|
|
|
|
[Required]
|
|
|
|
public long PostId { get; set; }
|
|
|
|
public bool Visible { get; set; }
|
|
|
|
|
|
|
|
[ForeignKeyAttribute("AuthorId")][JsonIgnore]
|
|
|
|
public virtual ApplicationUser Author {
|
|
|
|
get; set;
|
|
|
|
}
|
|
|
|
|
|
|
|
[Required]
|
|
|
|
public string AuthorId
|
|
|
|
{
|
|
|
|
get; set;
|
|
|
|
}
|
|
|
|
|
|
|
|
public string UserCreated
|
|
|
|
{
|
|
|
|
get; set;
|
|
|
|
}
|
|
|
|
public DateTime DateModified
|
|
|
|
{
|
|
|
|
get; set;
|
|
|
|
}
|
|
|
|
|
|
|
|
public string UserModified
|
|
|
|
{
|
|
|
|
get; set;
|
|
|
|
}
|
|
|
|
|
|
|
|
public DateTime DateCreated
|
|
|
|
{
|
|
|
|
get; set;
|
|
|
|
}
|
|
|
|
|
|
|
|
public long GetReceiverId()
|
|
|
|
{
|
|
|
|
return PostId;
|
|
|
|
}
|
|
|
|
public void SetReceiverId(long rid)
|
|
|
|
{
|
|
|
|
PostId = rid;
|
|
|
|
}
|
|
|
|
|
|
|
|
public long? ParentId { get; set; }
|
|
|
|
|
|
|
|
[ForeignKeyAttribute("ParentId")]
|
|
|
|
public virtual Comment Parent { get; set; }
|
|
|
|
|
|
|
|
[InversePropertyAttribute("Parent")]
|
|
|
|
|
|
|
|
public virtual List<Comment> Children { get; set; }
|
|
|
|
}
|
|
|
|
}
|