Monthly calendar basics.

This commit is contained in:
Burak Kaan Köse
2025-01-06 21:56:33 +01:00
parent 125c277c88
commit 0f57a4dfd7
43 changed files with 915 additions and 336 deletions

View File

@@ -0,0 +1,36 @@
using System;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Extensions;
namespace Wino.Core.Domain.Models.Calendar.CalendarTypeStrategies
{
public class MonthCalendarDrawingStrategy : BaseCalendarTypeDrawingStrategy
{
public MonthCalendarDrawingStrategy(CalendarSettings settings)
: base(settings, CalendarDisplayType.Month)
{
}
public override DateRange GetNextDateRange(DateRange CurrentDateRange, int DayDisplayCount)
{
return DateTimeExtensions.GetMonthDateRangeStartingWeekday(CurrentDateRange.EndDate, Settings.FirstDayOfWeek);
}
public override DateRange GetPreviousDateRange(DateRange CurrentDateRange, int DayDisplayCount)
{
return DateTimeExtensions.GetMonthDateRangeStartingWeekday(CurrentDateRange.StartDate, Settings.FirstDayOfWeek);
}
public override DateRange GetRenderDateRange(DateTime DisplayDate, int DayDisplayCount)
{
// Load 2 months at first.
var initialRange = DateTimeExtensions.GetMonthDateRangeStartingWeekday(DisplayDate.Date, Settings.FirstDayOfWeek);
var nextRange = GetNextDateRange(initialRange, DayDisplayCount);
return new DateRange(initialRange.StartDate, nextRange.EndDate);
}
public override int GetRenderDayCount(DateTime DisplayDate, int DayDisplayCount) => 35;
}
}