erp-platform/api/src/Kurs.Platform.Domain/Classroom/ClassAttandance.cs

51 lines
1.2 KiB
C#
Raw Normal View History

2025-08-25 18:01:57 +00:00
using System;
using Volo.Abp.Domain.Entities.Auditing;
namespace Kurs.Platform.Entities;
2025-08-26 05:59:39 +00:00
public class ClassAttandance : FullAuditedEntity<Guid>
2025-08-25 18:01:57 +00:00
{
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; }
// Navigation properties
2025-08-26 05:59:39 +00:00
public virtual Classroom Session { get; set; }
2025-08-25 18:01:57 +00:00
2025-08-26 05:59:39 +00:00
protected ClassAttandance()
2025-08-25 18:01:57 +00:00
{
}
2025-08-26 05:59:39 +00:00
public ClassAttandance(
2025-08-25 18:01:57 +00:00
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;
}
}
}