using System; using System.Collections.Concurrent; using System.ComponentModel; using System.Windows.Controls; using System.Windows.Media; using System.Windows.Media.Imaging; using Comal.Classes; using InABox.Core; namespace PRSDesktop { public enum AssignmentViewTimeInterval { FiveMinutes, SixMinutes, TenMinutes, FifteenMinutes, TwentyMinutes, ThirtyMinutes, SixyMinutes } public delegate void AssignmentSelectionChangedEvent(object sender, Assignment assignment); public delegate void AssignmentChangedEvent(object sender, Assignment assignment); public delegate void CustomiseAssignments(object sender, CoreTable assignments); public delegate void CustomiseAssignmentsContextMenu(ContextMenu menu, IAssignmentData e); public class AssignmentViewSettings : EventArgs { public DateTime SelectedDate { get; init; } public double Zoom { get; init; } public Guid SelectedTeam { get; init; } public Guid[] SelectedEmployees { get; init; } public bool SideBarOpen { get; init; } } public delegate void AssignmentViewSettingsChanged(object sender, AssignmentViewSettings args); public interface IAssignmentViewModel { Guid AssignmentID { get; set; } Guid EmployeeID { get; set; } int Number { get; set; } string JobNumber { get; set; } BitmapImage Completed { get; set; } BitmapImage HasDelivery { get; set; } BitmapImage Locked { get; set; } BitmapImage TimeSheet { get; set; } String Subject { get; set; } String Notes { get; set; } DateTime StartTime { get; set; } DateTime EndTime { get; set; } Brush AppointmentForeground { get; set; } Brush AppointmentBackground { get; set; } } public interface IAssignmentData { IAssignmentViewModel Model { get; } Guid EmployeeID { get; } DateTime Time { get; } } public class AssignmentData : EventArgs, IAssignmentData { public AssignmentData(IAssignmentViewModel model, Guid employeeid, DateTime time) { Model = model; EmployeeID = employeeid; Time = time; } public IAssignmentViewModel Model { get; } public Guid EmployeeID { get; } public DateTime Time { get; } } }