114 lines
2.8 KiB
C#

#if FRAMEWORK20
using System;
using System.Collections.Generic;
using DevComponents.Schedule.Model;
namespace DevComponents.DotNetBar.Schedule
{
/// <summary>
/// Represents base class for the model to view connectors.
/// </summary>
internal abstract class ModelViewConnector
{
#region Internal Implementation
#region Private variables
private string _DisplayOwnerKey = "";
#endregion
#region Abstract defines
/// <summary>
/// Connects View to a model.
/// </summary>
public abstract void Connect();
/// <summary>
/// Disconnects view from model.
/// </summary>
public abstract void Disconnect();
/// <summary>
/// Gets whether connector has connected model to a view.
/// </summary>
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));
}
/// <summary>
/// Gets or sets the owner key of the owner of the appointments displayed on the view.
/// </summary>
public virtual string DisplayOwnerKey
{
get { return _DisplayOwnerKey; }
set
{
if (value == null)
value = "";
if (_DisplayOwnerKey != null)
{
_DisplayOwnerKey = value;
}
}
}
public virtual List<Appointment>
GetAppointmentList(CalendarModel model, DateTime startDate, DateTime endDate)
{
List<Appointment> appts = new List<Appointment>();
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