115 lines
2.8 KiB
C#
115 lines
2.8 KiB
C#
#if FRAMEWORK20
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using System.Collections.ObjectModel;
|
|
using System.ComponentModel;
|
|
using System.Globalization;
|
|
|
|
namespace DevComponents.Schedule.Model
|
|
{
|
|
/// <summary>
|
|
/// Represents the calendar month.
|
|
/// </summary>
|
|
public class Month
|
|
{
|
|
#region Private Variables
|
|
private int _Year = 0, _Month = 0;
|
|
private ReadOnlyCollection<Day> _ReadOnlyDays = null;
|
|
private List<Day> _Days = null;
|
|
private CalendarModel _CalendarModel = null;
|
|
#endregion
|
|
|
|
#region Internal Implementation
|
|
/// <summary>
|
|
/// Initializes a new instance of the Month class.
|
|
/// </summary>
|
|
/// <param name="year"></param>
|
|
/// <param name="month"></param>
|
|
public Month(CalendarModel calendar, int year, int month)
|
|
{
|
|
_CalendarModel = calendar;
|
|
_Year = year;
|
|
_Month = month;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets collection of days in this month.
|
|
/// </summary>
|
|
public ReadOnlyCollection<Day> Days
|
|
{
|
|
get
|
|
{
|
|
if (_ReadOnlyDays == null)
|
|
CreateDayCollection();
|
|
return _ReadOnlyDays;
|
|
}
|
|
}
|
|
|
|
private void CreateDayCollection()
|
|
{
|
|
Calendar cal = _CalendarModel.GetCalendar();
|
|
int daysCount = cal.GetDaysInMonth(_Year, _Month);
|
|
_Days = new List<Day>(daysCount);
|
|
for (int i = 0; i < daysCount; i++)
|
|
{
|
|
Day day = new Day(new DateTime(_Year, _Month, i + 1), _CalendarModel);
|
|
|
|
_Days.Add(day);
|
|
}
|
|
_ReadOnlyDays = new ReadOnlyCollection<Day>(_Days);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets the month year.
|
|
/// </summary>
|
|
[Browsable(false)]
|
|
public int Year
|
|
{
|
|
get { return _Year; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets the month.
|
|
/// </summary>
|
|
[Browsable(false)]
|
|
public int MonthOfYear
|
|
{
|
|
get { return _Month; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Gets the Calendar this day is part of.
|
|
/// </summary>
|
|
[Browsable(false)]
|
|
public CalendarModel CalendarModel
|
|
{
|
|
get { return _CalendarModel; }
|
|
internal set { _CalendarModel = value; }
|
|
}
|
|
|
|
internal void InvalidateAppointments()
|
|
{
|
|
if (_Days == null) return;
|
|
|
|
foreach (Day day in _Days)
|
|
{
|
|
day.InvalidateAppointments();
|
|
}
|
|
}
|
|
|
|
internal void InvalidateAppointments(int day)
|
|
{
|
|
if (_Days == null) return;
|
|
|
|
_Days[day - 1].InvalidateAppointments();
|
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
}
|
|
}
|
|
#endif
|
|
|