#if FRAMEWORK20 using System; using System.Collections.Generic; using DevComponents.Schedule.Model; namespace DevComponents.DotNetBar.Schedule { /// /// Represents base class for the model to view connectors. /// internal abstract class ModelViewConnector { #region Internal Implementation #region Private variables private string _DisplayOwnerKey = ""; #endregion #region Abstract defines /// /// Connects View to a model. /// public abstract void Connect(); /// /// Disconnects view from model. /// public abstract void Disconnect(); /// /// Gets whether connector has connected model to a view. /// public abstract bool IsConnected { get; } public abstract eCalendarView GetView(); #endregion #region Virtual methods protected virtual bool IsAppointmentVisible(Appointment app) { if (app.Visible == false) return (false); if (string.IsNullOrEmpty(_DisplayOwnerKey)) return (true); return (app.OwnerKey == _DisplayOwnerKey); } protected virtual bool IsCustomItemVisible(CustomCalendarItem item) { if (item.Visible == false) return (false); if (string.IsNullOrEmpty(_DisplayOwnerKey)) return (true); return (item.OwnerKey.Equals(_DisplayOwnerKey)); } /// /// Gets or sets the owner key of the owner of the appointments displayed on the view. /// public virtual string DisplayOwnerKey { get { return _DisplayOwnerKey; } set { if (value == null) value = ""; if (_DisplayOwnerKey != null) { _DisplayOwnerKey = value; } } } public virtual List GetAppointmentList(CalendarModel model, DateTime startDate, DateTime endDate) { List appts = new List(); for (DateTime date = startDate; date <= endDate; date = date.AddDays(1)) { Day day = model.GetDay(date); if (day.Appointments.Count > 0) { foreach (Appointment ap in day.Appointments) { if (appts.Contains(ap) == false) appts.Add(ap); } } } return (appts); } #endregion #endregion } } #endif