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

52 lines
1.3 KiB
C#
Raw Normal View History

2025-08-25 18:01:57 +00:00
using System;
2025-08-31 20:26:49 +00:00
using System.Text.Json.Serialization;
2025-08-25 18:01:57 +00:00
using Volo.Abp.Domain.Entities.Auditing;
namespace Kurs.Platform.Entities;
2025-08-29 09:37:38 +00:00
public class ClassroomAttandance : 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; }
2025-08-31 20:26:49 +00:00
[JsonIgnore]
2025-08-26 05:59:39 +00:00
public virtual Classroom Session { get; set; }
2025-08-25 18:01:57 +00:00
2025-08-29 09:37:38 +00:00
protected ClassroomAttandance()
2025-08-25 18:01:57 +00:00
{
}
2025-08-29 09:37:38 +00:00
public ClassroomAttandance(
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;
}
}
}