93 lines
1.8 KiB
C#
93 lines
1.8 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Text;
|
||
using System.ComponentModel.DataAnnotations.Schema;
|
||
using System.Data.Entity;
|
||
using System.Data.Entity.ModelConfiguration;
|
||
|
||
namespace ChatRoomServer.Db.Entities
|
||
{
|
||
/// <summary>
|
||
///
|
||
///</summary>
|
||
public class User
|
||
{
|
||
/// <summary>
|
||
/// 用户名
|
||
/// </summary>
|
||
public string UserName { get; set; }
|
||
|
||
public DateTime FirstConnect { get; set; }
|
||
|
||
public DateTime LastConnect { get; set; }
|
||
|
||
public int OnlineTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// 第一次发送信息时间
|
||
/// </summary>
|
||
public DateTime? FirstSend { get; set; }
|
||
|
||
/// <summary>
|
||
/// 最后一次发送信息时间
|
||
/// </summary>
|
||
public DateTime? LastSend { get; set; }
|
||
|
||
/// <summary>
|
||
/// 发送信息次数
|
||
/// </summary>
|
||
public int SendTimes { get; set; }
|
||
|
||
/// <summary>
|
||
/// 状态:0-正常;2-已封禁
|
||
/// </summary>
|
||
public UserStatus Status { get; set; }
|
||
|
||
public string NickName { get; set; }
|
||
|
||
public int AbuseReportCount { get; set; }
|
||
|
||
|
||
public int AbuseReportSuccCount { get; set; }
|
||
|
||
public int AbuseReportFailCount { get; set; }
|
||
|
||
public bool DisableAbuseReport { get; set; }
|
||
|
||
/// <summary>
|
||
/// 失败率
|
||
/// </summary>
|
||
public double AbuseReportSuccRate
|
||
{
|
||
get
|
||
{
|
||
if (AbuseReportCount == 0)
|
||
return 1.0;
|
||
|
||
return AbuseReportSuccCount * 1.0 / AbuseReportCount;
|
||
}
|
||
}
|
||
}
|
||
|
||
public enum UserStatus
|
||
{
|
||
Normal = 0,
|
||
Blocked = 2
|
||
}
|
||
|
||
/// <summary>
|
||
/// 实体类 <see cref="User" /> 的配置对象
|
||
/// </summary>
|
||
internal class UserConfiguration : EntityTypeConfiguration<User>
|
||
{
|
||
public UserConfiguration()
|
||
{
|
||
ToTable("Chat_User");
|
||
HasKey(m => m.UserName);
|
||
Property(s => s.UserName).HasMaxLength(100).IsRequired().HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
|
||
Ignore(s => s.AbuseReportSuccRate);
|
||
}
|
||
}
|
||
}
|