51 lines
1.3 KiB
C#
51 lines
1.3 KiB
C#
using System;
|
|
using System.Text.Json.Serialization;
|
|
using Volo.Abp.Domain.Entities.Auditing;
|
|
|
|
namespace Kurs.Platform.Entities;
|
|
|
|
public class ClassroomAttandance : FullAuditedEntity<Guid>
|
|
{
|
|
public Guid SessionId { get; set; }
|
|
public Guid? StudentId { get; set; }
|
|
public string StudentName { get; set; }
|
|
public DateTime JoinTime { get; set; }
|
|
public DateTime? LeaveTime { get; set; }
|
|
public int TotalDurationMinutes { get; set; }
|
|
|
|
[JsonIgnore]
|
|
public virtual Classroom Session { get; set; }
|
|
|
|
protected ClassroomAttandance()
|
|
{
|
|
}
|
|
|
|
public ClassroomAttandance(
|
|
Guid id,
|
|
Guid sessionId,
|
|
Guid? studentId,
|
|
string studentName,
|
|
DateTime joinTime
|
|
) : base(id)
|
|
{
|
|
SessionId = sessionId;
|
|
StudentId = studentId;
|
|
StudentName = studentName;
|
|
JoinTime = joinTime;
|
|
TotalDurationMinutes = 0;
|
|
}
|
|
|
|
public void CalculateDuration()
|
|
{
|
|
if (LeaveTime.HasValue)
|
|
{
|
|
var duration = LeaveTime.Value - JoinTime;
|
|
TotalDurationMinutes = (int)duration.TotalMinutes;
|
|
}
|
|
else
|
|
{
|
|
var duration = DateTime.UtcNow - JoinTime;
|
|
TotalDurationMinutes = (int)duration.TotalMinutes;
|
|
}
|
|
}
|
|
}
|