using System; using System.Collections.Generic; using System.Drawing; using System.Windows.Media.Imaging; using Comal.Classes; using InABox.Core; using InABox.WPF; namespace PRSDesktop { public class AssignmentAppointment : CalendarAppointment { public AssignmentAppointment(AssignmentModel model, Func employeeid, Func color, CalendarAssignmentType type) : base(model, employeeid, color) { StartTime = type switch { CalendarAssignmentType.Booked => Model.Date.Add(Model.BookedStart), CalendarAssignmentType.Actual => Model.Date.Add(Model.ActualStart), _ => Model.Date.Add(Model.EffectiveStart()), }; EndTime = type switch { CalendarAssignmentType.Booked => Model.Date.Add(Model.BookedFinish), CalendarAssignmentType.Actual => Model.Date.Add(Model.ActualFinish), _ => Model.Date.Add(Model.EffectiveFinish()), }; Notes = Model.Notes; var subject = new List() { model.Number.ToString() }; if (model.JobID != Guid.Empty) subject.Add( model.ItpID != Guid.Empty ? $"{model.JobNumber}-{model.ItpCode}" : $"{model.JobNumber}" ); if (model.TaskID != Guid.Empty) subject.Add($"Task {model.TaskNumber}"); if (model.MeetingID != Guid.Empty) subject.Add($"Mtg {model.MeetingNumber}"); subject.Add(model.Subject ?? ""); Subject = String.Join(" ", subject); List images = new List(); if (!model.Completed.IsEmpty()) images.Add(Resources.tick_sml.Resize(32,32)); if (model.DeliveryID != Guid.Empty) images.Add(Resources.box_sml.Resize(32,32)); if (model.MeetingID != Guid.Empty) images.Add(Resources.employees.Resize(32,32)); Image = ImageUtils.MergeBitmaps(images, 10)?.AsBitmapImage(); } } }