Files
BeWoPlaner/BeWoPlanerMobil/Models/DevExpressSchedulerModel.cs
2026-05-08 11:05:48 +02:00

170 lines
6.2 KiB
C#

using System.Collections;
using System.Collections.Generic;
using BeWoPlanerMobil.Util.SchedulerUtils;
using BS.Shared.DataContracts;
using BS.Shared.DataContracts.Compact;
using DevExpress.XtraScheduler;
namespace BeWoPlanerMobil.Models
{
public class DevExpressSchedulerModel : AbstractModel
{
public DevExpressSchedulerModel()
{
SessionModel = new DevExpressSchedulerSessionModel();
SessionModel.ResetValues();
}
public SchedulerViewType CurrentViewType
{
get => DevExpressSchedulerSessionModel.CurrentSchedulerViewType;
set => DevExpressSchedulerSessionModel.CurrentSchedulerViewType = value;
}
public DevExpressSchedulerSessionModel DevExpressSchedulerSessionModel => SessionModel as DevExpressSchedulerSessionModel;
public List<CompactCustomerDC> PossibleCustomers { get; set; }
public List<ResourceDC> PossibleResources { get; set; }
public List<CompactEmployeeDC> PossibleEmployees { get; set; }
#region Terminformular-Elemente
public List<CompactCustomerDC> SelectedCustomers { get; set; }
public List<ResourceDC> SelectedResources { get; set; }
public List<CompactEmployeeDC> SelectedEmployees { get; set; }
public List<long> SelectedCustomerOids
{
get => DevExpressSchedulerSessionModel.SelectedCustomerOids;
set => DevExpressSchedulerSessionModel.SelectedCustomerOids = value;
}
public List<long> SelectedEmployeeOids
{
get => DevExpressSchedulerSessionModel.SelectedEmployeeOids;
set => DevExpressSchedulerSessionModel.SelectedEmployeeOids = value;
}
public List<long> SelectedResourceOids
{
get => DevExpressSchedulerSessionModel.SelectedResourceOids;
set => DevExpressSchedulerSessionModel.SelectedResourceOids = value;
}
#endregion
public EmployeeAvailabilityObject EmployeeAvailabilityObject { get; set; }
public IEnumerable Appointments { get; set; }
public IEnumerable Resources { get; set; }
public SchedulerAppointmentDC GetAppointmentByOid(long oid)
{
foreach(SchedulerAppointmentDC appointment in Appointments)
{
if(appointment.SchedulerAppointmentOid?.Equals(oid) ?? false)
{
return appointment;
}
}
return null;
}
public long? AppointmentOid2Answer
{
get => DevExpressSchedulerSessionModel.AppointmentOid2Answer;
set => DevExpressSchedulerSessionModel.AppointmentOid2Answer = value;
}
public SchedulerAppointmentDC Appointment2Answer { get; set; }
public List<long> SelectedEmployeeOidsForFiltering
{
get => DevExpressSchedulerSessionModel.SelectedEmployeeOidsForFiltering;
set => DevExpressSchedulerSessionModel.SelectedEmployeeOidsForFiltering = value;
}
public List<long> SelectedCustomerOidsForFiltering
{
get => DevExpressSchedulerSessionModel.SelectedCustomerOidsForFiltering;
set => DevExpressSchedulerSessionModel.SelectedCustomerOidsForFiltering = value;
}
public List<long> SelectedResourceOidsForFiltering
{
get => DevExpressSchedulerSessionModel.SelectedResourceOidsForFiltering;
set => DevExpressSchedulerSessionModel.SelectedResourceOidsForFiltering = value;
}
public List<CompactTeamDC> MyTeams { get; set; } = new List<CompactTeamDC>();
public Dictionary<ValueListEntryDC, List<ResourceDC>> ResourceCategories2Resources { get; set; } = new Dictionary<ValueListEntryDC, List<ResourceDC>>();
public List<CompactEmployeeDC> MyTeamEmployees { get; set; }
public List<long> TeamMemberCustomerOids { get; set; }
public List<CompactEmployeeDC> SelectedEmployeesForFiltering { get; set; }
public List<CompactCustomerDC> SelectedCustomersForFiltering { get; set; }
public List<ResourceDC> SelectedResourcesForFiltering { get; set; }
public bool ShowTasks
{
get => DevExpressSchedulerSessionModel.ShowTasks;
set => DevExpressSchedulerSessionModel.ShowTasks = value;
}
public bool ShowOnlyPrivateAppointments
{
get => DevExpressSchedulerSessionModel.ShowOnlyPrivateAppointments;
set => DevExpressSchedulerSessionModel.ShowOnlyPrivateAppointments = value;
}
public bool ShowOnlyEmployees
{
get => DevExpressSchedulerSessionModel.ShowOnlyEmployees;
set => DevExpressSchedulerSessionModel.ShowOnlyEmployees = value;
}
public bool ShowOnlyCustomers
{
get => DevExpressSchedulerSessionModel.ShowOnlyCustomers;
set => DevExpressSchedulerSessionModel.ShowOnlyCustomers = value;
}
public bool ShowOnlyResources
{
get => DevExpressSchedulerSessionModel.ShowOnlyResources;
set => DevExpressSchedulerSessionModel.ShowOnlyResources = value;
}
public bool ShowAbsenceTimes
{
get => DevExpressSchedulerSessionModel.ShowAbsenceTimes;
set => DevExpressSchedulerSessionModel.ShowAbsenceTimes = value;
}
public bool ShowEmployeeColors
{
get => DevExpressSchedulerSessionModel.ShowEmployeeColors;
set => DevExpressSchedulerSessionModel.ShowEmployeeColors = value;
}
public bool ShowOnlyMyOwnAppointments
{
get => DevExpressSchedulerSessionModel.ShowOnlyMyOwnAppointments;
set => DevExpressSchedulerSessionModel.ShowOnlyMyOwnAppointments = value;
}
#region Benachrichtigungen
public List<SchedulerAppointmentDC> OpenAppointments { get; set; }
public List<long> OpenAppointmentOids
{
get => DevExpressSchedulerSessionModel.OpenAppointmentOids;
set => DevExpressSchedulerSessionModel.OpenAppointmentOids = value;
}
public int NotificationCount => OpenAppointmentOids?.Count ?? 0;
#endregion
}
}