erp-platform/api/src/Kurs.Platform.Domain/Classroom/ClassroomAttandance.cs
2025-08-31 23:26:49 +03:00

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;
}
}
}