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 PossibleCustomers { get; set; } public List PossibleResources { get; set; } public List PossibleEmployees { get; set; } #region Terminformular-Elemente public List SelectedCustomers { get; set; } public List SelectedResources { get; set; } public List SelectedEmployees { get; set; } public List SelectedCustomerOids { get => DevExpressSchedulerSessionModel.SelectedCustomerOids; set => DevExpressSchedulerSessionModel.SelectedCustomerOids = value; } public List SelectedEmployeeOids { get => DevExpressSchedulerSessionModel.SelectedEmployeeOids; set => DevExpressSchedulerSessionModel.SelectedEmployeeOids = value; } public List 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 List SelectedEmployeeOidsForFiltering { get => DevExpressSchedulerSessionModel.SelectedEmployeeOidsForFiltering; set => DevExpressSchedulerSessionModel.SelectedEmployeeOidsForFiltering = value; } public List SelectedCustomerOidsForFiltering { get => DevExpressSchedulerSessionModel.SelectedCustomerOidsForFiltering; set => DevExpressSchedulerSessionModel.SelectedCustomerOidsForFiltering = value; } public List SelectedResourceOidsForFiltering { get => DevExpressSchedulerSessionModel.SelectedResourceOidsForFiltering; set => DevExpressSchedulerSessionModel.SelectedResourceOidsForFiltering = value; } public List MyTeams { get; set; } = new List(); public Dictionary> ResourceCategories2Resources { get; set; } = new Dictionary>(); public List MyTeamEmployees { get; set; } public List TeamMemberCustomerOids { get; set; } public List SelectedEmployeesForFiltering { get; set; } public List SelectedCustomersForFiltering { get; set; } public List SelectedResourcesForFiltering { get; set; } public List SelectedEmployeesForIntervalFinder { get; set; } public List SelectedCustomersForIntervalFinder { get; set; } public List SelectedResourcesForIntervalFinder { get; set; } public List SelectedEmployeeOidsForIntervalFinder { get => DevExpressSchedulerSessionModel.SelectedEmployeeOidsForIntervalFinder; set => DevExpressSchedulerSessionModel.SelectedEmployeeOidsForIntervalFinder = value; } public List SelectedCustomerOidsForIntervalFinder { get => DevExpressSchedulerSessionModel.SelectedCustomerOidsForIntervalFinder; set => DevExpressSchedulerSessionModel.SelectedCustomerOidsForIntervalFinder = value; } public List SelectedResourceOidsForIntervalFinder { get => DevExpressSchedulerSessionModel.SelectedResourceOidsForIntervalFinder; set => DevExpressSchedulerSessionModel.SelectedResourceOidsForIntervalFinder = value; } 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; } } }