csusing System;
using System.Collections.Generic;
namespace AttendanceSystem
{
public class Employee
{
public string Name { get; set; }
public string Id { get; set; }
public List<DateTime> Attendance { get; set; } = new List<DateTime>();
}
public class AttendanceSystem
{
private Dictionary<string, Employee> _employees = new Dictionary<string, Employee>();
private Dictionary<string, List<DateTime>> _attendanceRecords = new Dictionary<string, List<DateTime>>();
public AttendanceSystem()
{
_employees["Employee1"] = new Employee { Name = "Employee1", Id = "E1" };
_employees["Employee2"] = new Employee { Name = "Employee2", Id = "E2" };
_employees["Employee3"] = new Employee { Name = "Employee3", Id = "E3" };
}
public void AddAttendance(string employeeId, DateTime date, bool isPresent)
{
if (!_attendanceRecords.ContainsKey(employeeId))
{
_attendanceRecords[employeeId] = new List<DateTime>();
}
_attendanceRecords[employeeId].Add(date);
if (isPresent)
{
_employees[employeeId].Attendance.Add(date);
}
else
{
_employees[employeeId].Attendance.RemoveAll(x => x == date);
}
}
public void DisplayAttendance(string employeeId)
{
if (!_attendanceRecords.ContainsKey(employeeId))
{
Console.WriteLine($"Employee {employeeId} not found in the system.");
return;
}
Console.WriteLine($"Attendance record of {_employees[employeeId].Name}:");
foreach (var record in _attendanceRecords[employeeId])
{
Console.WriteLine($"Date: {record.Date.ToShortDateString()}, Present: {_employees[employeeId].Attendance.Contains(record.Date)}");
}
}
}
class Program
{
static void Main(string[] args)
{
AttendanceSystem attendanceSystem = new AttendanceSystem();
attendanceSystem.AddAttendance("E1", new DateTime(2022, 1, 1), true);
attendanceSystem.AddAttendance("E1", new DateTime(2022, 1, 1), false);
attendanceSystem.AddAttendance("E1", new DateTime(2022, 1, 2), true);
attendanceSystem.AddAttendance("E1", new DateTime(2022, 1, 3), false);
attendanceSystem.AddAttendance("E2", new DateTime(2022, 1, 1), true);
attendanceSystem.AddAttendance("E2", new DateTime(2022, 1, 1), false);
attendanceSystem.AddAttendance("E2", new DateTime(2022, 1, 2), true);
attendanceSystem.AddAttendance("E2", new DateTime(2022, 1, 3), false);
attendanceSystem.DisplayAttendance("E1"); // Output: Employee E1 not found in the system.
attendanceSystem.DisplayAttendance("E2"); // Output: Attendance record of Employee E2: Date: 1/1/2022, Present: True Date: 1/1/2022, Present: False Date: 1/2/2022, Present: True Date: 1/3/2022, Present: False
}
}
}