This repository has been archived by the owner on Dec 21, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 104
/
CalendarProvider.cs
61 lines (57 loc) · 1.61 KB
/
CalendarProvider.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.AspNetCore.Hosting;
namespace WilderBlog.Services.DataProviders
{
public class CalendarProvider : DataProvider<CalendarEntry>
{
public CalendarProvider(IHostingEnvironment env)
: base(env, "calendar.json")
{
}
public override IEnumerable<CalendarEntry> Get()
{
return base.Get().OrderBy(a => a.EventDate).ToList();
}
}
public class CalendarEntry
{
public string EventName { get; set; }
public DateTime EventDate { get; set; }
public int Length { get; set; }
public string Link { get; set; }
public string Location { get; set; }
public string Note { get; set; }
public string Logo { get; set; }
public string FormattedDate
{
get
{
if (Length > 1)
{
var endDate = EventDate.AddDays(Length - 1);
if (endDate.Month == EventDate.Month)
{
return string.Format("{0} {1}-{2}, {3}", EventDate.ToString("MMM"), EventDate.Day, endDate.Day, EventDate.Year);
}
else
{
if (endDate.Year == EventDate.Year)
{
return string.Format("{0} {2}-{1} {3}, {4}", EventDate.ToString("MMM"), endDate.ToString("MMM"), EventDate.Day, endDate.Day, EventDate.Year);
}
else
{
return string.Format("{0}-{1}", EventDate.ToString("MMM d, YYYY"), endDate.ToString("MMM d, YYYY"));
}
}
}
else
{
return EventDate.ToString("MMM d, yyyy");
}
}
}
}
}