Ground work for Wino Calendar. (#475)

Wino Calendar abstractions.
This commit is contained in:
Burak Kaan Köse
2024-11-10 23:28:25 +01:00
committed by GitHub
parent a979e8430f
commit d1d6f12f05
486 changed files with 7969 additions and 2708 deletions

View File

@@ -0,0 +1,35 @@
using System;
using Wino.Core.Domain.Models.Calendar;
namespace Wino.Core.Extensions
{
public static class DateTimeExtensions
{
/// <summary>
/// Returns a date range for the month of the given date.
/// </summary>
/// <param name="date">Date to get range for.</param>
public static DateRange GetMonthDateRangeStartingWeekday(this DateTime date, DayOfWeek WeekStartDay)
{
var firstDayOfMonth = new DateTime(date.Year, date.Month, 1);
int daysToWeekDay = (int)firstDayOfMonth.DayOfWeek - (int)WeekStartDay;
if (daysToWeekDay < 0) daysToWeekDay += 7;
firstDayOfMonth = firstDayOfMonth.AddDays(-daysToWeekDay);
var lastDayOfMonth = firstDayOfMonth.AddMonths(1).AddDays(-1);
return new DateRange(firstDayOfMonth, lastDayOfMonth);
}
public static DateTime GetWeekStartDateForDate(this DateTime date, DayOfWeek firstDayOfWeek)
{
// Detect the first day of the week that contains the selected date.
int diff = (7 + (date.DayOfWeek - firstDayOfWeek)) % 7;
// Start loading from this date instead of visible date.
return date.AddDays(-diff).Date;
}
}
}

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Web;
using Google.Apis.Gmail.v1.Data;
using MimeKit;
using Wino.Core.Domain.Entities;
using Wino.Core.Domain.Entities.Mail;
using Wino.Core.Domain.Enums;
namespace Wino.Core.Extensions

View File

@@ -3,7 +3,7 @@ using System.Linq;
using MailKit;
using MimeKit;
using Wino.Core.Domain;
using Wino.Core.Domain.Entities;
using Wino.Core.Domain.Entities.Mail;
using Wino.Core.Domain.Enums;
namespace Wino.Core.Extensions

View File

@@ -1,7 +1,7 @@
using System;
using System.Linq;
using MailKit;
using Wino.Core.Domain.Entities;
using Wino.Core.Domain.Entities.Mail;
namespace Wino.Core.Extensions
{

View File

@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using Microsoft.Graph.Models;
using MimeKit;
using Wino.Core.Domain.Entities;
using Wino.Core.Domain.Entities.Mail;
using Wino.Core.Domain.Enums;
namespace Wino.Core.Extensions

View File

@@ -1,6 +1,6 @@
using System;
using Microsoft.Identity.Client;
using Wino.Core.Domain.Entities;
using Wino.Core.Domain.Entities.Shared;
namespace Wino.Core.Extensions
{