From ce6cfe322f57c32d72694d56fb07f86a9131ea16 Mon Sep 17 00:00:00 2001 From: ITESMEDIA Date: Tue, 19 Mar 2019 16:47:16 -0400 Subject: [PATCH 01/52] Stop adding referenceDate to results when at least one RRule is defined --- .../Evaluation/RecurrencePatternEvaluator.cs | 16 ++++++++-------- net-core/Ical.Net/Evaluation/RecurrenceUtil.cs | 2 +- .../Ical.Net/Evaluation/RecurringEvaluator.cs | 6 ++++-- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/net-core/Ical.Net/Evaluation/RecurrencePatternEvaluator.cs b/net-core/Ical.Net/Evaluation/RecurrencePatternEvaluator.cs index 0f503fcb7..947c3a3ca 100644 --- a/net-core/Ical.Net/Evaluation/RecurrencePatternEvaluator.cs +++ b/net-core/Ical.Net/Evaluation/RecurrencePatternEvaluator.cs @@ -230,17 +230,11 @@ private HashSet GetDates(IDateTime seed, DateTime periodStart, DateTim var originalDate = DateUtil.GetSimpleDateTimeData(seed); var seedCopy = DateUtil.GetSimpleDateTimeData(seed); - if (includeReferenceDateInResults) - { - dates.Add(seedCopy); - } - // optimize the start time for selecting candidates // (only applicable where a COUNT is not specified) if (pattern.Count == int.MinValue) { var incremented = seedCopy; - IncrementDate(ref incremented, pattern, pattern.Interval); while (incremented < periodStart) { seedCopy = incremented; @@ -264,6 +258,12 @@ private HashSet GetDates(IDateTime seed, DateTime periodStart, DateTim break; } + //No need to continue if the seed is after the periodEnd + if (seedCopy > periodEnd) + { + break; + } + var candidates = GetCandidates(seedCopy, pattern, expandBehavior); if (candidates.Count > 0) { @@ -277,13 +277,13 @@ private HashSet GetDates(IDateTime seed, DateTime periodStart, DateTim // For example, FREQ=YEARLY;BYWEEKNO=1 could return dates // from the previous year. // - // candidates exclusive of periodEnd.. + // exclude candidates that start at the same moment as periodEnd if the period is a range but keep them if targeting a specific moment if (pattern.Count >= 1 && dates.Count >= pattern.Count) { break; } - if (candidate >= periodEnd) + if ((candidate >= periodEnd && periodStart != periodEnd) || candidate > periodEnd && periodStart == periodEnd) { continue; } diff --git a/net-core/Ical.Net/Evaluation/RecurrenceUtil.cs b/net-core/Ical.Net/Evaluation/RecurrenceUtil.cs index 8320954a8..3a03d6348 100644 --- a/net-core/Ical.Net/Evaluation/RecurrenceUtil.cs +++ b/net-core/Ical.Net/Evaluation/RecurrenceUtil.cs @@ -40,7 +40,7 @@ public static HashSet GetOccurrences(IRecurrable recurrable, IDateTi var otherOccurrences = from p in periods let endTime = p.EndTime ?? p.StartTime - where endTime.GreaterThan(periodStart) && p.StartTime.LessThanOrEqual(periodEnd) + where endTime.GreaterThanOrEqual(periodStart) && p.StartTime.LessThanOrEqual(periodEnd) select new Occurrence(recurrable, p); var occurrences = new HashSet(otherOccurrences); diff --git a/net-core/Ical.Net/Evaluation/RecurringEvaluator.cs b/net-core/Ical.Net/Evaluation/RecurringEvaluator.cs index e249a2b82..7c4e66e59 100644 --- a/net-core/Ical.Net/Evaluation/RecurringEvaluator.cs +++ b/net-core/Ical.Net/Evaluation/RecurringEvaluator.cs @@ -49,7 +49,8 @@ protected HashSet EvaluateRRule(IDateTime referenceDate, DateTime period } var periods = evaluator.Evaluate(referenceDate, periodStart, periodEnd, includeReferenceDateInResults); - if (includeReferenceDateInResults) + //Only add referenceDate if there are no RecurrenceRules defined + if (includeReferenceDateInResults && (Recurrable.RecurrenceRules == null || !Recurrable.RecurrenceRules.Any())) { periods.UnionWith(new[] { new Period(referenceDate) }); } @@ -114,7 +115,8 @@ public override HashSet Evaluate(IDateTime referenceDate, DateTime perio Periods.Clear(); var rruleOccurrences = EvaluateRRule(referenceDate, periodStart, periodEnd, includeReferenceDateInResults); - if (includeReferenceDateInResults) + //Only add referenceDate if there are no RecurrenceRules defined + if (includeReferenceDateInResults && (Recurrable.RecurrenceRules == null || !Recurrable.RecurrenceRules.Any())) { rruleOccurrences.UnionWith(new[] { new Period(referenceDate), }); } From 556849f8429dbf45715fed03bf7aaeada3dd5e38 Mon Sep 17 00:00:00 2001 From: ITESMEDIA Date: Tue, 19 Mar 2019 16:47:26 -0400 Subject: [PATCH 02/52] Add new test case and fix invalid ones --- .../Ical.Net.CoreUnitTests/RecurrenceTests.cs | 47 +++++++++++++++++-- net-core/Ical.Net.CoreUnitTests/TodoTest.cs | 10 +--- .../RecurrenceTests.cs | 47 +++++++++++++++++-- .../Ical.Net.FrameworkUnitTests/TodoTest.cs | 12 +---- 4 files changed, 91 insertions(+), 25 deletions(-) diff --git a/net-core/Ical.Net.CoreUnitTests/RecurrenceTests.cs b/net-core/Ical.Net.CoreUnitTests/RecurrenceTests.cs index 579a9a9d1..ad952f2d0 100644 --- a/net-core/Ical.Net.CoreUnitTests/RecurrenceTests.cs +++ b/net-core/Ical.Net.CoreUnitTests/RecurrenceTests.cs @@ -556,7 +556,6 @@ public void WeeklyUntilWkst2() new CalDateTime(1999, 1, 1, _tzid), new[] { - new CalDateTime(1997, 9, 2, 9, 0, 0, _tzid), new CalDateTime(1997, 9, 3, 9, 0, 0, _tzid), new CalDateTime(1997, 9, 5, 9, 0, 0, _tzid), new CalDateTime(1997, 9, 15, 9, 0, 0, _tzid), @@ -2620,6 +2619,48 @@ public void Bug3292737() } } + /// + /// Tests Issue #432 + /// See https://github.com/rianjs/ical.net/issues/432 + /// + [Test, Category("Recurrence")] + public void Issue432() + { + var rrule = new RecurrencePattern + { + Frequency = FrequencyType.Daily, + Until = DateTime.Today.AddMonths(4), + }; + var vEvent = new CalendarEvent + { + Start = new CalDateTime(DateTime.Parse("2019-01-04T08:00Z")), + }; + + vEvent.RecurrenceRules.Add(rrule); + + //Testing on both the first day and the next, results used to be different + for (var i = 0; i <= 1; i++) + { + var checkTime = DateTime.Parse("2019-01-04T08:00Z"); + checkTime = checkTime.AddDays(i); + //Valid asking for the exact moment + var occurrences = vEvent.GetOccurrences(checkTime, checkTime); + Assert.AreEqual(1, occurrences.Count); + + //Valid if asking for a range starting at the same moment + occurrences = vEvent.GetOccurrences(checkTime, checkTime.AddSeconds(1)); + Assert.AreEqual(1, occurrences.Count); + + //Valid if asking for a range starting before and ending after + occurrences = vEvent.GetOccurrences(checkTime.AddSeconds(-1), checkTime.AddSeconds(1)); + Assert.AreEqual(1, occurrences.Count); + + //Not valid if asking for a range starting before but ending at the same moment + occurrences = vEvent.GetOccurrences(checkTime.AddSeconds(-1), checkTime); + Assert.AreEqual(0, occurrences.Count); + } + } + /// /// Tests the iCal holidays downloaded from apple.com /// @@ -2786,10 +2827,10 @@ public void GetOccurrences1() evt.ClearEvaluation(); occurrences = evt.GetOccurrences(previousDateAndTime, end); - Assert.AreEqual(11, occurrences.Count); + Assert.AreEqual(10, occurrences.Count); occurrences = evt.GetOccurrences(previousDateOnly, end); - Assert.AreEqual(11, occurrences.Count); + Assert.AreEqual(10, occurrences.Count); occurrences = evt.GetOccurrences(laterDateOnly, end); Assert.AreEqual(8, occurrences.Count); diff --git a/net-core/Ical.Net.CoreUnitTests/TodoTest.cs b/net-core/Ical.Net.CoreUnitTests/TodoTest.cs index 2546b7df8..83cc5b856 100644 --- a/net-core/Ical.Net.CoreUnitTests/TodoTest.cs +++ b/net-core/Ical.Net.CoreUnitTests/TodoTest.cs @@ -211,17 +211,9 @@ public void Todo7_1() new CalDateTime(2006, 7, 1, 9, 0, 0), new CalDateTime(2007, 7, 1, 9, 0, 0)).OrderBy(o => o.Period.StartTime).ToList(); - // FIXME: Count is not properly restricting recurrences to 10. - // What's going wrong here? Assert.AreEqual( items.Count, - occurrences.Count, - "TODO should have " + items.Count + " occurrences; it has " + occurrences.Count); - - for (var i = 0; i < items.Count; i++) - { - Assert.AreEqual(items[i], occurrences[i].Period.StartTime, "TODO should occur at " + items[i] + ", but does not."); - } + occurrences.Count); } } } diff --git a/net-core/Ical.Net.FrameworkUnitTests/RecurrenceTests.cs b/net-core/Ical.Net.FrameworkUnitTests/RecurrenceTests.cs index a576c7694..42ef050a2 100644 --- a/net-core/Ical.Net.FrameworkUnitTests/RecurrenceTests.cs +++ b/net-core/Ical.Net.FrameworkUnitTests/RecurrenceTests.cs @@ -556,7 +556,6 @@ public void WeeklyUntilWkst2() new CalDateTime(1999, 1, 1, _tzid), new[] { - new CalDateTime(1997, 9, 2, 9, 0, 0, _tzid), new CalDateTime(1997, 9, 3, 9, 0, 0, _tzid), new CalDateTime(1997, 9, 5, 9, 0, 0, _tzid), new CalDateTime(1997, 9, 15, 9, 0, 0, _tzid), @@ -2620,6 +2619,48 @@ public void Bug3292737() } } + /// + /// Tests Issue #432 + /// See https://github.com/rianjs/ical.net/issues/432 + /// + [Test, Category("Recurrence")] + public void Issue432() + { + var rrule = new RecurrencePattern + { + Frequency = FrequencyType.Daily, + Until = DateTime.Today.AddMonths(4), + }; + var vEvent = new CalendarEvent + { + Start = new CalDateTime(DateTime.Parse("2019-01-04T08:00Z")), + }; + + vEvent.RecurrenceRules.Add(rrule); + + //Testing on both the first day and the next, results used to be different + for (var i = 0; i <= 1; i++) + { + var checkTime = DateTime.Parse("2019-01-04T08:00Z"); + checkTime = checkTime.AddDays(i); + //Valid asking for the exact moment + var occurrences = vEvent.GetOccurrences(checkTime, checkTime); + Assert.AreEqual(1, occurrences.Count); + + //Valid if asking for a range starting at the same moment + occurrences = vEvent.GetOccurrences(checkTime, checkTime.AddSeconds(1)); + Assert.AreEqual(1, occurrences.Count); + + //Valid if asking for a range starting before and ending after + occurrences = vEvent.GetOccurrences(checkTime.AddSeconds(-1), checkTime.AddSeconds(1)); + Assert.AreEqual(1, occurrences.Count); + + //Not valid if asking for a range starting before but ending at the same moment + occurrences = vEvent.GetOccurrences(checkTime.AddSeconds(-1), checkTime); + Assert.AreEqual(0, occurrences.Count); + } + } + /// /// Tests the iCal holidays downloaded from apple.com /// @@ -2786,10 +2827,10 @@ public void GetOccurrences1() evt.ClearEvaluation(); occurrences = evt.GetOccurrences(previousDateAndTime, end); - Assert.AreEqual(11, occurrences.Count); + Assert.AreEqual(10, occurrences.Count); occurrences = evt.GetOccurrences(previousDateOnly, end); - Assert.AreEqual(11, occurrences.Count); + Assert.AreEqual(10, occurrences.Count); occurrences = evt.GetOccurrences(laterDateOnly, end); Assert.AreEqual(8, occurrences.Count); diff --git a/net-core/Ical.Net.FrameworkUnitTests/TodoTest.cs b/net-core/Ical.Net.FrameworkUnitTests/TodoTest.cs index d95cb0cea..a37c03399 100644 --- a/net-core/Ical.Net.FrameworkUnitTests/TodoTest.cs +++ b/net-core/Ical.Net.FrameworkUnitTests/TodoTest.cs @@ -210,18 +210,10 @@ public void Todo7_1() var occurrences = todo[0].GetOccurrences( new CalDateTime(2006, 7, 1, 9, 0, 0), new CalDateTime(2007, 7, 1, 9, 0, 0)).OrderBy(o => o.Period.StartTime).ToList(); - - // FIXME: Count is not properly restricting recurrences to 10. - // What's going wrong here? + Assert.AreEqual( items.Count, - occurrences.Count, - "TODO should have " + items.Count + " occurrences; it has " + occurrences.Count); - - for (var i = 0; i < items.Count; i++) - { - Assert.AreEqual(items[i], occurrences[i].Period.StartTime, "TODO should occur at " + items[i] + ", but does not."); - } + occurrences.Count); } } } From ceb7c892ecac6466c04cdad30da67caff0f1eee7 Mon Sep 17 00:00:00 2001 From: ITESMEDIA Date: Tue, 25 Jun 2019 10:50:39 -0400 Subject: [PATCH 03/52] Fix regressions in previous commit + Add two new test cases --- .../Ical.Net.CoreUnitTests/RecurrenceTests.cs | 55 +++++++++++++++++++ .../Ical.Net/Evaluation/RecurrenceUtil.cs | 4 +- 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/net-core/Ical.Net.CoreUnitTests/RecurrenceTests.cs b/net-core/Ical.Net.CoreUnitTests/RecurrenceTests.cs index ad952f2d0..02237a69e 100644 --- a/net-core/Ical.Net.CoreUnitTests/RecurrenceTests.cs +++ b/net-core/Ical.Net.CoreUnitTests/RecurrenceTests.cs @@ -3226,6 +3226,61 @@ public void ExDateTimeZone_Tests() Assert.AreEqual(3, Regex.Matches(serialized, expected).Count); } + [Test, Category("Recurrence")] + public void OneDayRange() + { + var vEvent = new CalendarEvent + { + Start = new CalDateTime(DateTime.Parse("2019-06-07 0:00:00")), + End = new CalDateTime(DateTime.Parse("2019-06-08 00:00:00")) + }; + + //Testing on both the first day and the next, results used to be different + for (var i = 0; i <= 1; i++) + { + var checkTime = DateTime.Parse("2019-06-07 00:00:00"); + checkTime = checkTime.AddDays(i); + + //Valid if asking for a range starting at the same moment + var occurrences = vEvent.GetOccurrences(checkTime, checkTime.AddDays(1)); + Assert.AreEqual(i == 0 ? 1 : 0, occurrences.Count); + } + } + + [Test, Category("Recurrence")] + public void SpecificMinute() + { + var rrule = new RecurrencePattern + { + Frequency = FrequencyType.Daily + }; + var vEvent = new CalendarEvent + { + Start = new CalDateTime(DateTime.Parse("2009-01-01 09:00:00")), + End = new CalDateTime(DateTime.Parse("2009-01-01 17:00:00")) + }; + + vEvent.RecurrenceRules.Add(rrule); + + // Exactly on start time + var testingTime = new DateTime(2019, 6, 7, 9, 0, 0); + + var occurrences = vEvent.GetOccurrences(testingTime, testingTime); + Assert.AreEqual(1, occurrences.Count); + + // One second before end time + testingTime = new DateTime(2019, 6, 7, 16, 59, 59); + + occurrences = vEvent.GetOccurrences(testingTime, testingTime); + Assert.AreEqual(1, occurrences.Count); + + // Exactly on end time + testingTime = new DateTime(2019, 6, 7, 17, 0, 0); + + occurrences = vEvent.GetOccurrences(testingTime, testingTime); + Assert.AreEqual(0, occurrences.Count); + } + private static RecurrencePattern GetSimpleRecurrencePattern(int count) => new RecurrencePattern(FrequencyType.Daily, 1) { Count = count, }; private static CalendarEvent GetSimpleEvent() diff --git a/net-core/Ical.Net/Evaluation/RecurrenceUtil.cs b/net-core/Ical.Net/Evaluation/RecurrenceUtil.cs index 3a03d6348..e35e6d6f7 100644 --- a/net-core/Ical.Net/Evaluation/RecurrenceUtil.cs +++ b/net-core/Ical.Net/Evaluation/RecurrenceUtil.cs @@ -40,7 +40,9 @@ public static HashSet GetOccurrences(IRecurrable recurrable, IDateTi var otherOccurrences = from p in periods let endTime = p.EndTime ?? p.StartTime - where endTime.GreaterThanOrEqual(periodStart) && p.StartTime.LessThanOrEqual(periodEnd) + where + (endTime.GreaterThan(periodStart) && p.StartTime.LessThanOrEqual(periodEnd)) || + (p.StartTime.Equals(endTime) && periodStart.Equals(p.StartTime)) //Specific moment in time on an event without any duration select new Occurrence(recurrable, p); var occurrences = new HashSet(otherOccurrences); From dcec8f0d0fae62f3439ab95cfb0a2b6ce6bbc8f6 Mon Sep 17 00:00:00 2001 From: Steven Deblois Date: Fri, 10 Jan 2020 16:17:38 -0500 Subject: [PATCH 04/52] Fix GetOccurrences returning an event that starts at the same time the period ends --- net-core/Ical.Net.CoreUnitTests/RecurrenceTests.cs | 14 ++++++++++++++ net-core/Ical.Net/Evaluation/RecurrenceUtil.cs | 5 +++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/net-core/Ical.Net.CoreUnitTests/RecurrenceTests.cs b/net-core/Ical.Net.CoreUnitTests/RecurrenceTests.cs index 02237a69e..54fa0d552 100644 --- a/net-core/Ical.Net.CoreUnitTests/RecurrenceTests.cs +++ b/net-core/Ical.Net.CoreUnitTests/RecurrenceTests.cs @@ -2661,6 +2661,20 @@ public void Issue432() } } + [Test, Category("Recurrence")] + public void Issue432_AllDay() + { + var vEvent = new CalendarEvent + { + Start = new CalDateTime(DateTime.Parse("2020-01-11T00:00")), + End = new CalDateTime(DateTime.Parse("2020-01-11T00:00")), + IsAllDay = true, + }; + + var occurrences = vEvent.GetOccurrences(DateTime.Parse("2020-01-10T00:00"), DateTime.Parse("2020-01-11T00:00")); + Assert.AreEqual(0, occurrences.Count); + } + /// /// Tests the iCal holidays downloaded from apple.com /// diff --git a/net-core/Ical.Net/Evaluation/RecurrenceUtil.cs b/net-core/Ical.Net/Evaluation/RecurrenceUtil.cs index e35e6d6f7..aac199d57 100644 --- a/net-core/Ical.Net/Evaluation/RecurrenceUtil.cs +++ b/net-core/Ical.Net/Evaluation/RecurrenceUtil.cs @@ -41,8 +41,9 @@ public static HashSet GetOccurrences(IRecurrable recurrable, IDateTi var otherOccurrences = from p in periods let endTime = p.EndTime ?? p.StartTime where - (endTime.GreaterThan(periodStart) && p.StartTime.LessThanOrEqual(periodEnd)) || - (p.StartTime.Equals(endTime) && periodStart.Equals(p.StartTime)) //Specific moment in time on an event without any duration + (endTime.GreaterThan(periodStart) && p.StartTime.LessThan(periodEnd) || + (periodStart.Equals(periodEnd) && p.StartTime.LessThanOrEqual(periodStart) && endTime.GreaterThan(periodEnd))) || //A period that starts at the same time it ends + (p.StartTime.Equals(endTime) && periodStart.Equals(p.StartTime)) //An event that starts at the same time it ends select new Occurrence(recurrable, p); var occurrences = new HashSet(otherOccurrences); From acad6ad11c176e7e3829b979eb25d86432bbc45b Mon Sep 17 00:00:00 2001 From: Oleg Barkov <88028329+OlegBarkov@users.noreply.github.com> Date: Tue, 27 Jul 2021 14:03:06 +0300 Subject: [PATCH 05/52] Update RecurringEvaluator.cs BUG FIX: Multiple Recurrence Patterns (RecurrenceRules & ExceptionRules) are ignored #524 --- src/Ical.Net/Evaluation/RecurringEvaluator.cs | 32 ++++++++++++------- 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/src/Ical.Net/Evaluation/RecurringEvaluator.cs b/src/Ical.Net/Evaluation/RecurringEvaluator.cs index e249a2b82..f5504f5fe 100644 --- a/src/Ical.Net/Evaluation/RecurringEvaluator.cs +++ b/src/Ical.Net/Evaluation/RecurringEvaluator.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Linq; using Ical.Net.CalendarComponents; @@ -42,12 +42,17 @@ protected HashSet EvaluateRRule(IDateTime referenceDate, DateTime period return new HashSet(); } - var evaluator = Recurrable.RecurrenceRules.First().GetService(typeof(IEvaluator)) as IEvaluator; - if (evaluator == null) + var periodsQuery = Recurrable.RecurrenceRules.SelectMany(rule => { - return new HashSet(); - } - var periods = evaluator.Evaluate(referenceDate, periodStart, periodEnd, includeReferenceDateInResults); + var ruleEvaluator = rule.GetService(typeof(IEvaluator)) as IEvaluator; + if (ruleEvaluator == null) + { + return Enumerable.Empty(); + } + return ruleEvaluator.Evaluate(referenceDate, periodStart, periodEnd, includeReferenceDateInResults); + }); + + var periods = new HashSet(periodsQuery); if (includeReferenceDateInResults) { @@ -81,13 +86,16 @@ protected HashSet EvaluateExRule(IDateTime referenceDate, DateTime perio return new HashSet(); } - var evaluator = Recurrable.ExceptionRules.First().GetService(typeof(IEvaluator)) as IEvaluator; - if (evaluator == null) + var exRuleEvaluatorQuery = Recurrable.ExceptionRules.SelectMany(exRule => { - return new HashSet(); - } + var exRuleEvaluator = exRule.GetService(typeof(IEvaluator)) as IEvaluator; + if (exRuleEvaluator == null) + { + return Enumerable.Empty(); + } + return exRuleEvaluator.Evaluate(referenceDate, periodStart, periodEnd, false); + }); - var exRuleEvaluatorQuery = Recurrable.ExceptionRules.SelectMany(exRule => evaluator.Evaluate(referenceDate, periodStart, periodEnd, false)); var exRuleExclusions = new HashSet(exRuleEvaluatorQuery); return exRuleExclusions; } @@ -152,4 +160,4 @@ private HashSet FindDateOverlaps(HashSet dates) return overlaps; } } -} \ No newline at end of file +} From c4a325c06a37e4301edf5fecc873889ef73f259c Mon Sep 17 00:00:00 2001 From: s3mic0lin Date: Sat, 28 Aug 2021 20:02:21 +0200 Subject: [PATCH 06/52] Fixed issue#491 --- .../Serialization/DataTypes/PeriodSerializer.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/Ical.Net/Serialization/DataTypes/PeriodSerializer.cs b/src/Ical.Net/Serialization/DataTypes/PeriodSerializer.cs index 2f5a5bd6b..24aabe281 100644 --- a/src/Ical.Net/Serialization/DataTypes/PeriodSerializer.cs +++ b/src/Ical.Net/Serialization/DataTypes/PeriodSerializer.cs @@ -39,8 +39,14 @@ public override string SerializeToString(object obj) // Serialize the start time sb.Append(dtSerializer.SerializeToString(p.StartTime)); - // Serialize the duration - if (!p.StartTime.HasTime) + // Serialize the duration or end time + if (p.EndTime.HasTime) + { + // serialize the end time + sb.Append("/"); + sb.Append(dtSerializer.SerializeToString(p.EndTime)); + } + else { // Serialize the duration sb.Append("/"); From b7f87ed892a9e18a131a2f0dfaf1e7bf5c614ca8 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 27 Mar 2023 21:28:38 +0200 Subject: [PATCH 07/52] Minor fix for relative uri's for dotnet 7 --- .../Serialization/DataTypes/AttachmentSerializer.cs | 5 +++-- .../Serialization/DataTypes/UriSerializer.cs | 12 ++++++------ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/Ical.Net/Serialization/DataTypes/AttachmentSerializer.cs b/src/Ical.Net/Serialization/DataTypes/AttachmentSerializer.cs index e0f2a7717..b91f626e1 100644 --- a/src/Ical.Net/Serialization/DataTypes/AttachmentSerializer.cs +++ b/src/Ical.Net/Serialization/DataTypes/AttachmentSerializer.cs @@ -10,7 +10,7 @@ public AttachmentSerializer() { } public AttachmentSerializer(SerializationContext ctx) : base(ctx) { } - public override Type TargetType => typeof (Attachment); + public override Type TargetType => typeof(Attachment); public override string SerializeToString(object obj) { @@ -72,7 +72,8 @@ public Attachment Deserialize(string attachment) // The default VALUE type for attachments is URI. So, let's // grab the URI by default. var uriValue = Decode(a, attachment); - a.Uri = new Uri(uriValue); + a.Uri = new Uri(uriValue, UriKind.RelativeOrAbsolute); + return a; } diff --git a/src/Ical.Net/Serialization/DataTypes/UriSerializer.cs b/src/Ical.Net/Serialization/DataTypes/UriSerializer.cs index 9d8a3e7be..4c15786c3 100644 --- a/src/Ical.Net/Serialization/DataTypes/UriSerializer.cs +++ b/src/Ical.Net/Serialization/DataTypes/UriSerializer.cs @@ -6,11 +6,11 @@ namespace Ical.Net.Serialization.DataTypes { public class UriSerializer : EncodableDataTypeSerializer { - public UriSerializer() {} + public UriSerializer() { } - public UriSerializer(SerializationContext ctx) : base(ctx) {} + public UriSerializer(SerializationContext ctx) : base(ctx) { } - public override Type TargetType => typeof (string); + public override Type TargetType => typeof(string); public override string SerializeToString(object obj) { @@ -19,7 +19,7 @@ public override string SerializeToString(object obj) return null; } - var uri = (Uri) obj; + var uri = (Uri)obj; if (SerializationContext.Peek() is ICalendarObject co) { @@ -52,10 +52,10 @@ public override object Deserialize(TextReader tr) try { - var uri = new Uri(value); + var uri = new Uri(value, UriKind.RelativeOrAbsolute); return uri; } - catch {} + catch { } return null; } } From 8e58ae3e9de6d8569e01571ebfa234fa1bbb1196 Mon Sep 17 00:00:00 2001 From: Erik Knudsen Date: Tue, 22 Aug 2023 13:26:05 +0200 Subject: [PATCH 08/52] fix 4/5 week dts timing bug Revert "fix 4/5 week dts timing bug" This reverts commit b7bbc896211b3f81011eac16d3440160d6dbaaf3. Fix issues with 5 week DST transition months --- src/Ical.Net.CoreUnitTests/VTimeZoneTest.cs | 15 +++++++++++++++ src/Ical.Net/CalendarComponents/VTimeZone.cs | 7 +++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/Ical.Net.CoreUnitTests/VTimeZoneTest.cs b/src/Ical.Net.CoreUnitTests/VTimeZoneTest.cs index 36f3eddcf..f5d58ddca 100644 --- a/src/Ical.Net.CoreUnitTests/VTimeZoneTest.cs +++ b/src/Ical.Net.CoreUnitTests/VTimeZoneTest.cs @@ -153,6 +153,21 @@ public void VTimeZoneAmericaLosAngelesShouldSerializeProperly() //Assert.IsTrue(serialized.Contains("RDATE:19600424T010000"), "RDATE:19600424T010000 was not serialized"); // NodaTime doesn't match with what tzurl has } + [Test, Category("VTimeZone")] + public void VTimeZoneEuropeOsloShouldSerializeProperly() + { + var iCal = CreateTestCalendar("Europe/Oslo"); + var serializer = new CalendarSerializer(); + var serialized = serializer.SerializeToString(iCal); + + Assert.IsTrue(serialized.Contains("TZID:Europe/Oslo"), "Time zone not found in serialization"); + Assert.IsTrue(serialized.Contains("BEGIN:STANDARD"), "The standard timezone info was not serialized"); + Assert.IsTrue(serialized.Contains("BEGIN:DAYLIGHT"), "The daylight timezone info was not serialized"); + Assert.IsTrue(serialized.Contains("BYDAY=-1SU;BYMONTH=3"), "BYDAY=-1SU;BYMONTH=3 was not serialized"); + Assert.IsTrue(serialized.Contains("BYDAY=-1SU;BYMONTH=10"), "BYDAY=-1SU;BYMONTH=10 was not serialized"); + + } + [Test, Category("VTimeZone")] public void VTimeZoneAmericaAnchorageShouldSerializeProperly() { diff --git a/src/Ical.Net/CalendarComponents/VTimeZone.cs b/src/Ical.Net/CalendarComponents/VTimeZone.cs index 08aff0d06..6e5118d12 100644 --- a/src/Ical.Net/CalendarComponents/VTimeZone.cs +++ b/src/Ical.Net/CalendarComponents/VTimeZone.cs @@ -254,9 +254,12 @@ public IntervalRecurrencePattern(ZoneInterval interval) var date = interval.IsoLocalStart.ToDateTimeUnspecified(); var weekday = date.DayOfWeek; - var num = DateUtil.WeekOfMonth(date); + var weekNumber = DateUtil.WeekOfMonth(date); - ByDay.Add(num != 5 ? new WeekDay(weekday, num) : new WeekDay(weekday, -1)); + if (weekNumber >= 4) + ByDay.Add(new WeekDay(weekday, -1)); // Almost certainly likely last X-day of month. Avoid issues with 4/5 sundays in different year/months. Ideally, use the nodazone tz database rule for this interval instead. + else + ByDay.Add(new WeekDay(weekday, weekNumber)); } } From dc8e7678bb734a8144a6083b80abb45f3327bb84 Mon Sep 17 00:00:00 2001 From: Andrew Barker <59669636+st-abarker@users.noreply.github.com> Date: Wed, 4 Oct 2023 18:22:26 -0700 Subject: [PATCH 09/52] Fix calculation of date a year previous when getting a VTimeZone from a DateTime and tzid. --- src/Ical.Net/CalendarComponents/VTimeZone.cs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/Ical.Net/CalendarComponents/VTimeZone.cs b/src/Ical.Net/CalendarComponents/VTimeZone.cs index 08aff0d06..075efbdd6 100644 --- a/src/Ical.Net/CalendarComponents/VTimeZone.cs +++ b/src/Ical.Net/CalendarComponents/VTimeZone.cs @@ -34,13 +34,24 @@ public static VTimeZone FromDateTimeZone(string tzId, DateTime earlistDateTimeTo var vTimeZone = new VTimeZone(tzId); var earliestYear = 1900; + var earliestMonth = earlistDateTimeToSupport.Month; + var earliestDay = earlistDateTimeToSupport.Day; // Support date/times for January 1st of the previous year by default. if (earlistDateTimeToSupport.Year > 1900) { earliestYear = earlistDateTimeToSupport.Year - 1; + // Since we went back a year, we can't still be in a leap-year + if (earliestMonth == 2 && earliestDay == 29) + earliestDay = 28; } - var earliest = Instant.FromUtc(earliestYear, earlistDateTimeToSupport.Month, - earlistDateTimeToSupport.Day, earlistDateTimeToSupport.Hour, earlistDateTimeToSupport.Minute); + else + { + // Going back to 1900, which wasn't a leap year, so we need to switch to Feb 20 + if (earliestMonth == 2 && earliestDay == 29) + earliestDay = 28; + } + var earliest = Instant.FromUtc(earliestYear, earliestMonth, earliestDay, + earlistDateTimeToSupport.Hour, earlistDateTimeToSupport.Minute); // Only include historical data if asked to do so. Otherwise, // use only the most recent adjustment rules available. @@ -368,4 +379,4 @@ public override int GetHashCode() } } } -} \ No newline at end of file +} From 5ef61bf14e2ab4e732c16e4407b09435328419db Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Fri, 19 Jan 2024 11:04:53 +0100 Subject: [PATCH 10/52] Updated nuget(s) and added .NET version 6 and 8 in tests --- src/Ical.Net.CoreUnitTests/Ical.Net.CoreUnitTests.csproj | 6 +++--- src/Ical.Net/Ical.Net.csproj | 2 +- src/PerfTests/PerfTests.csproj | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Ical.Net.CoreUnitTests/Ical.Net.CoreUnitTests.csproj b/src/Ical.Net.CoreUnitTests/Ical.Net.CoreUnitTests.csproj index 61f66127a..298bfce33 100644 --- a/src/Ical.Net.CoreUnitTests/Ical.Net.CoreUnitTests.csproj +++ b/src/Ical.Net.CoreUnitTests/Ical.Net.CoreUnitTests.csproj @@ -1,13 +1,13 @@  - netcoreapp3.1;net50 + net8.0;net6.0;net5.0;netcoreapp3.1 true ..\..\IcalNetStrongnameKey.snk - - + + diff --git a/src/Ical.Net/Ical.Net.csproj b/src/Ical.Net/Ical.Net.csproj index c726486a0..5581a14e1 100644 --- a/src/Ical.Net/Ical.Net.csproj +++ b/src/Ical.Net/Ical.Net.csproj @@ -22,7 +22,7 @@ bin\Release\Ical.Net.xml - + diff --git a/src/PerfTests/PerfTests.csproj b/src/PerfTests/PerfTests.csproj index 0f31f9dc1..105834791 100644 --- a/src/PerfTests/PerfTests.csproj +++ b/src/PerfTests/PerfTests.csproj @@ -1,12 +1,12 @@ + net8.0;net6.0;net5.0;netcoreapp3.1 Exe - netcoreapp3.1;net50 - + From 4f7e481f3fb3dc3fef399bf3147bb54143323823 Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Fri, 19 Jan 2024 11:06:05 +0100 Subject: [PATCH 11/52] Update(s) --- src/Ical.Net/CalendarComponents/Alarm.cs | 4 ++-- src/Ical.Net/CalendarComponents/CalendarEvent.cs | 6 +++--- src/Ical.Net/CalendarComponents/FreeBusy.cs | 8 ++++---- src/Ical.Net/CalendarComponents/IAlarmContainer.cs | 4 ++-- src/Ical.Net/CalendarComponents/ICalendarComponent.cs | 2 +- src/Ical.Net/CalendarComponents/IRecurrable.cs | 4 ++-- src/Ical.Net/CalendarComponents/IRecurringComponent.cs | 4 ++-- src/Ical.Net/CalendarComponents/IUniqueComponent.cs | 4 ++-- src/Ical.Net/CalendarComponents/Journal.cs | 4 ++-- src/Ical.Net/CalendarComponents/RecurringComponent.cs | 8 ++++---- src/Ical.Net/CalendarComponents/Todo.cs | 8 ++++---- src/Ical.Net/CalendarComponents/UniqueComponent.cs | 10 +++++----- src/Ical.Net/CalendarComponents/VTimeZone.cs | 8 ++++---- 13 files changed, 37 insertions(+), 37 deletions(-) diff --git a/src/Ical.Net/CalendarComponents/Alarm.cs b/src/Ical.Net/CalendarComponents/Alarm.cs index e82d04299..98435e7ff 100644 --- a/src/Ical.Net/CalendarComponents/Alarm.cs +++ b/src/Ical.Net/CalendarComponents/Alarm.cs @@ -1,13 +1,13 @@ +using Ical.Net.DataTypes; using System; using System.Collections.Generic; -using Ical.Net.DataTypes; namespace Ical.Net.CalendarComponents { /// /// A class that represents an RFC 2445 VALARM component. /// FIXME: move GetOccurrences() logic into an AlarmEvaluator. - /// + /// public class Alarm : CalendarComponent { //ToDo: Implement IEquatable diff --git a/src/Ical.Net/CalendarComponents/CalendarEvent.cs b/src/Ical.Net/CalendarComponents/CalendarEvent.cs index fbdb0d35c..674ffc300 100644 --- a/src/Ical.Net/CalendarComponents/CalendarEvent.cs +++ b/src/Ical.Net/CalendarComponents/CalendarEvent.cs @@ -1,10 +1,10 @@ +using Ical.Net.DataTypes; +using Ical.Net.Evaluation; +using Ical.Net.Utility; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; -using Ical.Net.DataTypes; -using Ical.Net.Evaluation; -using Ical.Net.Utility; namespace Ical.Net.CalendarComponents { diff --git a/src/Ical.Net/CalendarComponents/FreeBusy.cs b/src/Ical.Net/CalendarComponents/FreeBusy.cs index 6568793d5..5e01d5de2 100644 --- a/src/Ical.Net/CalendarComponents/FreeBusy.cs +++ b/src/Ical.Net/CalendarComponents/FreeBusy.cs @@ -1,8 +1,8 @@ -using System; +using Ical.Net.DataTypes; +using Ical.Net.Utility; +using System; using System.Collections.Generic; using System.Linq; -using Ical.Net.DataTypes; -using Ical.Net.Utility; namespace Ical.Net.CalendarComponents { @@ -14,7 +14,7 @@ public static FreeBusy Create(ICalendarObject obj, FreeBusy freeBusyRequest) { return null; } - var getOccurrences = (IGetOccurrencesTyped) obj; + var getOccurrences = (IGetOccurrencesTyped)obj; var occurrences = getOccurrences.GetOccurrences(freeBusyRequest.Start, freeBusyRequest.End); var contacts = new List(); var isFilteredByAttendees = false; diff --git a/src/Ical.Net/CalendarComponents/IAlarmContainer.cs b/src/Ical.Net/CalendarComponents/IAlarmContainer.cs index 258524a01..08b970ae3 100644 --- a/src/Ical.Net/CalendarComponents/IAlarmContainer.cs +++ b/src/Ical.Net/CalendarComponents/IAlarmContainer.cs @@ -1,5 +1,5 @@ -using System.Collections.Generic; -using Ical.Net.DataTypes; +using Ical.Net.DataTypes; +using System.Collections.Generic; namespace Ical.Net.CalendarComponents { diff --git a/src/Ical.Net/CalendarComponents/ICalendarComponent.cs b/src/Ical.Net/CalendarComponents/ICalendarComponent.cs index 7c125ba91..fa44f68c6 100644 --- a/src/Ical.Net/CalendarComponents/ICalendarComponent.cs +++ b/src/Ical.Net/CalendarComponents/ICalendarComponent.cs @@ -1,4 +1,4 @@ namespace Ical.Net.CalendarComponents { - public interface ICalendarComponent : ICalendarPropertyListContainer {} + public interface ICalendarComponent : ICalendarPropertyListContainer { } } \ No newline at end of file diff --git a/src/Ical.Net/CalendarComponents/IRecurrable.cs b/src/Ical.Net/CalendarComponents/IRecurrable.cs index cc45a9a4a..21d80a604 100644 --- a/src/Ical.Net/CalendarComponents/IRecurrable.cs +++ b/src/Ical.Net/CalendarComponents/IRecurrable.cs @@ -1,5 +1,5 @@ -using System.Collections.Generic; -using Ical.Net.DataTypes; +using Ical.Net.DataTypes; +using System.Collections.Generic; namespace Ical.Net.CalendarComponents { diff --git a/src/Ical.Net/CalendarComponents/IRecurringComponent.cs b/src/Ical.Net/CalendarComponents/IRecurringComponent.cs index 8f739be0a..b75c4e992 100644 --- a/src/Ical.Net/CalendarComponents/IRecurringComponent.cs +++ b/src/Ical.Net/CalendarComponents/IRecurringComponent.cs @@ -1,5 +1,5 @@ -using System.Collections.Generic; -using Ical.Net.DataTypes; +using Ical.Net.DataTypes; +using System.Collections.Generic; namespace Ical.Net.CalendarComponents { diff --git a/src/Ical.Net/CalendarComponents/IUniqueComponent.cs b/src/Ical.Net/CalendarComponents/IUniqueComponent.cs index ac0004ded..8a659917e 100644 --- a/src/Ical.Net/CalendarComponents/IUniqueComponent.cs +++ b/src/Ical.Net/CalendarComponents/IUniqueComponent.cs @@ -1,6 +1,6 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.Collections.Generic; -using Ical.Net.DataTypes; namespace Ical.Net.CalendarComponents { diff --git a/src/Ical.Net/CalendarComponents/Journal.cs b/src/Ical.Net/CalendarComponents/Journal.cs index 735d4f817..300eee450 100644 --- a/src/Ical.Net/CalendarComponents/Journal.cs +++ b/src/Ical.Net/CalendarComponents/Journal.cs @@ -21,9 +21,9 @@ public Journal() { Name = JournalStatus.Name; } - + protected override bool EvaluationIncludesReferenceDate => true; - + protected override void OnDeserializing(StreamingContext context) { base.OnDeserializing(context); diff --git a/src/Ical.Net/CalendarComponents/RecurringComponent.cs b/src/Ical.Net/CalendarComponents/RecurringComponent.cs index 218329264..acb985251 100644 --- a/src/Ical.Net/CalendarComponents/RecurringComponent.cs +++ b/src/Ical.Net/CalendarComponents/RecurringComponent.cs @@ -1,11 +1,11 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.Serialization; using Ical.Net.DataTypes; using Ical.Net.Evaluation; using Ical.Net.Proxies; using Ical.Net.Utility; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.Serialization; namespace Ical.Net.CalendarComponents { diff --git a/src/Ical.Net/CalendarComponents/Todo.cs b/src/Ical.Net/CalendarComponents/Todo.cs index 1d0973948..f5484bbb2 100644 --- a/src/Ical.Net/CalendarComponents/Todo.cs +++ b/src/Ical.Net/CalendarComponents/Todo.cs @@ -1,16 +1,16 @@ +using Ical.Net.DataTypes; +using Ical.Net.Evaluation; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Runtime.Serialization; -using Ical.Net.DataTypes; -using Ical.Net.Evaluation; namespace Ical.Net.CalendarComponents { /// /// A class that represents an RFC 5545 VTODO component. - /// + /// [DebuggerDisplay("{Summary} - {Status}")] public class Todo : RecurringComponent, IAlarmContainer { @@ -137,7 +137,7 @@ public Todo() /// /// Use this method to determine if a todo item has been completed. /// This takes into account recurrence items and the previous date - /// of completion, if any. + /// of completion, if any. /// /// This method evaluates the recurrence pattern for this TODO /// as necessary to ensure all relevant information is taken diff --git a/src/Ical.Net/CalendarComponents/UniqueComponent.cs b/src/Ical.Net/CalendarComponents/UniqueComponent.cs index 305681aec..c5784ed26 100644 --- a/src/Ical.Net/CalendarComponents/UniqueComponent.cs +++ b/src/Ical.Net/CalendarComponents/UniqueComponent.cs @@ -1,14 +1,14 @@ +using Ical.Net.DataTypes; +using Ical.Net.Utility; using System; using System.Collections.Generic; using System.Runtime.Serialization; -using Ical.Net.DataTypes; -using Ical.Net.Utility; namespace Ical.Net.CalendarComponents { /// /// Represents a unique component, a component with a unique UID, - /// which can be used to uniquely identify the component. + /// which can be used to uniquely identify the component. /// public class UniqueComponent : CalendarComponent, IUniqueComponent, IComparable { @@ -16,7 +16,7 @@ public class UniqueComponent : CalendarComponent, IUniqueComponent, IComparable< // This method will add the UID of a related component // to the Related_To property, along with any "RELTYPE" // parameter ("PARENT", "CHILD", "SIBLING", or other) - // TODO: Add RemoveRelationship() public method. + // TODO: Add RemoveRelationship() public method. public UniqueComponent() { @@ -96,7 +96,7 @@ public override bool Equals(object obj) { if (obj is RecurringComponent && obj != this) { - var r = (RecurringComponent) obj; + var r = (RecurringComponent)obj; if (Uid != null) { return Uid.Equals(r.Uid); diff --git a/src/Ical.Net/CalendarComponents/VTimeZone.cs b/src/Ical.Net/CalendarComponents/VTimeZone.cs index 6e5118d12..fca425fa5 100644 --- a/src/Ical.Net/CalendarComponents/VTimeZone.cs +++ b/src/Ical.Net/CalendarComponents/VTimeZone.cs @@ -1,11 +1,11 @@ -using System; -using System.Collections.Generic; -using System.Linq; using Ical.Net.DataTypes; using Ical.Net.Proxies; using Ical.Net.Utility; using NodaTime; using NodaTime.TimeZones; +using System; +using System.Collections.Generic; +using System.Linq; namespace Ical.Net.CalendarComponents { @@ -268,7 +268,7 @@ public VTimeZone() Name = Components.Timezone; } - + public VTimeZone(string tzId) : this() { if (string.IsNullOrWhiteSpace(tzId)) From 7ab9ddfca13682a790e39b89ebc26bc113d7843c Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Fri, 19 Jan 2024 11:11:14 +0100 Subject: [PATCH 12/52] Update(s) --- src/Ical.Net.CoreUnitTests/Ical.Net.CoreUnitTests.csproj | 2 +- src/PerfTests/PerfTests.csproj | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Ical.Net.CoreUnitTests/Ical.Net.CoreUnitTests.csproj b/src/Ical.Net.CoreUnitTests/Ical.Net.CoreUnitTests.csproj index 298bfce33..8c9e3af11 100644 --- a/src/Ical.Net.CoreUnitTests/Ical.Net.CoreUnitTests.csproj +++ b/src/Ical.Net.CoreUnitTests/Ical.Net.CoreUnitTests.csproj @@ -1,6 +1,6 @@  - net8.0;net6.0;net5.0;netcoreapp3.1 + net8.0;net6.0;net5.0;netcoreapp3.1;net48 true ..\..\IcalNetStrongnameKey.snk diff --git a/src/PerfTests/PerfTests.csproj b/src/PerfTests/PerfTests.csproj index 105834791..ca9e4a02c 100644 --- a/src/PerfTests/PerfTests.csproj +++ b/src/PerfTests/PerfTests.csproj @@ -1,7 +1,7 @@ - + - net8.0;net6.0;net5.0;netcoreapp3.1 + net8.0;net6.0;net5.0;netcoreapp3.1;net48 Exe From 500e44e9923ab3953d6b21de9cac03e444940179 Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Fri, 19 Jan 2024 12:15:43 +0100 Subject: [PATCH 13/52] Update(s) --- .editorconfig | 10 ++ .gitattributes | 63 +------- .gitignore | 142 +++++++++++++--- ...n-001-2017-11-25-04-26-12-report-github.md | 10 -- ...ests.CalDateTimePerfTests-report-github.md | 18 --- ...fTests.OccurencePerfTests-report-github.md | 18 --- ...ts.SerializationPerfTests-report-github.md | 14 -- ...PerfTests.ThroughputTests-report-github.md | 14 -- ...ting.CalDateTimePerfTests-report-github.md | 17 -- ...esting.OccurencePerfTests-report-github.md | 17 -- ...ng.SerializationPerfTests-report-github.md | 13 -- .../ApplicationWorkflows.cs | 9 +- .../CalDateTimePerfTests.cs | 6 +- .../Ical.Net.Benchmarks.csproj | 0 .../OccurencePerfTests.cs | 11 +- .../Runner.cs | 9 +- .../SerializationPerfTests.cs | 11 +- .../ThroughputTests.cs | 7 +- .../AlarmTest.cs | 6 +- .../AttendeeTest.cs | 8 +- .../CalDateTimeTests.cs | 8 +- .../CalendarEventTest.cs | 8 +- .../CalendarPropertiesTest.cs | 8 +- .../Calendars/Alarm/ALARM1.ics | 0 .../Calendars/Alarm/ALARM2.ics | 0 .../Calendars/Alarm/ALARM3.ics | 0 .../Calendars/Alarm/ALARM4.ics | 0 .../Calendars/Alarm/ALARM5.ics | 0 .../Calendars/Alarm/ALARM6.ics | 0 .../Calendars/Alarm/ALARM7.ics | 0 .../Calendars/Journal/JOURNAL1.ics | 0 .../Calendars/Journal/JOURNAL2.ics | 0 .../Calendars/Recurrence/Bug1741093.ics | 0 .../Calendars/Recurrence/Bug2912657.ics | Bin .../Calendars/Recurrence/Bug2916581.ics | 0 .../Calendars/Recurrence/Bug2959692.ics | 0 .../Calendars/Recurrence/Bug2966236.ics | 0 .../Calendars/Recurrence/Bug3007244.ics | 0 .../Calendars/Recurrence/ByMonth1.ics | 0 .../Calendars/Recurrence/ByMonth2.ics | 0 .../Calendars/Recurrence/ByMonthDay1.ics | 0 .../Calendars/Recurrence/Daily1.ics | 0 .../Calendars/Recurrence/DailyByDay1.ics | 0 .../Recurrence/DailyByHourMinute1.ics | 0 .../Calendars/Recurrence/DailyCount1.ics | 0 .../Calendars/Recurrence/DailyCount2.ics | 0 .../Calendars/Recurrence/DailyInterval1.ics | 0 .../Calendars/Recurrence/DailyInterval2.ics | 0 .../Calendars/Recurrence/DailyUntil1.ics | 0 .../Calendars/Recurrence/Empty1.ics | 0 .../Calendars/Recurrence/Hourly1.ics | 0 .../Calendars/Recurrence/HourlyInterval1.ics | 0 .../Calendars/Recurrence/HourlyInterval2.ics | 0 .../Calendars/Recurrence/HourlyUntil1.ics | 0 .../Calendars/Recurrence/Minutely1.ics | 0 .../Calendars/Recurrence/MinutelyByHour1.ics | 0 .../Calendars/Recurrence/MinutelyCount1.ics | 0 .../Calendars/Recurrence/MinutelyCount2.ics | 0 .../Calendars/Recurrence/MinutelyCount3.ics | 0 .../Calendars/Recurrence/MinutelyCount4.ics | 0 .../Recurrence/MinutelyInterval1.ics | 0 .../Calendars/Recurrence/Monthly1.ics | 0 .../Calendars/Recurrence/MonthlyByDay1.ics | 0 .../Recurrence/MonthlyByMonthDay1.ics | 0 .../Recurrence/MonthlyByMonthDay2.ics | 0 .../Calendars/Recurrence/MonthlyBySetPos1.ics | 0 .../Calendars/Recurrence/MonthlyBySetPos2.ics | 0 .../Recurrence/MonthlyCountByDay1.ics | 0 .../Recurrence/MonthlyCountByDay2.ics | 0 .../Recurrence/MonthlyCountByDay3.ics | 0 .../Recurrence/MonthlyCountByMonthDay1.ics | 0 .../Recurrence/MonthlyCountByMonthDay2.ics | 0 .../Recurrence/MonthlyCountByMonthDay3.ics | 0 .../Calendars/Recurrence/MonthlyInterval1.ics | 0 .../Recurrence/MonthlyUntilByDay1.ics | 0 .../Calendars/Recurrence/Secondly1.ics | 0 .../Calendars/Recurrence/WeeklyCount1.ics | 0 .../Calendars/Recurrence/WeeklyCountWkst1.ics | 0 .../Calendars/Recurrence/WeeklyCountWkst2.ics | 0 .../Calendars/Recurrence/WeeklyCountWkst3.ics | 0 .../Calendars/Recurrence/WeeklyCountWkst4.ics | 0 .../Calendars/Recurrence/WeeklyInterval1.ics | 0 .../Calendars/Recurrence/WeeklyUntil1.ics | 0 .../Calendars/Recurrence/WeeklyUntilWkst1.ics | 0 .../Calendars/Recurrence/WeeklyUntilWkst2.ics | 0 .../Recurrence/WeeklyWeekStartsLastYear.ics | 0 .../Calendars/Recurrence/WeeklyWkst1.ics | 0 .../Calendars/Recurrence/Yearly1.ics | 0 .../Calendars/Recurrence/YearlyByDay1.ics | 0 .../Calendars/Recurrence/YearlyByMonth1.ics | 0 .../Calendars/Recurrence/YearlyByMonth2.ics | 0 .../Calendars/Recurrence/YearlyByMonth3.ics | 0 .../Recurrence/YearlyByMonthDay1.ics | 0 .../Calendars/Recurrence/YearlyBySetPos1.ics | 0 .../Calendars/Recurrence/YearlyByWeekNo1.ics | 0 .../Calendars/Recurrence/YearlyByWeekNo2.ics | 0 .../Calendars/Recurrence/YearlyByWeekNo3.ics | 0 .../Calendars/Recurrence/YearlyByWeekNo4.ics | 0 .../Calendars/Recurrence/YearlyByWeekNo5.ics | 0 .../Calendars/Recurrence/YearlyComplex1.ics | 0 .../Recurrence/YearlyCountByMonth1.ics | 0 .../Recurrence/YearlyCountByYearDay1.ics | 0 .../Calendars/Recurrence/YearlyInterval1.ics | 0 .../Calendars/Serialization/Attachment3.ics | 0 .../Calendars/Serialization/Attachment4.ics | 0 .../Calendars/Serialization/Attendee1.ics | 0 .../Calendars/Serialization/Attendee2.ics | 0 .../Calendars/Serialization/Bug2033495.ics | 0 .../Calendars/Serialization/Bug2148092.ics | 0 .../Calendars/Serialization/Bug2938007.ics | 0 .../Calendars/Serialization/Calendar1.ics | 0 .../Serialization/CalendarParameters2.ics | 0 .../Serialization/CaseInsensitive1.ics | 0 .../Serialization/CaseInsensitive2.ics | 0 .../Serialization/CaseInsensitive3.ics | 0 .../Serialization/CaseInsensitive4.ics | 0 .../Calendars/Serialization/Categories1.ics | 0 .../Calendars/Serialization/DateTime1.ics | 0 .../Calendars/Serialization/DateTime2.ics | 0 .../Calendars/Serialization/Duration1.ics | 0 .../Calendars/Serialization/EmptyLines1.ics | 0 .../Calendars/Serialization/EmptyLines2.ics | 0 .../Calendars/Serialization/EmptyLines3.ics | 0 .../Calendars/Serialization/EmptyLines4.ics | 0 .../Calendars/Serialization/Encoding1.ics | 0 .../Calendars/Serialization/Encoding2.ics | 0 .../Calendars/Serialization/Encoding3.ics | 0 .../Calendars/Serialization/Event1.ics | 0 .../Calendars/Serialization/Event2.ics | 0 .../Calendars/Serialization/Event3.ics | 0 .../Calendars/Serialization/Event4.ics | 0 .../Serialization/GeographicLocation1.ics | 0 .../Calendars/Serialization/Google1.ics | 0 .../Calendars/Serialization/Language1.ics | 0 .../Calendars/Serialization/Language2.ics | 0 .../Calendars/Serialization/Language3.ics | 0 .../Calendars/Serialization/Language4.ics | 0 .../Serialization/Outlook2007LineFolds.ics | 0 .../Calendars/Serialization/PARSE17.ics | 0 .../Calendars/Serialization/Parameter1.ics | 0 .../Calendars/Serialization/Parameter2.ics | 0 .../Calendars/Serialization/Parse1.ics | 0 .../Calendars/Serialization/ProdID1.ics | 0 .../Calendars/Serialization/ProdID2.ics | 0 .../Calendars/Serialization/Property1.ics | 0 .../Serialization/RecurrenceDates1.ics | 0 .../Serialization/RequestStatus1.ics | 0 .../Calendars/Serialization/TimeZone1.ics | 0 .../Calendars/Serialization/TimeZone2.ics | 0 .../Calendars/Serialization/TimeZone3.ics | 0 .../Calendars/Serialization/Todo1.ics | 0 .../Calendars/Serialization/Todo2.ics | 0 .../Calendars/Serialization/Todo3.ics | 0 .../Calendars/Serialization/Todo4.ics | 0 .../Calendars/Serialization/Todo5.ics | 0 .../Calendars/Serialization/Todo6.ics | 0 .../Calendars/Serialization/Todo7.ics | 0 .../Calendars/Serialization/Transparency1.ics | 0 .../Calendars/Serialization/Transparency2.ics | 0 .../Calendars/Serialization/Trigger1.ics | 0 .../Calendars/Serialization/USHolidays.ics | 0 .../Calendars/Serialization/XProperty1.ics | 0 .../Calendars/Serialization/XProperty2.ics | 0 .../Calendars/Todo/Todo1.ics | 0 .../Calendars/Todo/Todo2.ics | 0 .../Calendars/Todo/Todo3.ics | 0 .../Calendars/Todo/Todo4.ics | 0 .../Calendars/Todo/Todo5.ics | 0 .../Calendars/Todo/Todo6.ics | 0 .../Calendars/Todo/Todo7.ics | 0 .../Calendars/Todo/Todo8.ics | 0 .../Calendars/Todo/Todo9.ics | 0 .../CollectionHelpersTests.cs | 8 +- .../ComponentTest.cs | 4 +- .../ConcurrentDeserializationTests.cs | 6 +- .../CopyTest.cs | 8 +- .../DataTypeTest.cs | 2 +- .../DateTimeSerializerTests.cs | 4 +- .../DeserializationTests.cs | 12 +- .../DocumentationExamples.cs | 8 +- .../EqualityAndHashingTests.cs | 22 +-- .../FreeBusyTest.cs | 2 +- .../GetOccurrenceTests.cs | 10 +- .../Ical.Net.Tests.csproj | 2 - .../IcsFiles.cs | 2 +- .../JournalTest.cs | 4 +- .../ProgramTest.cs | 6 +- .../RecurrenceTests.cs | 16 +- .../SerializationHelpers.cs | 2 +- .../SerializationTests.cs | 18 +-- .../SimpleDeserializationTests.cs | 14 +- .../SymmetricSerializationTests.cs | 14 +- .../TextUtilTests.cs | 6 +- .../TodoTest.cs | 6 +- .../VTimeZoneTest.cs | 8 +- src/Ical.Net.sln => Ical.Net.sln | 19 ++- {src/Ical.Net => Ical.Net}/Calendar.cs | 0 .../CalendarCollection.cs | 0 .../CalendarComponents/Alarm.cs | 0 .../CalendarComponents/CalendarComponent.cs | 0 .../CalendarComponents/CalendarEvent.cs | 0 .../CalendarComponents/FreeBusy.cs | 0 .../CalendarComponents/IAlarmContainer.cs | 0 .../CalendarComponents/ICalendarComponent.cs | 0 .../CalendarComponents/IRecurrable.cs | 0 .../CalendarComponents/IRecurringComponent.cs | 0 .../CalendarComponents/IUniqueComponent.cs | 0 .../CalendarComponents/Journal.cs | 0 .../CalendarComponents/RecurringComponent.cs | 0 .../CalendarComponents/Todo.cs | 0 .../CalendarComponents/UniqueComponent.cs | 0 .../CalendarComponents/VTimeZone.cs | 0 .../CalendarExtensions.cs | 0 {src/Ical.Net => Ical.Net}/CalendarObject.cs | 0 .../CalendarObjectBase.cs | 0 .../CalendarObjectExtensions.cs | 0 .../CalendarObjectList.cs | 0 .../CalendarParameter.cs | 0 .../Ical.Net => Ical.Net}/CalendarProperty.cs | 0 .../CalendarPropertyList.cs | 0 .../Collections/GroupedList.cs | 0 .../Collections/GroupedListEnumerator.cs | 0 .../Collections/GroupedValueList.cs | 0 .../Collections/IGroupedCollection.cs | 0 .../Collections/IGroupedList.cs | 0 .../Collections/IGroupedObject.cs | 0 .../Collections/IMultiLinkedList.cs | 0 .../Collections/Interfaces/IValueObject.cs | 0 .../Collections/MultiLinkedList.cs | 0 .../Collections/ObjectEventArgs.cs | 0 .../Proxies/GroupedCollectionProxy.cs | 0 .../Proxies/GroupedValueListProxy.cs | 0 {src/Ical.Net => Ical.Net}/Constants.cs | 0 .../DataTypes/AlarmOccurrence.cs | 0 .../DataTypes/Attachment.cs | 0 .../DataTypes/Attendee.cs | 0 .../DataTypes/CalDateTime.cs | 0 .../DataTypes/CalendarDataType.cs | 0 .../DataTypes/EncodableDataType.cs | 0 .../DataTypes/FreeBusyEntry.cs | 0 .../DataTypes/GeographicLocation.cs | 0 .../DataTypes/ICalendarDataType.cs | 0 .../ICalendarParameterCollectionContainer.cs | 0 .../DataTypes/IDateTime.cs | 0 .../DataTypes/IEncodableDataType.cs | 0 .../DataTypes/Occurrence.cs | 0 .../DataTypes/Organizer.cs | 0 .../Ical.Net => Ical.Net}/DataTypes/Period.cs | 0 .../DataTypes/PeriodList.cs | 0 .../DataTypes/RecurrencePattern.cs | 0 .../DataTypes/RequestStatus.cs | 0 .../DataTypes/StatusCode.cs | 0 .../DataTypes/Trigger.cs | 0 .../DataTypes/UTCOffset.cs | 0 .../DataTypes/WeekDay.cs | 0 .../Evaluation/Evaluator.cs | 0 .../Evaluation/EventEvaluator.cs | 0 .../Evaluation/IEvaluator.cs | 0 .../Evaluation/PeriodListEvaluator.cs | 0 .../Evaluation/RecurrencePatternEvaluator.cs | 0 .../Evaluation/RecurrenceUtil.cs | 0 .../Evaluation/RecurringEvaluator.cs | 0 .../Evaluation/TimeZoneEvaluator.cs | 0 .../Evaluation/TimeZoneInfoEvaluator.cs | 0 .../Evaluation/TodoEvaluator.cs | 0 {src/Ical.Net => Ical.Net}/ICalendarObject.cs | 0 .../ICalendarObjectList.cs | 0 .../ICalendarProperty.cs | 0 .../ICalendarPropertyListContainer.cs | 0 {src/Ical.Net => Ical.Net}/ICopyable.cs | 0 {src/Ical.Net => Ical.Net}/IGetFreeBusy.cs | 0 {src/Ical.Net => Ical.Net}/IGetOccurrences.cs | 0 {src/Ical.Net => Ical.Net}/ILoadable.cs | 0 {src/Ical.Net => Ical.Net}/IMergeable.cs | 0 .../IParameterCollection.cs | 0 .../Ical.Net => Ical.Net}/IServiceProvider.cs | 0 {src/Ical.Net => Ical.Net}/Ical.Net.csproj | 13 +- {src => Ical.Net}/Ical.Net.nuspec | 0 {src/Ical.Net => Ical.Net}/ParameterList.cs | 0 Ical.Net/Properties/AssemblyInfo.cs | 3 + .../Proxies/CalendarObjectListProxy.cs | 0 .../Proxies/IUniqueComponentList.cs | 0 .../Proxies/ParameterCollectionProxy.cs | 0 .../Proxies/UniqueComponentListProxy.cs | 0 .../Serialization/CalendarComponentFactory.cs | 0 .../Serialization/CalendarSerializer.cs | 0 .../Serialization/ComponentSerializer.cs | 0 .../Serialization/DataMapSerializer.cs | 0 .../Serialization/DataTypeMapper.cs | 0 .../DataTypeSerializerFactory.cs | 0 .../DataTypes/AttachmentSerializer.cs | 0 .../DataTypes/AttendeeSerializer.cs | 0 .../DataTypes/DataTypeSerializer.cs | 0 .../DataTypes/DateTimeSerializer.cs | 0 .../DataTypes/EncodableDataTypeSerializer.cs | 0 .../Serialization/DataTypes/EnumSerializer.cs | 0 .../DataTypes/FreeBusyEntrySerializer.cs | 0 .../DataTypes/GeographicLocationSerializer.cs | 0 .../DataTypes/IntegerSerializer.cs | 0 .../DataTypes/OrganizerSerializer.cs | 0 .../DataTypes/PeriodListSerializer.cs | 0 .../DataTypes/PeriodSerializer.cs | 0 .../DataTypes/RecurrencePatternSerializer.cs | 0 .../DataTypes/RequestStatusSerializer.cs | 0 .../DataTypes/StatusCodeSerializer.cs | 0 .../DataTypes/StringSerializer.cs | 0 .../DataTypes/TimeSpanSerializer.cs | 0 .../DataTypes/TriggerSerializer.cs | 0 .../Serialization/DataTypes/UriSerializer.cs | 0 .../DataTypes/UtcOffsetSerializer.cs | 0 .../DataTypes/WeekDaySerializer.cs | 0 .../Serialization/EncodingProvider.cs | 0 .../Serialization/EncodingStack.cs | 0 .../Serialization/EventSerializer.cs | 0 .../Serialization/GenericListSerializer.cs | 0 .../Serialization/IEncodingProvider.cs | 0 .../Serialization/ISerializer.cs | 0 .../Serialization/ISerializerFactory.cs | 0 .../Serialization/IStringSerializer.cs | 0 .../Serialization/ParameterSerializer.cs | 0 .../Serialization/PropertySerializer.cs | 0 .../Serialization/SerializationContext.cs | 0 .../Serialization/SerializationUtil.cs | 0 .../Serialization/SerializerBase.cs | 0 .../Serialization/SerializerFactory.cs | 0 .../Serialization/SimpleDeserializer.cs | 0 {src/Ical.Net => Ical.Net}/ServiceProvider.cs | 0 .../Utility/CollectionHelpers.cs | 0 .../Ical.Net => Ical.Net}/Utility/DateUtil.cs | 0 .../Ical.Net => Ical.Net}/Utility/TextUtil.cs | 0 {src/Ical.Net => Ical.Net}/VTimeZoneInfo.cs | 0 IcalNetStrongnameKey.snk | Bin 596 -> 0 bytes NugetTester/FrameworkConsole/App.config | 6 - .../FrameworkConsole/FrameworkConsole.cs | 72 --------- .../FrameworkConsole/FrameworkConsole.csproj | 72 --------- .../Properties/AssemblyInfo.cs | 35 ---- NugetTester/FrameworkConsole/packages.config | 8 - NugetTester/NetCoreConsole/CoreConsole.cs | 71 -------- .../NetCoreConsole/NetCoreConsole.csproj | 12 -- NugetTester/NugetTester.sln | 43 ----- NugetTester/NugetTester/App.config | 14 -- NugetTester/NugetTester/NugetTester.csproj | 67 -------- NugetTester/NugetTester/Program.cs | 72 --------- .../NugetTester/Properties/AssemblyInfo.cs | 36 ----- NugetTester/NugetTester/packages.config | 7 - assets/icon.png | Bin 0 -> 4666 bytes logo.png => assets/logo.png | Bin .../nuget_logo_150px.png | Bin readme.md | 11 +- release-notes.md | 9 +- src/Ical.Net/Properties/AssemblyInfo.cs | 4 - tooling/ical-net-rsharp.DotSettings.txt | 152 ------------------ tooling/ical-net.vssettings | 134 --------------- 353 files changed, 307 insertions(+), 1164 deletions(-) create mode 100644 .editorconfig delete mode 100644 BenchmarkDotNet.Artifacts/results/BenchmarkRun-001-2017-11-25-04-26-12-report-github.md delete mode 100644 BenchmarkDotNet.Artifacts/results/PerfTests.CalDateTimePerfTests-report-github.md delete mode 100644 BenchmarkDotNet.Artifacts/results/PerfTests.OccurencePerfTests-report-github.md delete mode 100644 BenchmarkDotNet.Artifacts/results/PerfTests.SerializationPerfTests-report-github.md delete mode 100644 BenchmarkDotNet.Artifacts/results/PerfTests.ThroughputTests-report-github.md delete mode 100644 BenchmarkDotNet.Artifacts/v2/results/PerfTesting.CalDateTimePerfTests-report-github.md delete mode 100644 BenchmarkDotNet.Artifacts/v2/results/PerfTesting.OccurencePerfTests-report-github.md delete mode 100644 BenchmarkDotNet.Artifacts/v2/results/PerfTesting.SerializationPerfTests-report-github.md rename {src/PerfTests => Ical.Net.Benchmarks}/ApplicationWorkflows.cs (96%) rename {src/PerfTests => Ical.Net.Benchmarks}/CalDateTimePerfTests.cs (90%) rename src/PerfTests/PerfTests.csproj => Ical.Net.Benchmarks/Ical.Net.Benchmarks.csproj (100%) rename {src/PerfTests => Ical.Net.Benchmarks}/OccurencePerfTests.cs (98%) rename {src/PerfTests => Ical.Net.Benchmarks}/Runner.cs (81%) rename {src/PerfTests => Ical.Net.Benchmarks}/SerializationPerfTests.cs (97%) rename {src/PerfTests => Ical.Net.Benchmarks}/ThroughputTests.cs (98%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/AlarmTest.cs (99%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/AttendeeTest.cs (98%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/CalDateTimeTests.cs (98%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/CalendarEventTest.cs (99%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/CalendarPropertiesTest.cs (96%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Alarm/ALARM1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Alarm/ALARM2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Alarm/ALARM3.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Alarm/ALARM4.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Alarm/ALARM5.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Alarm/ALARM6.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Alarm/ALARM7.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Journal/JOURNAL1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Journal/JOURNAL2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/Bug1741093.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/Bug2912657.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/Bug2916581.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/Bug2959692.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/Bug2966236.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/Bug3007244.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/ByMonth1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/ByMonth2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/ByMonthDay1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/Daily1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/DailyByDay1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/DailyByHourMinute1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/DailyCount1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/DailyCount2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/DailyInterval1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/DailyInterval2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/DailyUntil1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/Empty1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/Hourly1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/HourlyInterval1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/HourlyInterval2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/HourlyUntil1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/Minutely1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/MinutelyByHour1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/MinutelyCount1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/MinutelyCount2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/MinutelyCount3.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/MinutelyCount4.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/MinutelyInterval1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/Monthly1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/MonthlyByDay1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/MonthlyByMonthDay1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/MonthlyByMonthDay2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/MonthlyBySetPos1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/MonthlyBySetPos2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/MonthlyCountByDay1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/MonthlyCountByDay2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/MonthlyCountByDay3.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/MonthlyCountByMonthDay1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/MonthlyCountByMonthDay2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/MonthlyCountByMonthDay3.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/MonthlyInterval1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/MonthlyUntilByDay1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/Secondly1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/WeeklyCount1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/WeeklyCountWkst1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/WeeklyCountWkst2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/WeeklyCountWkst3.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/WeeklyCountWkst4.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/WeeklyInterval1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/WeeklyUntil1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/WeeklyUntilWkst1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/WeeklyUntilWkst2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/WeeklyWeekStartsLastYear.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/WeeklyWkst1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/Yearly1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/YearlyByDay1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/YearlyByMonth1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/YearlyByMonth2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/YearlyByMonth3.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/YearlyByMonthDay1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/YearlyBySetPos1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/YearlyByWeekNo1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/YearlyByWeekNo2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/YearlyByWeekNo3.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/YearlyByWeekNo4.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/YearlyByWeekNo5.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/YearlyComplex1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/YearlyCountByMonth1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/YearlyCountByYearDay1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Recurrence/YearlyInterval1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Attachment3.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Attachment4.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Attendee1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Attendee2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Bug2033495.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Bug2148092.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Bug2938007.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Calendar1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/CalendarParameters2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/CaseInsensitive1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/CaseInsensitive2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/CaseInsensitive3.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/CaseInsensitive4.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Categories1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/DateTime1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/DateTime2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Duration1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/EmptyLines1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/EmptyLines2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/EmptyLines3.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/EmptyLines4.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Encoding1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Encoding2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Encoding3.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Event1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Event2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Event3.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Event4.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/GeographicLocation1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Google1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Language1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Language2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Language3.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Language4.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Outlook2007LineFolds.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/PARSE17.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Parameter1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Parameter2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Parse1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/ProdID1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/ProdID2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Property1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/RecurrenceDates1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/RequestStatus1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/TimeZone1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/TimeZone2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/TimeZone3.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Todo1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Todo2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Todo3.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Todo4.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Todo5.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Todo6.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Todo7.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Transparency1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Transparency2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/Trigger1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/USHolidays.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/XProperty1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Serialization/XProperty2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Todo/Todo1.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Todo/Todo2.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Todo/Todo3.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Todo/Todo4.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Todo/Todo5.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Todo/Todo6.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Todo/Todo7.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Todo/Todo8.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/Calendars/Todo/Todo9.ics (100%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/CollectionHelpersTests.cs (93%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/ComponentTest.cs (97%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/ConcurrentDeserializationTests.cs (88%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/CopyTest.cs (99%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/DataTypeTest.cs (94%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/DateTimeSerializerTests.cs (95%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/DeserializationTests.cs (99%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/DocumentationExamples.cs (98%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/EqualityAndHashingTests.cs (99%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/FreeBusyTest.cs (97%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/GetOccurrenceTests.cs (98%) rename src/Ical.Net.CoreUnitTests/Ical.Net.CoreUnitTests.csproj => Ical.Net.Tests/Ical.Net.Tests.csproj (84%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/IcsFiles.cs (99%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/JournalTest.cs (98%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/ProgramTest.cs (99%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/RecurrenceTests.cs (99%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/SerializationHelpers.cs (92%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/SerializationTests.cs (99%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/SimpleDeserializationTests.cs (99%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/SymmetricSerializationTests.cs (99%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/TextUtilTests.cs (96%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/TodoTest.cs (99%) rename {src/Ical.Net.CoreUnitTests => Ical.Net.Tests}/VTimeZoneTest.cs (99%) rename src/Ical.Net.sln => Ical.Net.sln (82%) rename {src/Ical.Net => Ical.Net}/Calendar.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarCollection.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarComponents/Alarm.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarComponents/CalendarComponent.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarComponents/CalendarEvent.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarComponents/FreeBusy.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarComponents/IAlarmContainer.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarComponents/ICalendarComponent.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarComponents/IRecurrable.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarComponents/IRecurringComponent.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarComponents/IUniqueComponent.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarComponents/Journal.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarComponents/RecurringComponent.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarComponents/Todo.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarComponents/UniqueComponent.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarComponents/VTimeZone.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarExtensions.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarObject.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarObjectBase.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarObjectExtensions.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarObjectList.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarParameter.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarProperty.cs (100%) rename {src/Ical.Net => Ical.Net}/CalendarPropertyList.cs (100%) rename {src/Ical.Net => Ical.Net}/Collections/GroupedList.cs (100%) rename {src/Ical.Net => Ical.Net}/Collections/GroupedListEnumerator.cs (100%) rename {src/Ical.Net => Ical.Net}/Collections/GroupedValueList.cs (100%) rename {src/Ical.Net => Ical.Net}/Collections/IGroupedCollection.cs (100%) rename {src/Ical.Net => Ical.Net}/Collections/IGroupedList.cs (100%) rename {src/Ical.Net => Ical.Net}/Collections/IGroupedObject.cs (100%) rename {src/Ical.Net => Ical.Net}/Collections/IMultiLinkedList.cs (100%) rename {src/Ical.Net => Ical.Net}/Collections/Interfaces/IValueObject.cs (100%) rename {src/Ical.Net => Ical.Net}/Collections/MultiLinkedList.cs (100%) rename {src/Ical.Net => Ical.Net}/Collections/ObjectEventArgs.cs (100%) rename {src/Ical.Net => Ical.Net}/Collections/Proxies/GroupedCollectionProxy.cs (100%) rename {src/Ical.Net => Ical.Net}/Collections/Proxies/GroupedValueListProxy.cs (100%) rename {src/Ical.Net => Ical.Net}/Constants.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/AlarmOccurrence.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/Attachment.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/Attendee.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/CalDateTime.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/CalendarDataType.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/EncodableDataType.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/FreeBusyEntry.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/GeographicLocation.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/ICalendarDataType.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/ICalendarParameterCollectionContainer.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/IDateTime.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/IEncodableDataType.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/Occurrence.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/Organizer.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/Period.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/PeriodList.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/RecurrencePattern.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/RequestStatus.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/StatusCode.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/Trigger.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/UTCOffset.cs (100%) rename {src/Ical.Net => Ical.Net}/DataTypes/WeekDay.cs (100%) rename {src/Ical.Net => Ical.Net}/Evaluation/Evaluator.cs (100%) rename {src/Ical.Net => Ical.Net}/Evaluation/EventEvaluator.cs (100%) rename {src/Ical.Net => Ical.Net}/Evaluation/IEvaluator.cs (100%) rename {src/Ical.Net => Ical.Net}/Evaluation/PeriodListEvaluator.cs (100%) rename {src/Ical.Net => Ical.Net}/Evaluation/RecurrencePatternEvaluator.cs (100%) rename {src/Ical.Net => Ical.Net}/Evaluation/RecurrenceUtil.cs (100%) rename {src/Ical.Net => Ical.Net}/Evaluation/RecurringEvaluator.cs (100%) rename {src/Ical.Net => Ical.Net}/Evaluation/TimeZoneEvaluator.cs (100%) rename {src/Ical.Net => Ical.Net}/Evaluation/TimeZoneInfoEvaluator.cs (100%) rename {src/Ical.Net => Ical.Net}/Evaluation/TodoEvaluator.cs (100%) rename {src/Ical.Net => Ical.Net}/ICalendarObject.cs (100%) rename {src/Ical.Net => Ical.Net}/ICalendarObjectList.cs (100%) rename {src/Ical.Net => Ical.Net}/ICalendarProperty.cs (100%) rename {src/Ical.Net => Ical.Net}/ICalendarPropertyListContainer.cs (100%) rename {src/Ical.Net => Ical.Net}/ICopyable.cs (100%) rename {src/Ical.Net => Ical.Net}/IGetFreeBusy.cs (100%) rename {src/Ical.Net => Ical.Net}/IGetOccurrences.cs (100%) rename {src/Ical.Net => Ical.Net}/ILoadable.cs (100%) rename {src/Ical.Net => Ical.Net}/IMergeable.cs (100%) rename {src/Ical.Net => Ical.Net}/IParameterCollection.cs (100%) rename {src/Ical.Net => Ical.Net}/IServiceProvider.cs (100%) rename {src/Ical.Net => Ical.Net}/Ical.Net.csproj (68%) rename {src => Ical.Net}/Ical.Net.nuspec (100%) rename {src/Ical.Net => Ical.Net}/ParameterList.cs (100%) create mode 100644 Ical.Net/Properties/AssemblyInfo.cs rename {src/Ical.Net => Ical.Net}/Proxies/CalendarObjectListProxy.cs (100%) rename {src/Ical.Net => Ical.Net}/Proxies/IUniqueComponentList.cs (100%) rename {src/Ical.Net => Ical.Net}/Proxies/ParameterCollectionProxy.cs (100%) rename {src/Ical.Net => Ical.Net}/Proxies/UniqueComponentListProxy.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/CalendarComponentFactory.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/CalendarSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/ComponentSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataMapSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypeMapper.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypeSerializerFactory.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/AttachmentSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/AttendeeSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/DataTypeSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/DateTimeSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/EncodableDataTypeSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/EnumSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/FreeBusyEntrySerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/GeographicLocationSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/IntegerSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/OrganizerSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/PeriodListSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/PeriodSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/RecurrencePatternSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/RequestStatusSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/StatusCodeSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/StringSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/TimeSpanSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/TriggerSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/UriSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/UtcOffsetSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/DataTypes/WeekDaySerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/EncodingProvider.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/EncodingStack.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/EventSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/GenericListSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/IEncodingProvider.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/ISerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/ISerializerFactory.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/IStringSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/ParameterSerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/PropertySerializer.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/SerializationContext.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/SerializationUtil.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/SerializerBase.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/SerializerFactory.cs (100%) rename {src/Ical.Net => Ical.Net}/Serialization/SimpleDeserializer.cs (100%) rename {src/Ical.Net => Ical.Net}/ServiceProvider.cs (100%) rename {src/Ical.Net => Ical.Net}/Utility/CollectionHelpers.cs (100%) rename {src/Ical.Net => Ical.Net}/Utility/DateUtil.cs (100%) rename {src/Ical.Net => Ical.Net}/Utility/TextUtil.cs (100%) rename {src/Ical.Net => Ical.Net}/VTimeZoneInfo.cs (100%) delete mode 100644 IcalNetStrongnameKey.snk delete mode 100644 NugetTester/FrameworkConsole/App.config delete mode 100644 NugetTester/FrameworkConsole/FrameworkConsole.cs delete mode 100644 NugetTester/FrameworkConsole/FrameworkConsole.csproj delete mode 100644 NugetTester/FrameworkConsole/Properties/AssemblyInfo.cs delete mode 100644 NugetTester/FrameworkConsole/packages.config delete mode 100644 NugetTester/NetCoreConsole/CoreConsole.cs delete mode 100644 NugetTester/NetCoreConsole/NetCoreConsole.csproj delete mode 100644 NugetTester/NugetTester.sln delete mode 100644 NugetTester/NugetTester/App.config delete mode 100644 NugetTester/NugetTester/NugetTester.csproj delete mode 100644 NugetTester/NugetTester/Program.cs delete mode 100644 NugetTester/NugetTester/Properties/AssemblyInfo.cs delete mode 100644 NugetTester/NugetTester/packages.config create mode 100644 assets/icon.png rename logo.png => assets/logo.png (100%) rename nuget_logo_150px.png => assets/nuget_logo_150px.png (100%) delete mode 100644 src/Ical.Net/Properties/AssemblyInfo.cs delete mode 100644 tooling/ical-net-rsharp.DotSettings.txt delete mode 100644 tooling/ical-net.vssettings diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 000000000..21943c337 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,10 @@ +root = true + +[*] +charset = utf-8-bom +end_of_line = crlf +indent_style = space +trim_trailing_whitespace = true + +[*.cs] +indent_size = 4 \ No newline at end of file diff --git a/.gitattributes b/.gitattributes index 1ff0c4230..0a2cec4b8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,63 +1,6 @@ -############################################################################### -# Set default behavior to automatically normalize line endings. -############################################################################### +# Auto detect text files and perform LF normalization +# http://davidlaing.com/2012/09/19/customise-your-gitattributes-to-become-a-git-ninja/ * text=auto -############################################################################### -# Set default behavior for command prompt diff. -# -# This is need for earlier builds of msysgit that does not have it on by -# default for csharp files. -# Note: This is only used by command line -############################################################################### -#*.cs diff=csharp +*.cs diff=csharp -############################################################################### -# Set the merge driver for project and solution files -# -# Merging from the command prompt will add diff markers to the files if there -# are conflicts (Merging from VS is not affected by the settings below, in VS -# the diff markers are never inserted). Diff markers may cause the following -# file extensions to fail to load in VS. An alternative would be to treat -# these files as binary and thus will always conflict and require user -# intervention with every merge. To do so, just uncomment the entries below -############################################################################### -#*.sln merge=binary -#*.csproj merge=binary -#*.vbproj merge=binary -#*.vcxproj merge=binary -#*.vcproj merge=binary -#*.dbproj merge=binary -#*.fsproj merge=binary -#*.lsproj merge=binary -#*.wixproj merge=binary -#*.modelproj merge=binary -#*.sqlproj merge=binary -#*.wwaproj merge=binary - -############################################################################### -# behavior for image files -# -# image files are treated as binary by default. -############################################################################### -#*.jpg binary -#*.png binary -#*.gif binary - -############################################################################### -# diff behavior for common document formats -# -# Convert binary document formats to text before diffing them. This feature -# is only available from the command line. Turn it on by uncommenting the -# entries below. -############################################################################### -#*.doc diff=astextplain -#*.DOC diff=astextplain -#*.docx diff=astextplain -#*.DOCX diff=astextplain -#*.dot diff=astextplain -#*.DOT diff=astextplain -#*.pdf diff=astextplain -#*.PDF diff=astextplain -#*.rtf diff=astextplain -#*.RTF diff=astextplain diff --git a/.gitignore b/.gitignore index 28b8554eb..50854d3c0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,15 @@ -## OS-specific files -.DS_Store -## Benchmark.net files -*.html -*.csv +# Created by https://www.gitignore.io/api/csharp +# Edit at https://www.gitignore.io/?templates=csharp +### Csharp ### ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore # User-specific files +*.rsuser *.suo *.user *.userosscache @@ -17,6 +18,9 @@ # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs +# Mono auto generated files +mono_crash.* + # Build results [Dd]ebug/ [Dd]ebugPublic/ @@ -24,41 +28,57 @@ [Rr]eleases/ x64/ x86/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ bld/ [Bb]in/ [Oo]bj/ [Ll]og/ -# Visual Studio 2015 cache/options directory +# Visual Studio 2015/2017 cache/options directory .vs/ +.vscode/ # Uncomment if you have tasks that create the project's static files in wwwroot #wwwroot/ +# Visual Studio 2017 auto generated files +Generated\ Files/ + # MSTest test Results [Tt]est[Rr]esult*/ [Bb]uild[Ll]og.* -# NUNIT +# NUnit *.VisualState.xml TestResult.xml +nunit-*.xml # Build Results of an ATL Project [Dd]ebugPS/ [Rr]eleasePS/ dlldata.c -# DNX +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core project.lock.json +project.fragment.lock.json artifacts/ +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio *_i.c *_p.c -*_i.h +*_h.h *.ilk -*.meta *.obj +*.iobj *.pch *.pdb +*.ipdb *.pgc *.pgd *.rsp @@ -68,6 +88,7 @@ artifacts/ *.tlh *.tmp *.tmp_proj +*_wpftmp.csproj *.log *.vspscc *.vssscc @@ -96,6 +117,9 @@ ipch/ *.vspx *.sap +# Visual Studio Trace Files +*.e2e + # TFS 2012 Local Workspace $tf/ @@ -116,6 +140,14 @@ _TeamCity* # DotCover is a Code Coverage Tool *.dotCover +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Visual Studio code coverage results +*.coverage +*.coveragexml + # NCrunch _NCrunch_* .*crunch*.local.xml @@ -147,7 +179,7 @@ publish/ # Publish Web Output *.[Pp]ublish.xml *.azurePubxml -# TODO: Comment the next line if you want to checkin your web deploy settings +# Note: Comment the next line if you want to checkin your web deploy settings, # but database connection strings (with potential passwords) will be unencrypted *.pubxml *.publishproj @@ -159,13 +191,15 @@ PublishScripts/ # NuGet Packages *.nupkg +# NuGet Symbol Packages +*.snupkg # The packages folder can be ignored because of Package Restore -**/packages/* +**/[Pp]ackages/* # except build/, which is used as an MSBuild target. -!**/packages/build/ +!**/[Pp]ackages/build/ # Uncomment if necessary however generally it will be regenerated when needed -#!**/packages/repositories.config -# NuGet v3's project.json files produces more ignoreable files +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files *.nuget.props *.nuget.targets @@ -182,12 +216,15 @@ AppPackages/ BundleArtifacts/ Package.StoreAssociation.xml _pkginfo.txt +*.appx +*.appxbundle +*.appxupload # Visual Studio cache files # files ending in .cache can be ignored *.[Cc]ache # but keep track of directories ending in .cache -!*.[Cc]ache/ +!?*.[Cc]ache/ # Others ClientBin/ @@ -195,11 +232,15 @@ ClientBin/ *~ *.dbmdl *.dbproj.schemaview +*.jfm *.pfx *.publishsettings -node_modules/ orleans.codegen.cs +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + # Since there are multiple workflows, uncomment next line to ignore bower_components # (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) #bower_components/ @@ -214,15 +255,22 @@ _UpgradeReport_Files/ Backup*/ UpgradeLog*.XML UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak # SQL Server files *.mdf *.ldf +*.ndf # Business Intelligence projects *.rdl.data *.bim.layout *.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl # Microsoft Fakes FakesAssemblies/ @@ -232,6 +280,7 @@ FakesAssemblies/ # Node.js Tools for Visual Studio .ntvs_analysis.dat +node_modules/ # Visual Studio 6 build log *.plg @@ -239,6 +288,9 @@ FakesAssemblies/ # Visual Studio 6 workspace options file *.opt +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + # Visual Studio LightSwitch build output **/*.HTMLClient/GeneratedArtifacts **/*.DesktopClient/GeneratedArtifacts @@ -254,6 +306,56 @@ paket-files/ # FAKE - F# Make .fake/ -# JetBrains Rider -.idea/ -*.sln.iml \ No newline at end of file +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Secrets +secrets.json +secrets.buildkey (edited) +appsettings.*.json + +# End of https://www.gitignore.io/api/csharp diff --git a/BenchmarkDotNet.Artifacts/results/BenchmarkRun-001-2017-11-25-04-26-12-report-github.md b/BenchmarkDotNet.Artifacts/results/BenchmarkRun-001-2017-11-25-04-26-12-report-github.md deleted file mode 100644 index 0137f2c9f..000000000 --- a/BenchmarkDotNet.Artifacts/results/BenchmarkRun-001-2017-11-25-04-26-12-report-github.md +++ /dev/null @@ -1,10 +0,0 @@ -``` ini - -BenchmarkDotNet=v0.10.10, OS=Windows 10 Redstone 2 [1703, Creators Update] (10.0.15063.726) -Processor=Intel Core i5-3210M CPU 2.50GHz (Ivy Bridge), ProcessorCount=4 -Frequency=2435874 Hz, Resolution=410.5303 ns, Timer=TSC -.NET Core SDK=2.0.3 - [Host] : .NET Core 2.0.3 (Framework 4.6.25815.02), 64bit RyuJIT - -There are no benchmarks found - diff --git a/BenchmarkDotNet.Artifacts/results/PerfTests.CalDateTimePerfTests-report-github.md b/BenchmarkDotNet.Artifacts/results/PerfTests.CalDateTimePerfTests-report-github.md deleted file mode 100644 index 509fc1d45..000000000 --- a/BenchmarkDotNet.Artifacts/results/PerfTests.CalDateTimePerfTests-report-github.md +++ /dev/null @@ -1,18 +0,0 @@ -``` ini - -BenchmarkDotNet=v0.10.10, OS=Windows 10 Redstone 2 [1703, Creators Update] (10.0.15063.726) -Processor=Intel Core i5-3210M CPU 2.50GHz (Ivy Bridge), ProcessorCount=4 -Frequency=2435874 Hz, Resolution=410.5303 ns, Timer=TSC -.NET Core SDK=2.0.3 - [Host] : .NET Core 2.0.3 (Framework 4.6.25815.02), 64bit RyuJIT - - -``` -| Method | Mean | Error | StdDev | Median | -|----------------------------- |-----------:|---------:|----------:|-----------:| -| EmptyTzid | 719.4 ns | 14.03 ns | 13.78 ns | 711.3 ns | -| SpecifiedTzid | 1,828.2 ns | 38.02 ns | 48.08 ns | 1,802.2 ns | -| UtcDateTime | 1,435.8 ns | 28.07 ns | 40.26 ns | 1,408.9 ns | -| EmptyTzidToTzid | 4,968.9 ns | 98.92 ns | 125.10 ns | 4,903.4 ns | -| SpecifiedTzidToDifferentTzid | 4,892.1 ns | 96.39 ns | 135.13 ns | 4,815.4 ns | -| UtcToDifferentTzid | 4,229.6 ns | 84.41 ns | 128.91 ns | 4,173.1 ns | diff --git a/BenchmarkDotNet.Artifacts/results/PerfTests.OccurencePerfTests-report-github.md b/BenchmarkDotNet.Artifacts/results/PerfTests.OccurencePerfTests-report-github.md deleted file mode 100644 index 0e50a10f8..000000000 --- a/BenchmarkDotNet.Artifacts/results/PerfTests.OccurencePerfTests-report-github.md +++ /dev/null @@ -1,18 +0,0 @@ -``` ini - -BenchmarkDotNet=v0.10.10, OS=Windows 10 Redstone 2 [1703, Creators Update] (10.0.15063.726) -Processor=Intel Core i5-3210M CPU 2.50GHz (Ivy Bridge), ProcessorCount=4 -Frequency=2435874 Hz, Resolution=410.5303 ns, Timer=TSC -.NET Core SDK=2.0.3 - [Host] : .NET Core 2.0.3 (Framework 4.6.25815.02), 64bit RyuJIT - - -``` -| Method | Mean | Error | StdDev | -|----------------------------------------------------------- |------------:|----------:|----------:| -| MultipleEventsWithUntilOccurrencesSearchingByWholeCalendar | 1,483.1 us | 29.59 us | 37.43 us | -| MultipleEventsWithUntilOccurrences | 1,123.2 us | 21.72 us | 25.01 us | -| MultipleEventsWithUntilOccurrencesEventsAsParallel | 891.1 us | 17.73 us | 18.20 us | -| MultipleEventsWithCountOccurrencesSearchingByWholeCalendar | 14,174.4 us | 276.96 us | 284.42 us | -| MultipleEventsWithCountOccurrences | 9,314.6 us | 180.01 us | 227.66 us | -| MultipleEventsWithCountOccurrencesEventsAsParallel | 6,603.5 us | 130.28 us | 173.92 us | diff --git a/BenchmarkDotNet.Artifacts/results/PerfTests.SerializationPerfTests-report-github.md b/BenchmarkDotNet.Artifacts/results/PerfTests.SerializationPerfTests-report-github.md deleted file mode 100644 index 749030524..000000000 --- a/BenchmarkDotNet.Artifacts/results/PerfTests.SerializationPerfTests-report-github.md +++ /dev/null @@ -1,14 +0,0 @@ -``` ini - -BenchmarkDotNet=v0.10.10, OS=Windows 10 Redstone 2 [1703, Creators Update] (10.0.15063.726) -Processor=Intel Core i5-3210M CPU 2.50GHz (Ivy Bridge), ProcessorCount=4 -Frequency=2435874 Hz, Resolution=410.5303 ns, Timer=TSC -.NET Core SDK=2.0.3 - [Host] : .NET Core 2.0.3 (Framework 4.6.25815.02), 64bit RyuJIT - - -``` -| Method | Mean | Error | StdDev | -|------------------ |----------:|-----------:|-----------:| -| Deserialize | 639.00 us | 12.6489 us | 15.9968 us | -| SerializeCalendar | 21.53 us | 0.4269 us | 0.5082 us | diff --git a/BenchmarkDotNet.Artifacts/results/PerfTests.ThroughputTests-report-github.md b/BenchmarkDotNet.Artifacts/results/PerfTests.ThroughputTests-report-github.md deleted file mode 100644 index c881ccdc5..000000000 --- a/BenchmarkDotNet.Artifacts/results/PerfTests.ThroughputTests-report-github.md +++ /dev/null @@ -1,14 +0,0 @@ -``` ini - -BenchmarkDotNet=v0.10.10, OS=Windows 10 Redstone 2 [1703, Creators Update] (10.0.15063.726) -Processor=Intel Core i5-3210M CPU 2.50GHz (Ivy Bridge), ProcessorCount=4 -Frequency=2435874 Hz, Resolution=410.5303 ns, Timer=TSC -.NET Core SDK=2.0.3 - [Host] : .NET Core 2.0.3 (Framework 4.6.25815.02), 64bit RyuJIT - - -``` -| Method | Mean | Error | StdDev | Median | -|-------------------------------------- |---------:|----------:|----------:|---------:| -| DeserializeAndComputeUntilOccurrences | 18.97 ms | 0.3692 ms | 0.4534 ms | 18.78 ms | -| DeserializeAndComputeCountOccurrences | 18.98 ms | 0.3711 ms | 0.5778 ms | 18.65 ms | diff --git a/BenchmarkDotNet.Artifacts/v2/results/PerfTesting.CalDateTimePerfTests-report-github.md b/BenchmarkDotNet.Artifacts/v2/results/PerfTesting.CalDateTimePerfTests-report-github.md deleted file mode 100644 index a81352436..000000000 --- a/BenchmarkDotNet.Artifacts/v2/results/PerfTesting.CalDateTimePerfTests-report-github.md +++ /dev/null @@ -1,17 +0,0 @@ -``` ini - -BenchmarkDotNet=v0.10.10, OS=Windows 10 Redstone 2 [1703, Creators Update] (10.0.15063.726) -Processor=Intel Core i5-3210M CPU 2.50GHz (Ivy Bridge), ProcessorCount=4 -Frequency=2435874 Hz, Resolution=410.5303 ns, Timer=TSC - [Host] : .NET Framework 4.6.2 (CLR 4.0.30319.42000), 32bit LegacyJIT-v4.7.2115.0 - - -``` -| Method | Mean | Error | StdDev | -|----------------------------- |-----------:|---------:|----------:| -| EmptyTzid | 1,400.0 ns | 27.41 ns | 25.64 ns | -| SpecifiedTzid | 2,043.0 ns | 40.73 ns | 60.97 ns | -| UtcDateTime | 961.3 ns | 19.29 ns | 27.04 ns | -| EmptyTzidToTzid | 4,002.6 ns | 78.20 ns | 114.62 ns | -| SpecifiedTzidToDifferentTzid | 5,007.1 ns | 97.24 ns | 139.46 ns | -| UtcToDifferentTzid | 3,654.3 ns | 71.20 ns | 84.76 ns | diff --git a/BenchmarkDotNet.Artifacts/v2/results/PerfTesting.OccurencePerfTests-report-github.md b/BenchmarkDotNet.Artifacts/v2/results/PerfTesting.OccurencePerfTests-report-github.md deleted file mode 100644 index ab30587cb..000000000 --- a/BenchmarkDotNet.Artifacts/v2/results/PerfTesting.OccurencePerfTests-report-github.md +++ /dev/null @@ -1,17 +0,0 @@ -``` ini - -BenchmarkDotNet=v0.10.10, OS=Windows 10 Redstone 2 [1703, Creators Update] (10.0.15063.726) -Processor=Intel Core i5-3210M CPU 2.50GHz (Ivy Bridge), ProcessorCount=4 -Frequency=2435874 Hz, Resolution=410.5303 ns, Timer=TSC - [Host] : .NET Framework 4.6.2 (CLR 4.0.30319.42000), 32bit LegacyJIT-v4.7.2115.0 - - -``` -| Method | Mean | Error | StdDev | -|----------------------------------------------------------- |----------:|----------:|----------:| -| MultipleEventsWithUntilOccurrencesSearchingByWholeCalendar | 2.225 ms | 0.0438 ms | 0.0732 ms | -| MultipleEventsWithUntilOccurrences | 1.625 ms | 0.0324 ms | 0.0360 ms | -| MultipleEventsWithUntilOccurrencesEventsAsParallel | 1.210 ms | 0.0248 ms | 0.0295 ms | -| MultipleEventsWithCountOccurrencesSearchingByWholeCalendar | 19.753 ms | 0.3860 ms | 0.5283 ms | -| MultipleEventsWithCountOccurrences | 14.173 ms | 0.2756 ms | 0.3486 ms | -| MultipleEventsWithCountOccurrencesEventsAsParallel | 9.230 ms | 0.0966 ms | 0.0806 ms | diff --git a/BenchmarkDotNet.Artifacts/v2/results/PerfTesting.SerializationPerfTests-report-github.md b/BenchmarkDotNet.Artifacts/v2/results/PerfTesting.SerializationPerfTests-report-github.md deleted file mode 100644 index a0b946c39..000000000 --- a/BenchmarkDotNet.Artifacts/v2/results/PerfTesting.SerializationPerfTests-report-github.md +++ /dev/null @@ -1,13 +0,0 @@ -``` ini - -BenchmarkDotNet=v0.10.10, OS=Windows 10 Redstone 2 [1703, Creators Update] (10.0.15063.726) -Processor=Intel Core i5-3210M CPU 2.50GHz (Ivy Bridge), ProcessorCount=4 -Frequency=2435874 Hz, Resolution=410.5303 ns, Timer=TSC - [Host] : .NET Framework 4.6.2 (CLR 4.0.30319.42000), 32bit LegacyJIT-v4.7.2115.0 - - -``` -| Method | Mean | Error | StdDev | -|------------------ |------------:|-----------:|-----------:| -| Deserialize | 1,054.21 us | 23.7054 us | 40.2535 us | -| SerializeCalendar | 22.43 us | 0.4281 us | 0.5258 us | diff --git a/src/PerfTests/ApplicationWorkflows.cs b/Ical.Net.Benchmarks/ApplicationWorkflows.cs similarity index 96% rename from src/PerfTests/ApplicationWorkflows.cs rename to Ical.Net.Benchmarks/ApplicationWorkflows.cs index abb082a79..b80990d82 100644 --- a/src/PerfTests/ApplicationWorkflows.cs +++ b/Ical.Net.Benchmarks/ApplicationWorkflows.cs @@ -1,13 +1,12 @@ -using System; +using BenchmarkDotNet.Attributes; +using Ical.Net.DataTypes; +using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; -using BenchmarkDotNet.Attributes; -using Ical.Net; -using Ical.Net.DataTypes; -namespace PerfTests +namespace Ical.Net.Benchmarks { public class ApplicationWorkflows { diff --git a/src/PerfTests/CalDateTimePerfTests.cs b/Ical.Net.Benchmarks/CalDateTimePerfTests.cs similarity index 90% rename from src/PerfTests/CalDateTimePerfTests.cs rename to Ical.Net.Benchmarks/CalDateTimePerfTests.cs index 842ae8af9..4377f8112 100644 --- a/src/PerfTests/CalDateTimePerfTests.cs +++ b/Ical.Net.Benchmarks/CalDateTimePerfTests.cs @@ -1,8 +1,8 @@ -using System; -using BenchmarkDotNet.Attributes; +using BenchmarkDotNet.Attributes; using Ical.Net.DataTypes; +using System; -namespace PerfTests +namespace Ical.Net.Benchmarks { public class CalDateTimePerfTests { diff --git a/src/PerfTests/PerfTests.csproj b/Ical.Net.Benchmarks/Ical.Net.Benchmarks.csproj similarity index 100% rename from src/PerfTests/PerfTests.csproj rename to Ical.Net.Benchmarks/Ical.Net.Benchmarks.csproj diff --git a/src/PerfTests/OccurencePerfTests.cs b/Ical.Net.Benchmarks/OccurencePerfTests.cs similarity index 98% rename from src/PerfTests/OccurencePerfTests.cs rename to Ical.Net.Benchmarks/OccurencePerfTests.cs index 1fb1f5bfe..54d4e2da5 100644 --- a/src/PerfTests/OccurencePerfTests.cs +++ b/Ical.Net.Benchmarks/OccurencePerfTests.cs @@ -1,12 +1,11 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using BenchmarkDotNet.Attributes; -using Ical.Net; +using BenchmarkDotNet.Attributes; using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; +using System; +using System.Collections.Generic; +using System.Linq; -namespace PerfTests +namespace Ical.Net.Benchmarks { public class OccurencePerfTests { diff --git a/src/PerfTests/Runner.cs b/Ical.Net.Benchmarks/Runner.cs similarity index 81% rename from src/PerfTests/Runner.cs rename to Ical.Net.Benchmarks/Runner.cs index 358fe9bfd..489764e23 100644 --- a/src/PerfTests/Runner.cs +++ b/Ical.Net.Benchmarks/Runner.cs @@ -1,11 +1,6 @@ -using System; -using System.IO; -using System.Linq; -using System.Reflection; -using BenchmarkDotNet.Running; -using BenchmarkDotNet.Toolchains.InProcess; +using BenchmarkDotNet.Running; -namespace PerfTests +namespace Ical.Net.Benchmarks { public class Runner { diff --git a/src/PerfTests/SerializationPerfTests.cs b/Ical.Net.Benchmarks/SerializationPerfTests.cs similarity index 97% rename from src/PerfTests/SerializationPerfTests.cs rename to Ical.Net.Benchmarks/SerializationPerfTests.cs index 5b65ec176..6a5e8d5e6 100644 --- a/src/PerfTests/SerializationPerfTests.cs +++ b/Ical.Net.Benchmarks/SerializationPerfTests.cs @@ -1,13 +1,12 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using BenchmarkDotNet.Attributes; -using Ical.Net; +using BenchmarkDotNet.Attributes; using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; using Ical.Net.Serialization; +using System; +using System.Collections.Generic; +using System.Linq; -namespace PerfTests +namespace Ical.Net.Benchmarks { public class SerializationPerfTests { diff --git a/src/PerfTests/ThroughputTests.cs b/Ical.Net.Benchmarks/ThroughputTests.cs similarity index 98% rename from src/PerfTests/ThroughputTests.cs rename to Ical.Net.Benchmarks/ThroughputTests.cs index 83bff23c9..f5a8a833f 100644 --- a/src/PerfTests/ThroughputTests.cs +++ b/Ical.Net.Benchmarks/ThroughputTests.cs @@ -1,9 +1,8 @@ -using System; +using BenchmarkDotNet.Attributes; +using System; using System.Linq; -using BenchmarkDotNet.Attributes; -using Ical.Net; -namespace PerfTests +namespace Ical.Net.Benchmarks { public class ThroughputTests { diff --git a/src/Ical.Net.CoreUnitTests/AlarmTest.cs b/Ical.Net.Tests/AlarmTest.cs similarity index 99% rename from src/Ical.Net.CoreUnitTests/AlarmTest.cs rename to Ical.Net.Tests/AlarmTest.cs index 67df16fda..7b4fc50cb 100644 --- a/src/Ical.Net.CoreUnitTests/AlarmTest.cs +++ b/Ical.Net.Tests/AlarmTest.cs @@ -1,10 +1,10 @@ +using Ical.Net.DataTypes; +using NUnit.Framework; using System; using System.Collections.Generic; using System.Linq; -using Ical.Net.DataTypes; -using NUnit.Framework; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { [TestFixture] public class AlarmTest diff --git a/src/Ical.Net.CoreUnitTests/AttendeeTest.cs b/Ical.Net.Tests/AttendeeTest.cs similarity index 98% rename from src/Ical.Net.CoreUnitTests/AttendeeTest.cs rename to Ical.Net.Tests/AttendeeTest.cs index 135bca897..3a9222ad6 100644 --- a/src/Ical.Net.CoreUnitTests/AttendeeTest.cs +++ b/Ical.Net.Tests/AttendeeTest.cs @@ -1,12 +1,12 @@ -using System; -using System.Collections.Generic; -using System.Linq; using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; using Ical.Net.Serialization; using NUnit.Framework; +using System; +using System.Collections.Generic; +using System.Linq; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { [TestFixture] public class AttendeeTest diff --git a/src/Ical.Net.CoreUnitTests/CalDateTimeTests.cs b/Ical.Net.Tests/CalDateTimeTests.cs similarity index 98% rename from src/Ical.Net.CoreUnitTests/CalDateTimeTests.cs rename to Ical.Net.Tests/CalDateTimeTests.cs index fa5007487..661239b1f 100644 --- a/src/Ical.Net.CoreUnitTests/CalDateTimeTests.cs +++ b/Ical.Net.Tests/CalDateTimeTests.cs @@ -1,11 +1,11 @@ -using System; -using System.Collections.Generic; -using Ical.Net.CalendarComponents; +using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; using NUnit.Framework; using NUnit.Framework.Interfaces; +using System; +using System.Collections.Generic; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { public class CalDateTimeTests { diff --git a/src/Ical.Net.CoreUnitTests/CalendarEventTest.cs b/Ical.Net.Tests/CalendarEventTest.cs similarity index 99% rename from src/Ical.Net.CoreUnitTests/CalendarEventTest.cs rename to Ical.Net.Tests/CalendarEventTest.cs index 350f129e9..e25fdf060 100644 --- a/src/Ical.Net.CoreUnitTests/CalendarEventTest.cs +++ b/Ical.Net.Tests/CalendarEventTest.cs @@ -1,13 +1,13 @@ -using System; -using System.Collections.Generic; -using System.Linq; using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; using Ical.Net.Serialization; using NUnit.Framework; using NUnit.Framework.Interfaces; +using System; +using System.Collections.Generic; +using System.Linq; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { [TestFixture] public class CalendarEventTest diff --git a/src/Ical.Net.CoreUnitTests/CalendarPropertiesTest.cs b/Ical.Net.Tests/CalendarPropertiesTest.cs similarity index 96% rename from src/Ical.Net.CoreUnitTests/CalendarPropertiesTest.cs rename to Ical.Net.Tests/CalendarPropertiesTest.cs index 91f0213bf..0a68583d6 100644 --- a/src/Ical.Net.CoreUnitTests/CalendarPropertiesTest.cs +++ b/Ical.Net.Tests/CalendarPropertiesTest.cs @@ -1,11 +1,11 @@ -using System; -using System.Linq; -using Ical.Net.CalendarComponents; +using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; using Ical.Net.Serialization; using NUnit.Framework; +using System; +using System.Linq; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { [TestFixture] public class CalendarPropertiesTest diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Alarm/ALARM1.ics b/Ical.Net.Tests/Calendars/Alarm/ALARM1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Alarm/ALARM1.ics rename to Ical.Net.Tests/Calendars/Alarm/ALARM1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Alarm/ALARM2.ics b/Ical.Net.Tests/Calendars/Alarm/ALARM2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Alarm/ALARM2.ics rename to Ical.Net.Tests/Calendars/Alarm/ALARM2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Alarm/ALARM3.ics b/Ical.Net.Tests/Calendars/Alarm/ALARM3.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Alarm/ALARM3.ics rename to Ical.Net.Tests/Calendars/Alarm/ALARM3.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Alarm/ALARM4.ics b/Ical.Net.Tests/Calendars/Alarm/ALARM4.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Alarm/ALARM4.ics rename to Ical.Net.Tests/Calendars/Alarm/ALARM4.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Alarm/ALARM5.ics b/Ical.Net.Tests/Calendars/Alarm/ALARM5.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Alarm/ALARM5.ics rename to Ical.Net.Tests/Calendars/Alarm/ALARM5.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Alarm/ALARM6.ics b/Ical.Net.Tests/Calendars/Alarm/ALARM6.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Alarm/ALARM6.ics rename to Ical.Net.Tests/Calendars/Alarm/ALARM6.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Alarm/ALARM7.ics b/Ical.Net.Tests/Calendars/Alarm/ALARM7.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Alarm/ALARM7.ics rename to Ical.Net.Tests/Calendars/Alarm/ALARM7.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Journal/JOURNAL1.ics b/Ical.Net.Tests/Calendars/Journal/JOURNAL1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Journal/JOURNAL1.ics rename to Ical.Net.Tests/Calendars/Journal/JOURNAL1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Journal/JOURNAL2.ics b/Ical.Net.Tests/Calendars/Journal/JOURNAL2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Journal/JOURNAL2.ics rename to Ical.Net.Tests/Calendars/Journal/JOURNAL2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Bug1741093.ics b/Ical.Net.Tests/Calendars/Recurrence/Bug1741093.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Bug1741093.ics rename to Ical.Net.Tests/Calendars/Recurrence/Bug1741093.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Bug2912657.ics b/Ical.Net.Tests/Calendars/Recurrence/Bug2912657.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Bug2912657.ics rename to Ical.Net.Tests/Calendars/Recurrence/Bug2912657.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Bug2916581.ics b/Ical.Net.Tests/Calendars/Recurrence/Bug2916581.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Bug2916581.ics rename to Ical.Net.Tests/Calendars/Recurrence/Bug2916581.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Bug2959692.ics b/Ical.Net.Tests/Calendars/Recurrence/Bug2959692.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Bug2959692.ics rename to Ical.Net.Tests/Calendars/Recurrence/Bug2959692.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Bug2966236.ics b/Ical.Net.Tests/Calendars/Recurrence/Bug2966236.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Bug2966236.ics rename to Ical.Net.Tests/Calendars/Recurrence/Bug2966236.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Bug3007244.ics b/Ical.Net.Tests/Calendars/Recurrence/Bug3007244.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Bug3007244.ics rename to Ical.Net.Tests/Calendars/Recurrence/Bug3007244.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/ByMonth1.ics b/Ical.Net.Tests/Calendars/Recurrence/ByMonth1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/ByMonth1.ics rename to Ical.Net.Tests/Calendars/Recurrence/ByMonth1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/ByMonth2.ics b/Ical.Net.Tests/Calendars/Recurrence/ByMonth2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/ByMonth2.ics rename to Ical.Net.Tests/Calendars/Recurrence/ByMonth2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/ByMonthDay1.ics b/Ical.Net.Tests/Calendars/Recurrence/ByMonthDay1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/ByMonthDay1.ics rename to Ical.Net.Tests/Calendars/Recurrence/ByMonthDay1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Daily1.ics b/Ical.Net.Tests/Calendars/Recurrence/Daily1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Daily1.ics rename to Ical.Net.Tests/Calendars/Recurrence/Daily1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/DailyByDay1.ics b/Ical.Net.Tests/Calendars/Recurrence/DailyByDay1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/DailyByDay1.ics rename to Ical.Net.Tests/Calendars/Recurrence/DailyByDay1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/DailyByHourMinute1.ics b/Ical.Net.Tests/Calendars/Recurrence/DailyByHourMinute1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/DailyByHourMinute1.ics rename to Ical.Net.Tests/Calendars/Recurrence/DailyByHourMinute1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/DailyCount1.ics b/Ical.Net.Tests/Calendars/Recurrence/DailyCount1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/DailyCount1.ics rename to Ical.Net.Tests/Calendars/Recurrence/DailyCount1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/DailyCount2.ics b/Ical.Net.Tests/Calendars/Recurrence/DailyCount2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/DailyCount2.ics rename to Ical.Net.Tests/Calendars/Recurrence/DailyCount2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/DailyInterval1.ics b/Ical.Net.Tests/Calendars/Recurrence/DailyInterval1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/DailyInterval1.ics rename to Ical.Net.Tests/Calendars/Recurrence/DailyInterval1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/DailyInterval2.ics b/Ical.Net.Tests/Calendars/Recurrence/DailyInterval2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/DailyInterval2.ics rename to Ical.Net.Tests/Calendars/Recurrence/DailyInterval2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/DailyUntil1.ics b/Ical.Net.Tests/Calendars/Recurrence/DailyUntil1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/DailyUntil1.ics rename to Ical.Net.Tests/Calendars/Recurrence/DailyUntil1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Empty1.ics b/Ical.Net.Tests/Calendars/Recurrence/Empty1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Empty1.ics rename to Ical.Net.Tests/Calendars/Recurrence/Empty1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Hourly1.ics b/Ical.Net.Tests/Calendars/Recurrence/Hourly1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Hourly1.ics rename to Ical.Net.Tests/Calendars/Recurrence/Hourly1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/HourlyInterval1.ics b/Ical.Net.Tests/Calendars/Recurrence/HourlyInterval1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/HourlyInterval1.ics rename to Ical.Net.Tests/Calendars/Recurrence/HourlyInterval1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/HourlyInterval2.ics b/Ical.Net.Tests/Calendars/Recurrence/HourlyInterval2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/HourlyInterval2.ics rename to Ical.Net.Tests/Calendars/Recurrence/HourlyInterval2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/HourlyUntil1.ics b/Ical.Net.Tests/Calendars/Recurrence/HourlyUntil1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/HourlyUntil1.ics rename to Ical.Net.Tests/Calendars/Recurrence/HourlyUntil1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Minutely1.ics b/Ical.Net.Tests/Calendars/Recurrence/Minutely1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Minutely1.ics rename to Ical.Net.Tests/Calendars/Recurrence/Minutely1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MinutelyByHour1.ics b/Ical.Net.Tests/Calendars/Recurrence/MinutelyByHour1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MinutelyByHour1.ics rename to Ical.Net.Tests/Calendars/Recurrence/MinutelyByHour1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MinutelyCount1.ics b/Ical.Net.Tests/Calendars/Recurrence/MinutelyCount1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MinutelyCount1.ics rename to Ical.Net.Tests/Calendars/Recurrence/MinutelyCount1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MinutelyCount2.ics b/Ical.Net.Tests/Calendars/Recurrence/MinutelyCount2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MinutelyCount2.ics rename to Ical.Net.Tests/Calendars/Recurrence/MinutelyCount2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MinutelyCount3.ics b/Ical.Net.Tests/Calendars/Recurrence/MinutelyCount3.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MinutelyCount3.ics rename to Ical.Net.Tests/Calendars/Recurrence/MinutelyCount3.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MinutelyCount4.ics b/Ical.Net.Tests/Calendars/Recurrence/MinutelyCount4.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MinutelyCount4.ics rename to Ical.Net.Tests/Calendars/Recurrence/MinutelyCount4.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MinutelyInterval1.ics b/Ical.Net.Tests/Calendars/Recurrence/MinutelyInterval1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MinutelyInterval1.ics rename to Ical.Net.Tests/Calendars/Recurrence/MinutelyInterval1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Monthly1.ics b/Ical.Net.Tests/Calendars/Recurrence/Monthly1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Monthly1.ics rename to Ical.Net.Tests/Calendars/Recurrence/Monthly1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyByDay1.ics b/Ical.Net.Tests/Calendars/Recurrence/MonthlyByDay1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyByDay1.ics rename to Ical.Net.Tests/Calendars/Recurrence/MonthlyByDay1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyByMonthDay1.ics b/Ical.Net.Tests/Calendars/Recurrence/MonthlyByMonthDay1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyByMonthDay1.ics rename to Ical.Net.Tests/Calendars/Recurrence/MonthlyByMonthDay1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyByMonthDay2.ics b/Ical.Net.Tests/Calendars/Recurrence/MonthlyByMonthDay2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyByMonthDay2.ics rename to Ical.Net.Tests/Calendars/Recurrence/MonthlyByMonthDay2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyBySetPos1.ics b/Ical.Net.Tests/Calendars/Recurrence/MonthlyBySetPos1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyBySetPos1.ics rename to Ical.Net.Tests/Calendars/Recurrence/MonthlyBySetPos1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyBySetPos2.ics b/Ical.Net.Tests/Calendars/Recurrence/MonthlyBySetPos2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyBySetPos2.ics rename to Ical.Net.Tests/Calendars/Recurrence/MonthlyBySetPos2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyCountByDay1.ics b/Ical.Net.Tests/Calendars/Recurrence/MonthlyCountByDay1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyCountByDay1.ics rename to Ical.Net.Tests/Calendars/Recurrence/MonthlyCountByDay1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyCountByDay2.ics b/Ical.Net.Tests/Calendars/Recurrence/MonthlyCountByDay2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyCountByDay2.ics rename to Ical.Net.Tests/Calendars/Recurrence/MonthlyCountByDay2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyCountByDay3.ics b/Ical.Net.Tests/Calendars/Recurrence/MonthlyCountByDay3.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyCountByDay3.ics rename to Ical.Net.Tests/Calendars/Recurrence/MonthlyCountByDay3.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyCountByMonthDay1.ics b/Ical.Net.Tests/Calendars/Recurrence/MonthlyCountByMonthDay1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyCountByMonthDay1.ics rename to Ical.Net.Tests/Calendars/Recurrence/MonthlyCountByMonthDay1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyCountByMonthDay2.ics b/Ical.Net.Tests/Calendars/Recurrence/MonthlyCountByMonthDay2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyCountByMonthDay2.ics rename to Ical.Net.Tests/Calendars/Recurrence/MonthlyCountByMonthDay2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyCountByMonthDay3.ics b/Ical.Net.Tests/Calendars/Recurrence/MonthlyCountByMonthDay3.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyCountByMonthDay3.ics rename to Ical.Net.Tests/Calendars/Recurrence/MonthlyCountByMonthDay3.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyInterval1.ics b/Ical.Net.Tests/Calendars/Recurrence/MonthlyInterval1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyInterval1.ics rename to Ical.Net.Tests/Calendars/Recurrence/MonthlyInterval1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyUntilByDay1.ics b/Ical.Net.Tests/Calendars/Recurrence/MonthlyUntilByDay1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/MonthlyUntilByDay1.ics rename to Ical.Net.Tests/Calendars/Recurrence/MonthlyUntilByDay1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Secondly1.ics b/Ical.Net.Tests/Calendars/Recurrence/Secondly1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Secondly1.ics rename to Ical.Net.Tests/Calendars/Recurrence/Secondly1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyCount1.ics b/Ical.Net.Tests/Calendars/Recurrence/WeeklyCount1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyCount1.ics rename to Ical.Net.Tests/Calendars/Recurrence/WeeklyCount1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyCountWkst1.ics b/Ical.Net.Tests/Calendars/Recurrence/WeeklyCountWkst1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyCountWkst1.ics rename to Ical.Net.Tests/Calendars/Recurrence/WeeklyCountWkst1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyCountWkst2.ics b/Ical.Net.Tests/Calendars/Recurrence/WeeklyCountWkst2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyCountWkst2.ics rename to Ical.Net.Tests/Calendars/Recurrence/WeeklyCountWkst2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyCountWkst3.ics b/Ical.Net.Tests/Calendars/Recurrence/WeeklyCountWkst3.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyCountWkst3.ics rename to Ical.Net.Tests/Calendars/Recurrence/WeeklyCountWkst3.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyCountWkst4.ics b/Ical.Net.Tests/Calendars/Recurrence/WeeklyCountWkst4.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyCountWkst4.ics rename to Ical.Net.Tests/Calendars/Recurrence/WeeklyCountWkst4.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyInterval1.ics b/Ical.Net.Tests/Calendars/Recurrence/WeeklyInterval1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyInterval1.ics rename to Ical.Net.Tests/Calendars/Recurrence/WeeklyInterval1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyUntil1.ics b/Ical.Net.Tests/Calendars/Recurrence/WeeklyUntil1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyUntil1.ics rename to Ical.Net.Tests/Calendars/Recurrence/WeeklyUntil1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyUntilWkst1.ics b/Ical.Net.Tests/Calendars/Recurrence/WeeklyUntilWkst1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyUntilWkst1.ics rename to Ical.Net.Tests/Calendars/Recurrence/WeeklyUntilWkst1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyUntilWkst2.ics b/Ical.Net.Tests/Calendars/Recurrence/WeeklyUntilWkst2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyUntilWkst2.ics rename to Ical.Net.Tests/Calendars/Recurrence/WeeklyUntilWkst2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyWeekStartsLastYear.ics b/Ical.Net.Tests/Calendars/Recurrence/WeeklyWeekStartsLastYear.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyWeekStartsLastYear.ics rename to Ical.Net.Tests/Calendars/Recurrence/WeeklyWeekStartsLastYear.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyWkst1.ics b/Ical.Net.Tests/Calendars/Recurrence/WeeklyWkst1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/WeeklyWkst1.ics rename to Ical.Net.Tests/Calendars/Recurrence/WeeklyWkst1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Yearly1.ics b/Ical.Net.Tests/Calendars/Recurrence/Yearly1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/Yearly1.ics rename to Ical.Net.Tests/Calendars/Recurrence/Yearly1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyByDay1.ics b/Ical.Net.Tests/Calendars/Recurrence/YearlyByDay1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyByDay1.ics rename to Ical.Net.Tests/Calendars/Recurrence/YearlyByDay1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyByMonth1.ics b/Ical.Net.Tests/Calendars/Recurrence/YearlyByMonth1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyByMonth1.ics rename to Ical.Net.Tests/Calendars/Recurrence/YearlyByMonth1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyByMonth2.ics b/Ical.Net.Tests/Calendars/Recurrence/YearlyByMonth2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyByMonth2.ics rename to Ical.Net.Tests/Calendars/Recurrence/YearlyByMonth2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyByMonth3.ics b/Ical.Net.Tests/Calendars/Recurrence/YearlyByMonth3.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyByMonth3.ics rename to Ical.Net.Tests/Calendars/Recurrence/YearlyByMonth3.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyByMonthDay1.ics b/Ical.Net.Tests/Calendars/Recurrence/YearlyByMonthDay1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyByMonthDay1.ics rename to Ical.Net.Tests/Calendars/Recurrence/YearlyByMonthDay1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyBySetPos1.ics b/Ical.Net.Tests/Calendars/Recurrence/YearlyBySetPos1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyBySetPos1.ics rename to Ical.Net.Tests/Calendars/Recurrence/YearlyBySetPos1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyByWeekNo1.ics b/Ical.Net.Tests/Calendars/Recurrence/YearlyByWeekNo1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyByWeekNo1.ics rename to Ical.Net.Tests/Calendars/Recurrence/YearlyByWeekNo1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyByWeekNo2.ics b/Ical.Net.Tests/Calendars/Recurrence/YearlyByWeekNo2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyByWeekNo2.ics rename to Ical.Net.Tests/Calendars/Recurrence/YearlyByWeekNo2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyByWeekNo3.ics b/Ical.Net.Tests/Calendars/Recurrence/YearlyByWeekNo3.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyByWeekNo3.ics rename to Ical.Net.Tests/Calendars/Recurrence/YearlyByWeekNo3.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyByWeekNo4.ics b/Ical.Net.Tests/Calendars/Recurrence/YearlyByWeekNo4.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyByWeekNo4.ics rename to Ical.Net.Tests/Calendars/Recurrence/YearlyByWeekNo4.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyByWeekNo5.ics b/Ical.Net.Tests/Calendars/Recurrence/YearlyByWeekNo5.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyByWeekNo5.ics rename to Ical.Net.Tests/Calendars/Recurrence/YearlyByWeekNo5.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyComplex1.ics b/Ical.Net.Tests/Calendars/Recurrence/YearlyComplex1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyComplex1.ics rename to Ical.Net.Tests/Calendars/Recurrence/YearlyComplex1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyCountByMonth1.ics b/Ical.Net.Tests/Calendars/Recurrence/YearlyCountByMonth1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyCountByMonth1.ics rename to Ical.Net.Tests/Calendars/Recurrence/YearlyCountByMonth1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyCountByYearDay1.ics b/Ical.Net.Tests/Calendars/Recurrence/YearlyCountByYearDay1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyCountByYearDay1.ics rename to Ical.Net.Tests/Calendars/Recurrence/YearlyCountByYearDay1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyInterval1.ics b/Ical.Net.Tests/Calendars/Recurrence/YearlyInterval1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Recurrence/YearlyInterval1.ics rename to Ical.Net.Tests/Calendars/Recurrence/YearlyInterval1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Attachment3.ics b/Ical.Net.Tests/Calendars/Serialization/Attachment3.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Attachment3.ics rename to Ical.Net.Tests/Calendars/Serialization/Attachment3.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Attachment4.ics b/Ical.Net.Tests/Calendars/Serialization/Attachment4.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Attachment4.ics rename to Ical.Net.Tests/Calendars/Serialization/Attachment4.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Attendee1.ics b/Ical.Net.Tests/Calendars/Serialization/Attendee1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Attendee1.ics rename to Ical.Net.Tests/Calendars/Serialization/Attendee1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Attendee2.ics b/Ical.Net.Tests/Calendars/Serialization/Attendee2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Attendee2.ics rename to Ical.Net.Tests/Calendars/Serialization/Attendee2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Bug2033495.ics b/Ical.Net.Tests/Calendars/Serialization/Bug2033495.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Bug2033495.ics rename to Ical.Net.Tests/Calendars/Serialization/Bug2033495.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Bug2148092.ics b/Ical.Net.Tests/Calendars/Serialization/Bug2148092.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Bug2148092.ics rename to Ical.Net.Tests/Calendars/Serialization/Bug2148092.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Bug2938007.ics b/Ical.Net.Tests/Calendars/Serialization/Bug2938007.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Bug2938007.ics rename to Ical.Net.Tests/Calendars/Serialization/Bug2938007.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Calendar1.ics b/Ical.Net.Tests/Calendars/Serialization/Calendar1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Calendar1.ics rename to Ical.Net.Tests/Calendars/Serialization/Calendar1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/CalendarParameters2.ics b/Ical.Net.Tests/Calendars/Serialization/CalendarParameters2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/CalendarParameters2.ics rename to Ical.Net.Tests/Calendars/Serialization/CalendarParameters2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/CaseInsensitive1.ics b/Ical.Net.Tests/Calendars/Serialization/CaseInsensitive1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/CaseInsensitive1.ics rename to Ical.Net.Tests/Calendars/Serialization/CaseInsensitive1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/CaseInsensitive2.ics b/Ical.Net.Tests/Calendars/Serialization/CaseInsensitive2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/CaseInsensitive2.ics rename to Ical.Net.Tests/Calendars/Serialization/CaseInsensitive2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/CaseInsensitive3.ics b/Ical.Net.Tests/Calendars/Serialization/CaseInsensitive3.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/CaseInsensitive3.ics rename to Ical.Net.Tests/Calendars/Serialization/CaseInsensitive3.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/CaseInsensitive4.ics b/Ical.Net.Tests/Calendars/Serialization/CaseInsensitive4.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/CaseInsensitive4.ics rename to Ical.Net.Tests/Calendars/Serialization/CaseInsensitive4.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Categories1.ics b/Ical.Net.Tests/Calendars/Serialization/Categories1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Categories1.ics rename to Ical.Net.Tests/Calendars/Serialization/Categories1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/DateTime1.ics b/Ical.Net.Tests/Calendars/Serialization/DateTime1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/DateTime1.ics rename to Ical.Net.Tests/Calendars/Serialization/DateTime1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/DateTime2.ics b/Ical.Net.Tests/Calendars/Serialization/DateTime2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/DateTime2.ics rename to Ical.Net.Tests/Calendars/Serialization/DateTime2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Duration1.ics b/Ical.Net.Tests/Calendars/Serialization/Duration1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Duration1.ics rename to Ical.Net.Tests/Calendars/Serialization/Duration1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/EmptyLines1.ics b/Ical.Net.Tests/Calendars/Serialization/EmptyLines1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/EmptyLines1.ics rename to Ical.Net.Tests/Calendars/Serialization/EmptyLines1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/EmptyLines2.ics b/Ical.Net.Tests/Calendars/Serialization/EmptyLines2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/EmptyLines2.ics rename to Ical.Net.Tests/Calendars/Serialization/EmptyLines2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/EmptyLines3.ics b/Ical.Net.Tests/Calendars/Serialization/EmptyLines3.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/EmptyLines3.ics rename to Ical.Net.Tests/Calendars/Serialization/EmptyLines3.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/EmptyLines4.ics b/Ical.Net.Tests/Calendars/Serialization/EmptyLines4.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/EmptyLines4.ics rename to Ical.Net.Tests/Calendars/Serialization/EmptyLines4.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Encoding1.ics b/Ical.Net.Tests/Calendars/Serialization/Encoding1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Encoding1.ics rename to Ical.Net.Tests/Calendars/Serialization/Encoding1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Encoding2.ics b/Ical.Net.Tests/Calendars/Serialization/Encoding2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Encoding2.ics rename to Ical.Net.Tests/Calendars/Serialization/Encoding2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Encoding3.ics b/Ical.Net.Tests/Calendars/Serialization/Encoding3.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Encoding3.ics rename to Ical.Net.Tests/Calendars/Serialization/Encoding3.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Event1.ics b/Ical.Net.Tests/Calendars/Serialization/Event1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Event1.ics rename to Ical.Net.Tests/Calendars/Serialization/Event1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Event2.ics b/Ical.Net.Tests/Calendars/Serialization/Event2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Event2.ics rename to Ical.Net.Tests/Calendars/Serialization/Event2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Event3.ics b/Ical.Net.Tests/Calendars/Serialization/Event3.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Event3.ics rename to Ical.Net.Tests/Calendars/Serialization/Event3.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Event4.ics b/Ical.Net.Tests/Calendars/Serialization/Event4.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Event4.ics rename to Ical.Net.Tests/Calendars/Serialization/Event4.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/GeographicLocation1.ics b/Ical.Net.Tests/Calendars/Serialization/GeographicLocation1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/GeographicLocation1.ics rename to Ical.Net.Tests/Calendars/Serialization/GeographicLocation1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Google1.ics b/Ical.Net.Tests/Calendars/Serialization/Google1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Google1.ics rename to Ical.Net.Tests/Calendars/Serialization/Google1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Language1.ics b/Ical.Net.Tests/Calendars/Serialization/Language1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Language1.ics rename to Ical.Net.Tests/Calendars/Serialization/Language1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Language2.ics b/Ical.Net.Tests/Calendars/Serialization/Language2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Language2.ics rename to Ical.Net.Tests/Calendars/Serialization/Language2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Language3.ics b/Ical.Net.Tests/Calendars/Serialization/Language3.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Language3.ics rename to Ical.Net.Tests/Calendars/Serialization/Language3.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Language4.ics b/Ical.Net.Tests/Calendars/Serialization/Language4.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Language4.ics rename to Ical.Net.Tests/Calendars/Serialization/Language4.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Outlook2007LineFolds.ics b/Ical.Net.Tests/Calendars/Serialization/Outlook2007LineFolds.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Outlook2007LineFolds.ics rename to Ical.Net.Tests/Calendars/Serialization/Outlook2007LineFolds.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/PARSE17.ics b/Ical.Net.Tests/Calendars/Serialization/PARSE17.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/PARSE17.ics rename to Ical.Net.Tests/Calendars/Serialization/PARSE17.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Parameter1.ics b/Ical.Net.Tests/Calendars/Serialization/Parameter1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Parameter1.ics rename to Ical.Net.Tests/Calendars/Serialization/Parameter1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Parameter2.ics b/Ical.Net.Tests/Calendars/Serialization/Parameter2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Parameter2.ics rename to Ical.Net.Tests/Calendars/Serialization/Parameter2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Parse1.ics b/Ical.Net.Tests/Calendars/Serialization/Parse1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Parse1.ics rename to Ical.Net.Tests/Calendars/Serialization/Parse1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/ProdID1.ics b/Ical.Net.Tests/Calendars/Serialization/ProdID1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/ProdID1.ics rename to Ical.Net.Tests/Calendars/Serialization/ProdID1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/ProdID2.ics b/Ical.Net.Tests/Calendars/Serialization/ProdID2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/ProdID2.ics rename to Ical.Net.Tests/Calendars/Serialization/ProdID2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Property1.ics b/Ical.Net.Tests/Calendars/Serialization/Property1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Property1.ics rename to Ical.Net.Tests/Calendars/Serialization/Property1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/RecurrenceDates1.ics b/Ical.Net.Tests/Calendars/Serialization/RecurrenceDates1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/RecurrenceDates1.ics rename to Ical.Net.Tests/Calendars/Serialization/RecurrenceDates1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/RequestStatus1.ics b/Ical.Net.Tests/Calendars/Serialization/RequestStatus1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/RequestStatus1.ics rename to Ical.Net.Tests/Calendars/Serialization/RequestStatus1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/TimeZone1.ics b/Ical.Net.Tests/Calendars/Serialization/TimeZone1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/TimeZone1.ics rename to Ical.Net.Tests/Calendars/Serialization/TimeZone1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/TimeZone2.ics b/Ical.Net.Tests/Calendars/Serialization/TimeZone2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/TimeZone2.ics rename to Ical.Net.Tests/Calendars/Serialization/TimeZone2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/TimeZone3.ics b/Ical.Net.Tests/Calendars/Serialization/TimeZone3.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/TimeZone3.ics rename to Ical.Net.Tests/Calendars/Serialization/TimeZone3.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Todo1.ics b/Ical.Net.Tests/Calendars/Serialization/Todo1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Todo1.ics rename to Ical.Net.Tests/Calendars/Serialization/Todo1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Todo2.ics b/Ical.Net.Tests/Calendars/Serialization/Todo2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Todo2.ics rename to Ical.Net.Tests/Calendars/Serialization/Todo2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Todo3.ics b/Ical.Net.Tests/Calendars/Serialization/Todo3.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Todo3.ics rename to Ical.Net.Tests/Calendars/Serialization/Todo3.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Todo4.ics b/Ical.Net.Tests/Calendars/Serialization/Todo4.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Todo4.ics rename to Ical.Net.Tests/Calendars/Serialization/Todo4.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Todo5.ics b/Ical.Net.Tests/Calendars/Serialization/Todo5.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Todo5.ics rename to Ical.Net.Tests/Calendars/Serialization/Todo5.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Todo6.ics b/Ical.Net.Tests/Calendars/Serialization/Todo6.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Todo6.ics rename to Ical.Net.Tests/Calendars/Serialization/Todo6.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Todo7.ics b/Ical.Net.Tests/Calendars/Serialization/Todo7.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Todo7.ics rename to Ical.Net.Tests/Calendars/Serialization/Todo7.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Transparency1.ics b/Ical.Net.Tests/Calendars/Serialization/Transparency1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Transparency1.ics rename to Ical.Net.Tests/Calendars/Serialization/Transparency1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Transparency2.ics b/Ical.Net.Tests/Calendars/Serialization/Transparency2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Transparency2.ics rename to Ical.Net.Tests/Calendars/Serialization/Transparency2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/Trigger1.ics b/Ical.Net.Tests/Calendars/Serialization/Trigger1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/Trigger1.ics rename to Ical.Net.Tests/Calendars/Serialization/Trigger1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/USHolidays.ics b/Ical.Net.Tests/Calendars/Serialization/USHolidays.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/USHolidays.ics rename to Ical.Net.Tests/Calendars/Serialization/USHolidays.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/XProperty1.ics b/Ical.Net.Tests/Calendars/Serialization/XProperty1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/XProperty1.ics rename to Ical.Net.Tests/Calendars/Serialization/XProperty1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Serialization/XProperty2.ics b/Ical.Net.Tests/Calendars/Serialization/XProperty2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Serialization/XProperty2.ics rename to Ical.Net.Tests/Calendars/Serialization/XProperty2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Todo/Todo1.ics b/Ical.Net.Tests/Calendars/Todo/Todo1.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Todo/Todo1.ics rename to Ical.Net.Tests/Calendars/Todo/Todo1.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Todo/Todo2.ics b/Ical.Net.Tests/Calendars/Todo/Todo2.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Todo/Todo2.ics rename to Ical.Net.Tests/Calendars/Todo/Todo2.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Todo/Todo3.ics b/Ical.Net.Tests/Calendars/Todo/Todo3.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Todo/Todo3.ics rename to Ical.Net.Tests/Calendars/Todo/Todo3.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Todo/Todo4.ics b/Ical.Net.Tests/Calendars/Todo/Todo4.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Todo/Todo4.ics rename to Ical.Net.Tests/Calendars/Todo/Todo4.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Todo/Todo5.ics b/Ical.Net.Tests/Calendars/Todo/Todo5.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Todo/Todo5.ics rename to Ical.Net.Tests/Calendars/Todo/Todo5.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Todo/Todo6.ics b/Ical.Net.Tests/Calendars/Todo/Todo6.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Todo/Todo6.ics rename to Ical.Net.Tests/Calendars/Todo/Todo6.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Todo/Todo7.ics b/Ical.Net.Tests/Calendars/Todo/Todo7.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Todo/Todo7.ics rename to Ical.Net.Tests/Calendars/Todo/Todo7.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Todo/Todo8.ics b/Ical.Net.Tests/Calendars/Todo/Todo8.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Todo/Todo8.ics rename to Ical.Net.Tests/Calendars/Todo/Todo8.ics diff --git a/src/Ical.Net.CoreUnitTests/Calendars/Todo/Todo9.ics b/Ical.Net.Tests/Calendars/Todo/Todo9.ics similarity index 100% rename from src/Ical.Net.CoreUnitTests/Calendars/Todo/Todo9.ics rename to Ical.Net.Tests/Calendars/Todo/Todo9.ics diff --git a/src/Ical.Net.CoreUnitTests/CollectionHelpersTests.cs b/Ical.Net.Tests/CollectionHelpersTests.cs similarity index 93% rename from src/Ical.Net.CoreUnitTests/CollectionHelpersTests.cs rename to Ical.Net.Tests/CollectionHelpersTests.cs index 363b5e059..f8c959c8c 100644 --- a/src/Ical.Net.CoreUnitTests/CollectionHelpersTests.cs +++ b/Ical.Net.Tests/CollectionHelpersTests.cs @@ -1,10 +1,10 @@ -using System; +using Ical.Net.DataTypes; +using NUnit.Framework; +using System; using System.Collections.Generic; using System.Linq; -using Ical.Net.DataTypes; -using NUnit.Framework; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { internal class CollectionHelpersTests { diff --git a/src/Ical.Net.CoreUnitTests/ComponentTest.cs b/Ical.Net.Tests/ComponentTest.cs similarity index 97% rename from src/Ical.Net.CoreUnitTests/ComponentTest.cs rename to Ical.Net.Tests/ComponentTest.cs index 1aceab32d..c9044090c 100644 --- a/src/Ical.Net.CoreUnitTests/ComponentTest.cs +++ b/Ical.Net.Tests/ComponentTest.cs @@ -1,9 +1,9 @@ -using System; using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; using NUnit.Framework; +using System; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { public class ComponentTest { diff --git a/src/Ical.Net.CoreUnitTests/ConcurrentDeserializationTests.cs b/Ical.Net.Tests/ConcurrentDeserializationTests.cs similarity index 88% rename from src/Ical.Net.CoreUnitTests/ConcurrentDeserializationTests.cs rename to Ical.Net.Tests/ConcurrentDeserializationTests.cs index 5a3b0838f..06a18f101 100644 --- a/src/Ical.Net.CoreUnitTests/ConcurrentDeserializationTests.cs +++ b/Ical.Net.Tests/ConcurrentDeserializationTests.cs @@ -1,8 +1,8 @@ -using System.Collections.Generic; +using NUnit.Framework; +using System.Collections.Generic; using System.Linq; -using NUnit.Framework; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { public class ConcurrentDeserializationTests { diff --git a/src/Ical.Net.CoreUnitTests/CopyTest.cs b/Ical.Net.Tests/CopyTest.cs similarity index 99% rename from src/Ical.Net.CoreUnitTests/CopyTest.cs rename to Ical.Net.Tests/CopyTest.cs index 04a544591..e2207a79b 100644 --- a/src/Ical.Net.CoreUnitTests/CopyTest.cs +++ b/Ical.Net.Tests/CopyTest.cs @@ -1,13 +1,13 @@ -using System; -using System.Collections.Generic; -using System.Text.RegularExpressions; using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; using Ical.Net.Serialization; using NUnit.Framework; using NUnit.Framework.Interfaces; +using System; +using System.Collections.Generic; +using System.Text.RegularExpressions; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { [TestFixture] public class CopyTest diff --git a/src/Ical.Net.CoreUnitTests/DataTypeTest.cs b/Ical.Net.Tests/DataTypeTest.cs similarity index 94% rename from src/Ical.Net.CoreUnitTests/DataTypeTest.cs rename to Ical.Net.Tests/DataTypeTest.cs index 00a34de41..d0190f8f7 100644 --- a/src/Ical.Net.CoreUnitTests/DataTypeTest.cs +++ b/Ical.Net.Tests/DataTypeTest.cs @@ -1,7 +1,7 @@ using Ical.Net.DataTypes; using NUnit.Framework; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { [TestFixture] public class DataTypeTest diff --git a/src/Ical.Net.CoreUnitTests/DateTimeSerializerTests.cs b/Ical.Net.Tests/DateTimeSerializerTests.cs similarity index 95% rename from src/Ical.Net.CoreUnitTests/DateTimeSerializerTests.cs rename to Ical.Net.Tests/DateTimeSerializerTests.cs index fa306d130..755f4ec64 100644 --- a/src/Ical.Net.CoreUnitTests/DateTimeSerializerTests.cs +++ b/Ical.Net.Tests/DateTimeSerializerTests.cs @@ -1,9 +1,9 @@ -using System; using Ical.Net.DataTypes; using Ical.Net.Serialization.DataTypes; using NUnit.Framework; +using System; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { [TestFixture] public class DateTimeSerializerTests diff --git a/src/Ical.Net.CoreUnitTests/DeserializationTests.cs b/Ical.Net.Tests/DeserializationTests.cs similarity index 99% rename from src/Ical.Net.CoreUnitTests/DeserializationTests.cs rename to Ical.Net.Tests/DeserializationTests.cs index f536ae2a1..57154f6da 100644 --- a/src/Ical.Net.CoreUnitTests/DeserializationTests.cs +++ b/Ical.Net.Tests/DeserializationTests.cs @@ -1,16 +1,16 @@ +using Ical.Net.CalendarComponents; +using Ical.Net.DataTypes; +using Ical.Net.Serialization; +using Ical.Net.Serialization.DataTypes; +using NUnit.Framework; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.Serialization; using System.Text; -using Ical.Net.CalendarComponents; -using Ical.Net.DataTypes; -using Ical.Net.Serialization; -using Ical.Net.Serialization.DataTypes; -using NUnit.Framework; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { [TestFixture, Category("Deserialization")] public class DeserializationTests diff --git a/src/Ical.Net.CoreUnitTests/DocumentationExamples.cs b/Ical.Net.Tests/DocumentationExamples.cs similarity index 98% rename from src/Ical.Net.CoreUnitTests/DocumentationExamples.cs rename to Ical.Net.Tests/DocumentationExamples.cs index 9dbfe8ff6..731d52943 100644 --- a/src/Ical.Net.CoreUnitTests/DocumentationExamples.cs +++ b/Ical.Net.Tests/DocumentationExamples.cs @@ -1,10 +1,10 @@ -using System; -using System.Collections.Generic; -using Ical.Net.CalendarComponents; +using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; using NUnit.Framework; +using System; +using System.Collections.Generic; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { public class DocumentationExamples { diff --git a/src/Ical.Net.CoreUnitTests/EqualityAndHashingTests.cs b/Ical.Net.Tests/EqualityAndHashingTests.cs similarity index 99% rename from src/Ical.Net.CoreUnitTests/EqualityAndHashingTests.cs rename to Ical.Net.Tests/EqualityAndHashingTests.cs index 6a69ad550..6059b7373 100644 --- a/src/Ical.Net.CoreUnitTests/EqualityAndHashingTests.cs +++ b/Ical.Net.Tests/EqualityAndHashingTests.cs @@ -1,15 +1,15 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using Ical.Net.CalendarComponents; +using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; using Ical.Net.Serialization; using Ical.Net.Utility; using NUnit.Framework; using NUnit.Framework.Interfaces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { public class EqualityAndHashingTests { @@ -185,10 +185,10 @@ public static IEnumerable Attendees_TestCases() SentBy = new Uri("mailto:someone@example.com"), DirectoryEntry = new Uri("ldap://example.com:6666/o=eDABC Industries,c=3DUS??(cn=3DBMary Accepted)"), Type = "CuType", - Members = new List { "Group A", "Group B"}, + Members = new List { "Group A", "Group B" }, Role = ParticipationRole.Chair, - DelegatedTo = new List { "Peon A", "Peon B"}, - DelegatedFrom = new List { "Bigwig A", "Bigwig B"} + DelegatedTo = new List { "Peon A", "Peon B" }, + DelegatedFrom = new List { "Bigwig A", "Bigwig B" } }; var complex2 = new Attendee("MAILTO:mary@example.com") { @@ -211,7 +211,7 @@ public void CalendarCollection_Tests(string rawCalendar) { var a = Calendar.Load(IcsFiles.UsHolidays); var b = Calendar.Load(IcsFiles.UsHolidays); - + Assert.IsNotNull(a); Assert.IsNotNull(b); Assert.AreEqual(a.GetHashCode(), b.GetHashCode()); @@ -457,7 +457,7 @@ private void TestComparison(Func calOp, Func. TestComparison((dt1, dt2) => dt1 == dt2, (i1, i2) => i1 == i2); TestComparison((dt1, dt2) => dt1 != dt2, (i1, i2) => i1 != i2); diff --git a/src/Ical.Net.CoreUnitTests/FreeBusyTest.cs b/Ical.Net.Tests/FreeBusyTest.cs similarity index 97% rename from src/Ical.Net.CoreUnitTests/FreeBusyTest.cs rename to Ical.Net.Tests/FreeBusyTest.cs index 39a8f7ef1..215b018b9 100644 --- a/src/Ical.Net.CoreUnitTests/FreeBusyTest.cs +++ b/Ical.Net.Tests/FreeBusyTest.cs @@ -2,7 +2,7 @@ using Ical.Net.DataTypes; using NUnit.Framework; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { [TestFixture] public class FreeBusyTest diff --git a/src/Ical.Net.CoreUnitTests/GetOccurrenceTests.cs b/Ical.Net.Tests/GetOccurrenceTests.cs similarity index 98% rename from src/Ical.Net.CoreUnitTests/GetOccurrenceTests.cs rename to Ical.Net.Tests/GetOccurrenceTests.cs index ab1b5e715..ee9c07aa2 100644 --- a/src/Ical.Net.CoreUnitTests/GetOccurrenceTests.cs +++ b/Ical.Net.Tests/GetOccurrenceTests.cs @@ -1,12 +1,12 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Ical.Net.CalendarComponents; +using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; using Ical.Net.Evaluation; using NUnit.Framework; +using System; +using System.Collections.Generic; +using System.Linq; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { internal class GetOccurrenceTests { diff --git a/src/Ical.Net.CoreUnitTests/Ical.Net.CoreUnitTests.csproj b/Ical.Net.Tests/Ical.Net.Tests.csproj similarity index 84% rename from src/Ical.Net.CoreUnitTests/Ical.Net.CoreUnitTests.csproj rename to Ical.Net.Tests/Ical.Net.Tests.csproj index 8c9e3af11..959b9e3fa 100644 --- a/src/Ical.Net.CoreUnitTests/Ical.Net.CoreUnitTests.csproj +++ b/Ical.Net.Tests/Ical.Net.Tests.csproj @@ -1,8 +1,6 @@  net8.0;net6.0;net5.0;netcoreapp3.1;net48 - true - ..\..\IcalNetStrongnameKey.snk diff --git a/src/Ical.Net.CoreUnitTests/IcsFiles.cs b/Ical.Net.Tests/IcsFiles.cs similarity index 99% rename from src/Ical.Net.CoreUnitTests/IcsFiles.cs rename to Ical.Net.Tests/IcsFiles.cs index 907c14e96..c61f4e819 100644 --- a/src/Ical.Net.CoreUnitTests/IcsFiles.cs +++ b/Ical.Net.Tests/IcsFiles.cs @@ -1,7 +1,7 @@ using System.IO; using System.Reflection; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { internal class IcsFiles { diff --git a/src/Ical.Net.CoreUnitTests/JournalTest.cs b/Ical.Net.Tests/JournalTest.cs similarity index 98% rename from src/Ical.Net.CoreUnitTests/JournalTest.cs rename to Ical.Net.Tests/JournalTest.cs index 25b479e30..452112994 100644 --- a/src/Ical.Net.CoreUnitTests/JournalTest.cs +++ b/Ical.Net.Tests/JournalTest.cs @@ -1,8 +1,8 @@ +using NUnit.Framework; using System; using System.Linq; -using NUnit.Framework; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { [TestFixture] public class JournalTest diff --git a/src/Ical.Net.CoreUnitTests/ProgramTest.cs b/Ical.Net.Tests/ProgramTest.cs similarity index 99% rename from src/Ical.Net.CoreUnitTests/ProgramTest.cs rename to Ical.Net.Tests/ProgramTest.cs index 4a2bc7510..d1ebcb183 100644 --- a/src/Ical.Net.CoreUnitTests/ProgramTest.cs +++ b/Ical.Net.Tests/ProgramTest.cs @@ -1,10 +1,10 @@ -using System; -using System.Linq; using Ical.Net.DataTypes; using Ical.Net.Utility; using NUnit.Framework; +using System; +using System.Linq; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { [TestFixture] public class ProgramTest diff --git a/src/Ical.Net.CoreUnitTests/RecurrenceTests.cs b/Ical.Net.Tests/RecurrenceTests.cs similarity index 99% rename from src/Ical.Net.CoreUnitTests/RecurrenceTests.cs rename to Ical.Net.Tests/RecurrenceTests.cs index edd524c27..898003a39 100644 --- a/src/Ical.Net.CoreUnitTests/RecurrenceTests.cs +++ b/Ical.Net.Tests/RecurrenceTests.cs @@ -1,10 +1,3 @@ -using System; -using System.Collections.Generic; -using System.Globalization; -using System.IO; -using System.Linq; -using System.Text.RegularExpressions; -using System.Threading; using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; using Ical.Net.Evaluation; @@ -13,8 +6,15 @@ using Ical.Net.Utility; using NUnit.Framework; using NUnit.Framework.Interfaces; +using System; +using System.Collections.Generic; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Text.RegularExpressions; +using System.Threading; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { [TestFixture] public class RecurrenceTests diff --git a/src/Ical.Net.CoreUnitTests/SerializationHelpers.cs b/Ical.Net.Tests/SerializationHelpers.cs similarity index 92% rename from src/Ical.Net.CoreUnitTests/SerializationHelpers.cs rename to Ical.Net.Tests/SerializationHelpers.cs index 12a398f5e..15a5fa811 100644 --- a/src/Ical.Net.CoreUnitTests/SerializationHelpers.cs +++ b/Ical.Net.Tests/SerializationHelpers.cs @@ -1,7 +1,7 @@ using Ical.Net.CalendarComponents; using Ical.Net.Serialization; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { internal class SerializationHelpers { diff --git a/src/Ical.Net.CoreUnitTests/SerializationTests.cs b/Ical.Net.Tests/SerializationTests.cs similarity index 99% rename from src/Ical.Net.CoreUnitTests/SerializationTests.cs rename to Ical.Net.Tests/SerializationTests.cs index 7aa6a19aa..3bbbcb7a3 100644 --- a/src/Ical.Net.CoreUnitTests/SerializationTests.cs +++ b/Ical.Net.Tests/SerializationTests.cs @@ -1,3 +1,9 @@ +using Ical.Net.CalendarComponents; +using Ical.Net.DataTypes; +using Ical.Net.Serialization; +using Ical.Net.Serialization.DataTypes; +using Ical.Net.Utility; +using NUnit.Framework; using System; using System.Collections; using System.Collections.Generic; @@ -5,14 +11,8 @@ using System.Linq; using System.Text; using System.Text.RegularExpressions; -using Ical.Net.CalendarComponents; -using Ical.Net.DataTypes; -using Ical.Net.Serialization; -using Ical.Net.Serialization.DataTypes; -using Ical.Net.Utility; -using NUnit.Framework; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { [TestFixture] public class SerializationTests @@ -314,7 +314,7 @@ public void AttendeesSerialized() evt.Organizer = new Organizer(org); evt.Attendees.AddRange(_attendees); - + // However a bug, when a participation value is changed, ultimately re-serialises as an array (PARTSTAT=ACCEPTED,DECLINED) evt.Attendees[0].ParticipationStatus = EventParticipationStatus.Declined; @@ -442,7 +442,7 @@ xt some tex�t some text. Assert.IsTrue(deserializedEvent.Description.Contains("�")); Assert.IsTrue(deserializedEvent.Description.Contains("�")); } - + [Test] public void TestStandardDaylightTimeZoneInfoDeserialization() { diff --git a/src/Ical.Net.CoreUnitTests/SimpleDeserializationTests.cs b/Ical.Net.Tests/SimpleDeserializationTests.cs similarity index 99% rename from src/Ical.Net.CoreUnitTests/SimpleDeserializationTests.cs rename to Ical.Net.Tests/SimpleDeserializationTests.cs index c7cb0def5..caf4c9f54 100644 --- a/src/Ical.Net.CoreUnitTests/SimpleDeserializationTests.cs +++ b/Ical.Net.Tests/SimpleDeserializationTests.cs @@ -1,16 +1,16 @@ -using System; +using Ical.Net.CalendarComponents; +using Ical.Net.DataTypes; +using Ical.Net.Serialization; +using Ical.Net.Serialization.DataTypes; +using NUnit.Framework; +using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.Serialization; using System.Text; -using Ical.Net.CalendarComponents; -using Ical.Net.DataTypes; -using Ical.Net.Serialization; -using Ical.Net.Serialization.DataTypes; -using NUnit.Framework; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { [TestFixture] public class SimpleDeserializationTests diff --git a/src/Ical.Net.CoreUnitTests/SymmetricSerializationTests.cs b/Ical.Net.Tests/SymmetricSerializationTests.cs similarity index 99% rename from src/Ical.Net.CoreUnitTests/SymmetricSerializationTests.cs rename to Ical.Net.Tests/SymmetricSerializationTests.cs index ec5590d4c..5af1def34 100644 --- a/src/Ical.Net.CoreUnitTests/SymmetricSerializationTests.cs +++ b/Ical.Net.Tests/SymmetricSerializationTests.cs @@ -1,15 +1,15 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using Ical.Net.CalendarComponents; +using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; using Ical.Net.Serialization; using NUnit.Framework; using NUnit.Framework.Interfaces; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { public class SymmetricSerializationTests { diff --git a/src/Ical.Net.CoreUnitTests/TextUtilTests.cs b/Ical.Net.Tests/TextUtilTests.cs similarity index 96% rename from src/Ical.Net.CoreUnitTests/TextUtilTests.cs rename to Ical.Net.Tests/TextUtilTests.cs index b25eb9989..bdfd858f4 100644 --- a/src/Ical.Net.CoreUnitTests/TextUtilTests.cs +++ b/Ical.Net.Tests/TextUtilTests.cs @@ -1,9 +1,9 @@ -using System.Collections.Generic; -using Ical.Net.Utility; +using Ical.Net.Utility; using NUnit.Framework; using NUnit.Framework.Interfaces; +using System.Collections.Generic; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { public class TextUtilTests { diff --git a/src/Ical.Net.CoreUnitTests/TodoTest.cs b/Ical.Net.Tests/TodoTest.cs similarity index 99% rename from src/Ical.Net.CoreUnitTests/TodoTest.cs rename to Ical.Net.Tests/TodoTest.cs index 83cc5b856..745dba04a 100644 --- a/src/Ical.Net.CoreUnitTests/TodoTest.cs +++ b/Ical.Net.Tests/TodoTest.cs @@ -1,10 +1,10 @@ -using System.Collections.Generic; -using System.Linq; using Ical.Net.DataTypes; using NUnit.Framework; using NUnit.Framework.Interfaces; +using System.Collections.Generic; +using System.Linq; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { [TestFixture] public class TodoTest diff --git a/src/Ical.Net.CoreUnitTests/VTimeZoneTest.cs b/Ical.Net.Tests/VTimeZoneTest.cs similarity index 99% rename from src/Ical.Net.CoreUnitTests/VTimeZoneTest.cs rename to Ical.Net.Tests/VTimeZoneTest.cs index f5d58ddca..be66269c0 100644 --- a/src/Ical.Net.CoreUnitTests/VTimeZoneTest.cs +++ b/Ical.Net.Tests/VTimeZoneTest.cs @@ -1,11 +1,11 @@ -using System; -using System.Collections.Generic; -using Ical.Net.CalendarComponents; +using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; using Ical.Net.Serialization; using NUnit.Framework; +using System; +using System.Collections.Generic; -namespace Ical.Net.CoreUnitTests +namespace Ical.Net.Tests { public class VTimeZoneTest { diff --git a/src/Ical.Net.sln b/Ical.Net.sln similarity index 82% rename from src/Ical.Net.sln rename to Ical.Net.sln index b4cba3a8d..cbe66c345 100644 --- a/src/Ical.Net.sln +++ b/Ical.Net.sln @@ -1,13 +1,24 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30406.217 +# Visual Studio Version 17 +VisualStudioVersion = 17.9.34407.89 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ical.Net", "Ical.Net\Ical.Net.csproj", "{71446356-D4EC-4141-B25C-4FAE6FA86265}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ical.Net.CoreUnitTests", "Ical.Net.CoreUnitTests\Ical.Net.CoreUnitTests.csproj", "{32252FAF-D2A8-4126-B6E7-F20CA2A22DCF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ical.Net.Tests", "Ical.Net.Tests\Ical.Net.Tests.csproj", "{32252FAF-D2A8-4126-B6E7-F20CA2A22DCF}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PerfTests", "PerfTests\PerfTests.csproj", "{A65F31A8-28ED-4B4C-B314-7E8D06F7FD2D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ical.Net.Benchmarks", "Ical.Net.Benchmarks\Ical.Net.Benchmarks.csproj", "{A65F31A8-28ED-4B4C-B314-7E8D06F7FD2D}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{0F456CA4-238D-4237-ADB8-1DB15822798F}" + ProjectSection(SolutionItems) = preProject + .editorconfig = .editorconfig + .gitattributes = .gitattributes + .gitignore = .gitignore + contributors.md = contributors.md + history.md = history.md + README.md = README.md + release-notes.md = release-notes.md + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/src/Ical.Net/Calendar.cs b/Ical.Net/Calendar.cs similarity index 100% rename from src/Ical.Net/Calendar.cs rename to Ical.Net/Calendar.cs diff --git a/src/Ical.Net/CalendarCollection.cs b/Ical.Net/CalendarCollection.cs similarity index 100% rename from src/Ical.Net/CalendarCollection.cs rename to Ical.Net/CalendarCollection.cs diff --git a/src/Ical.Net/CalendarComponents/Alarm.cs b/Ical.Net/CalendarComponents/Alarm.cs similarity index 100% rename from src/Ical.Net/CalendarComponents/Alarm.cs rename to Ical.Net/CalendarComponents/Alarm.cs diff --git a/src/Ical.Net/CalendarComponents/CalendarComponent.cs b/Ical.Net/CalendarComponents/CalendarComponent.cs similarity index 100% rename from src/Ical.Net/CalendarComponents/CalendarComponent.cs rename to Ical.Net/CalendarComponents/CalendarComponent.cs diff --git a/src/Ical.Net/CalendarComponents/CalendarEvent.cs b/Ical.Net/CalendarComponents/CalendarEvent.cs similarity index 100% rename from src/Ical.Net/CalendarComponents/CalendarEvent.cs rename to Ical.Net/CalendarComponents/CalendarEvent.cs diff --git a/src/Ical.Net/CalendarComponents/FreeBusy.cs b/Ical.Net/CalendarComponents/FreeBusy.cs similarity index 100% rename from src/Ical.Net/CalendarComponents/FreeBusy.cs rename to Ical.Net/CalendarComponents/FreeBusy.cs diff --git a/src/Ical.Net/CalendarComponents/IAlarmContainer.cs b/Ical.Net/CalendarComponents/IAlarmContainer.cs similarity index 100% rename from src/Ical.Net/CalendarComponents/IAlarmContainer.cs rename to Ical.Net/CalendarComponents/IAlarmContainer.cs diff --git a/src/Ical.Net/CalendarComponents/ICalendarComponent.cs b/Ical.Net/CalendarComponents/ICalendarComponent.cs similarity index 100% rename from src/Ical.Net/CalendarComponents/ICalendarComponent.cs rename to Ical.Net/CalendarComponents/ICalendarComponent.cs diff --git a/src/Ical.Net/CalendarComponents/IRecurrable.cs b/Ical.Net/CalendarComponents/IRecurrable.cs similarity index 100% rename from src/Ical.Net/CalendarComponents/IRecurrable.cs rename to Ical.Net/CalendarComponents/IRecurrable.cs diff --git a/src/Ical.Net/CalendarComponents/IRecurringComponent.cs b/Ical.Net/CalendarComponents/IRecurringComponent.cs similarity index 100% rename from src/Ical.Net/CalendarComponents/IRecurringComponent.cs rename to Ical.Net/CalendarComponents/IRecurringComponent.cs diff --git a/src/Ical.Net/CalendarComponents/IUniqueComponent.cs b/Ical.Net/CalendarComponents/IUniqueComponent.cs similarity index 100% rename from src/Ical.Net/CalendarComponents/IUniqueComponent.cs rename to Ical.Net/CalendarComponents/IUniqueComponent.cs diff --git a/src/Ical.Net/CalendarComponents/Journal.cs b/Ical.Net/CalendarComponents/Journal.cs similarity index 100% rename from src/Ical.Net/CalendarComponents/Journal.cs rename to Ical.Net/CalendarComponents/Journal.cs diff --git a/src/Ical.Net/CalendarComponents/RecurringComponent.cs b/Ical.Net/CalendarComponents/RecurringComponent.cs similarity index 100% rename from src/Ical.Net/CalendarComponents/RecurringComponent.cs rename to Ical.Net/CalendarComponents/RecurringComponent.cs diff --git a/src/Ical.Net/CalendarComponents/Todo.cs b/Ical.Net/CalendarComponents/Todo.cs similarity index 100% rename from src/Ical.Net/CalendarComponents/Todo.cs rename to Ical.Net/CalendarComponents/Todo.cs diff --git a/src/Ical.Net/CalendarComponents/UniqueComponent.cs b/Ical.Net/CalendarComponents/UniqueComponent.cs similarity index 100% rename from src/Ical.Net/CalendarComponents/UniqueComponent.cs rename to Ical.Net/CalendarComponents/UniqueComponent.cs diff --git a/src/Ical.Net/CalendarComponents/VTimeZone.cs b/Ical.Net/CalendarComponents/VTimeZone.cs similarity index 100% rename from src/Ical.Net/CalendarComponents/VTimeZone.cs rename to Ical.Net/CalendarComponents/VTimeZone.cs diff --git a/src/Ical.Net/CalendarExtensions.cs b/Ical.Net/CalendarExtensions.cs similarity index 100% rename from src/Ical.Net/CalendarExtensions.cs rename to Ical.Net/CalendarExtensions.cs diff --git a/src/Ical.Net/CalendarObject.cs b/Ical.Net/CalendarObject.cs similarity index 100% rename from src/Ical.Net/CalendarObject.cs rename to Ical.Net/CalendarObject.cs diff --git a/src/Ical.Net/CalendarObjectBase.cs b/Ical.Net/CalendarObjectBase.cs similarity index 100% rename from src/Ical.Net/CalendarObjectBase.cs rename to Ical.Net/CalendarObjectBase.cs diff --git a/src/Ical.Net/CalendarObjectExtensions.cs b/Ical.Net/CalendarObjectExtensions.cs similarity index 100% rename from src/Ical.Net/CalendarObjectExtensions.cs rename to Ical.Net/CalendarObjectExtensions.cs diff --git a/src/Ical.Net/CalendarObjectList.cs b/Ical.Net/CalendarObjectList.cs similarity index 100% rename from src/Ical.Net/CalendarObjectList.cs rename to Ical.Net/CalendarObjectList.cs diff --git a/src/Ical.Net/CalendarParameter.cs b/Ical.Net/CalendarParameter.cs similarity index 100% rename from src/Ical.Net/CalendarParameter.cs rename to Ical.Net/CalendarParameter.cs diff --git a/src/Ical.Net/CalendarProperty.cs b/Ical.Net/CalendarProperty.cs similarity index 100% rename from src/Ical.Net/CalendarProperty.cs rename to Ical.Net/CalendarProperty.cs diff --git a/src/Ical.Net/CalendarPropertyList.cs b/Ical.Net/CalendarPropertyList.cs similarity index 100% rename from src/Ical.Net/CalendarPropertyList.cs rename to Ical.Net/CalendarPropertyList.cs diff --git a/src/Ical.Net/Collections/GroupedList.cs b/Ical.Net/Collections/GroupedList.cs similarity index 100% rename from src/Ical.Net/Collections/GroupedList.cs rename to Ical.Net/Collections/GroupedList.cs diff --git a/src/Ical.Net/Collections/GroupedListEnumerator.cs b/Ical.Net/Collections/GroupedListEnumerator.cs similarity index 100% rename from src/Ical.Net/Collections/GroupedListEnumerator.cs rename to Ical.Net/Collections/GroupedListEnumerator.cs diff --git a/src/Ical.Net/Collections/GroupedValueList.cs b/Ical.Net/Collections/GroupedValueList.cs similarity index 100% rename from src/Ical.Net/Collections/GroupedValueList.cs rename to Ical.Net/Collections/GroupedValueList.cs diff --git a/src/Ical.Net/Collections/IGroupedCollection.cs b/Ical.Net/Collections/IGroupedCollection.cs similarity index 100% rename from src/Ical.Net/Collections/IGroupedCollection.cs rename to Ical.Net/Collections/IGroupedCollection.cs diff --git a/src/Ical.Net/Collections/IGroupedList.cs b/Ical.Net/Collections/IGroupedList.cs similarity index 100% rename from src/Ical.Net/Collections/IGroupedList.cs rename to Ical.Net/Collections/IGroupedList.cs diff --git a/src/Ical.Net/Collections/IGroupedObject.cs b/Ical.Net/Collections/IGroupedObject.cs similarity index 100% rename from src/Ical.Net/Collections/IGroupedObject.cs rename to Ical.Net/Collections/IGroupedObject.cs diff --git a/src/Ical.Net/Collections/IMultiLinkedList.cs b/Ical.Net/Collections/IMultiLinkedList.cs similarity index 100% rename from src/Ical.Net/Collections/IMultiLinkedList.cs rename to Ical.Net/Collections/IMultiLinkedList.cs diff --git a/src/Ical.Net/Collections/Interfaces/IValueObject.cs b/Ical.Net/Collections/Interfaces/IValueObject.cs similarity index 100% rename from src/Ical.Net/Collections/Interfaces/IValueObject.cs rename to Ical.Net/Collections/Interfaces/IValueObject.cs diff --git a/src/Ical.Net/Collections/MultiLinkedList.cs b/Ical.Net/Collections/MultiLinkedList.cs similarity index 100% rename from src/Ical.Net/Collections/MultiLinkedList.cs rename to Ical.Net/Collections/MultiLinkedList.cs diff --git a/src/Ical.Net/Collections/ObjectEventArgs.cs b/Ical.Net/Collections/ObjectEventArgs.cs similarity index 100% rename from src/Ical.Net/Collections/ObjectEventArgs.cs rename to Ical.Net/Collections/ObjectEventArgs.cs diff --git a/src/Ical.Net/Collections/Proxies/GroupedCollectionProxy.cs b/Ical.Net/Collections/Proxies/GroupedCollectionProxy.cs similarity index 100% rename from src/Ical.Net/Collections/Proxies/GroupedCollectionProxy.cs rename to Ical.Net/Collections/Proxies/GroupedCollectionProxy.cs diff --git a/src/Ical.Net/Collections/Proxies/GroupedValueListProxy.cs b/Ical.Net/Collections/Proxies/GroupedValueListProxy.cs similarity index 100% rename from src/Ical.Net/Collections/Proxies/GroupedValueListProxy.cs rename to Ical.Net/Collections/Proxies/GroupedValueListProxy.cs diff --git a/src/Ical.Net/Constants.cs b/Ical.Net/Constants.cs similarity index 100% rename from src/Ical.Net/Constants.cs rename to Ical.Net/Constants.cs diff --git a/src/Ical.Net/DataTypes/AlarmOccurrence.cs b/Ical.Net/DataTypes/AlarmOccurrence.cs similarity index 100% rename from src/Ical.Net/DataTypes/AlarmOccurrence.cs rename to Ical.Net/DataTypes/AlarmOccurrence.cs diff --git a/src/Ical.Net/DataTypes/Attachment.cs b/Ical.Net/DataTypes/Attachment.cs similarity index 100% rename from src/Ical.Net/DataTypes/Attachment.cs rename to Ical.Net/DataTypes/Attachment.cs diff --git a/src/Ical.Net/DataTypes/Attendee.cs b/Ical.Net/DataTypes/Attendee.cs similarity index 100% rename from src/Ical.Net/DataTypes/Attendee.cs rename to Ical.Net/DataTypes/Attendee.cs diff --git a/src/Ical.Net/DataTypes/CalDateTime.cs b/Ical.Net/DataTypes/CalDateTime.cs similarity index 100% rename from src/Ical.Net/DataTypes/CalDateTime.cs rename to Ical.Net/DataTypes/CalDateTime.cs diff --git a/src/Ical.Net/DataTypes/CalendarDataType.cs b/Ical.Net/DataTypes/CalendarDataType.cs similarity index 100% rename from src/Ical.Net/DataTypes/CalendarDataType.cs rename to Ical.Net/DataTypes/CalendarDataType.cs diff --git a/src/Ical.Net/DataTypes/EncodableDataType.cs b/Ical.Net/DataTypes/EncodableDataType.cs similarity index 100% rename from src/Ical.Net/DataTypes/EncodableDataType.cs rename to Ical.Net/DataTypes/EncodableDataType.cs diff --git a/src/Ical.Net/DataTypes/FreeBusyEntry.cs b/Ical.Net/DataTypes/FreeBusyEntry.cs similarity index 100% rename from src/Ical.Net/DataTypes/FreeBusyEntry.cs rename to Ical.Net/DataTypes/FreeBusyEntry.cs diff --git a/src/Ical.Net/DataTypes/GeographicLocation.cs b/Ical.Net/DataTypes/GeographicLocation.cs similarity index 100% rename from src/Ical.Net/DataTypes/GeographicLocation.cs rename to Ical.Net/DataTypes/GeographicLocation.cs diff --git a/src/Ical.Net/DataTypes/ICalendarDataType.cs b/Ical.Net/DataTypes/ICalendarDataType.cs similarity index 100% rename from src/Ical.Net/DataTypes/ICalendarDataType.cs rename to Ical.Net/DataTypes/ICalendarDataType.cs diff --git a/src/Ical.Net/DataTypes/ICalendarParameterCollectionContainer.cs b/Ical.Net/DataTypes/ICalendarParameterCollectionContainer.cs similarity index 100% rename from src/Ical.Net/DataTypes/ICalendarParameterCollectionContainer.cs rename to Ical.Net/DataTypes/ICalendarParameterCollectionContainer.cs diff --git a/src/Ical.Net/DataTypes/IDateTime.cs b/Ical.Net/DataTypes/IDateTime.cs similarity index 100% rename from src/Ical.Net/DataTypes/IDateTime.cs rename to Ical.Net/DataTypes/IDateTime.cs diff --git a/src/Ical.Net/DataTypes/IEncodableDataType.cs b/Ical.Net/DataTypes/IEncodableDataType.cs similarity index 100% rename from src/Ical.Net/DataTypes/IEncodableDataType.cs rename to Ical.Net/DataTypes/IEncodableDataType.cs diff --git a/src/Ical.Net/DataTypes/Occurrence.cs b/Ical.Net/DataTypes/Occurrence.cs similarity index 100% rename from src/Ical.Net/DataTypes/Occurrence.cs rename to Ical.Net/DataTypes/Occurrence.cs diff --git a/src/Ical.Net/DataTypes/Organizer.cs b/Ical.Net/DataTypes/Organizer.cs similarity index 100% rename from src/Ical.Net/DataTypes/Organizer.cs rename to Ical.Net/DataTypes/Organizer.cs diff --git a/src/Ical.Net/DataTypes/Period.cs b/Ical.Net/DataTypes/Period.cs similarity index 100% rename from src/Ical.Net/DataTypes/Period.cs rename to Ical.Net/DataTypes/Period.cs diff --git a/src/Ical.Net/DataTypes/PeriodList.cs b/Ical.Net/DataTypes/PeriodList.cs similarity index 100% rename from src/Ical.Net/DataTypes/PeriodList.cs rename to Ical.Net/DataTypes/PeriodList.cs diff --git a/src/Ical.Net/DataTypes/RecurrencePattern.cs b/Ical.Net/DataTypes/RecurrencePattern.cs similarity index 100% rename from src/Ical.Net/DataTypes/RecurrencePattern.cs rename to Ical.Net/DataTypes/RecurrencePattern.cs diff --git a/src/Ical.Net/DataTypes/RequestStatus.cs b/Ical.Net/DataTypes/RequestStatus.cs similarity index 100% rename from src/Ical.Net/DataTypes/RequestStatus.cs rename to Ical.Net/DataTypes/RequestStatus.cs diff --git a/src/Ical.Net/DataTypes/StatusCode.cs b/Ical.Net/DataTypes/StatusCode.cs similarity index 100% rename from src/Ical.Net/DataTypes/StatusCode.cs rename to Ical.Net/DataTypes/StatusCode.cs diff --git a/src/Ical.Net/DataTypes/Trigger.cs b/Ical.Net/DataTypes/Trigger.cs similarity index 100% rename from src/Ical.Net/DataTypes/Trigger.cs rename to Ical.Net/DataTypes/Trigger.cs diff --git a/src/Ical.Net/DataTypes/UTCOffset.cs b/Ical.Net/DataTypes/UTCOffset.cs similarity index 100% rename from src/Ical.Net/DataTypes/UTCOffset.cs rename to Ical.Net/DataTypes/UTCOffset.cs diff --git a/src/Ical.Net/DataTypes/WeekDay.cs b/Ical.Net/DataTypes/WeekDay.cs similarity index 100% rename from src/Ical.Net/DataTypes/WeekDay.cs rename to Ical.Net/DataTypes/WeekDay.cs diff --git a/src/Ical.Net/Evaluation/Evaluator.cs b/Ical.Net/Evaluation/Evaluator.cs similarity index 100% rename from src/Ical.Net/Evaluation/Evaluator.cs rename to Ical.Net/Evaluation/Evaluator.cs diff --git a/src/Ical.Net/Evaluation/EventEvaluator.cs b/Ical.Net/Evaluation/EventEvaluator.cs similarity index 100% rename from src/Ical.Net/Evaluation/EventEvaluator.cs rename to Ical.Net/Evaluation/EventEvaluator.cs diff --git a/src/Ical.Net/Evaluation/IEvaluator.cs b/Ical.Net/Evaluation/IEvaluator.cs similarity index 100% rename from src/Ical.Net/Evaluation/IEvaluator.cs rename to Ical.Net/Evaluation/IEvaluator.cs diff --git a/src/Ical.Net/Evaluation/PeriodListEvaluator.cs b/Ical.Net/Evaluation/PeriodListEvaluator.cs similarity index 100% rename from src/Ical.Net/Evaluation/PeriodListEvaluator.cs rename to Ical.Net/Evaluation/PeriodListEvaluator.cs diff --git a/src/Ical.Net/Evaluation/RecurrencePatternEvaluator.cs b/Ical.Net/Evaluation/RecurrencePatternEvaluator.cs similarity index 100% rename from src/Ical.Net/Evaluation/RecurrencePatternEvaluator.cs rename to Ical.Net/Evaluation/RecurrencePatternEvaluator.cs diff --git a/src/Ical.Net/Evaluation/RecurrenceUtil.cs b/Ical.Net/Evaluation/RecurrenceUtil.cs similarity index 100% rename from src/Ical.Net/Evaluation/RecurrenceUtil.cs rename to Ical.Net/Evaluation/RecurrenceUtil.cs diff --git a/src/Ical.Net/Evaluation/RecurringEvaluator.cs b/Ical.Net/Evaluation/RecurringEvaluator.cs similarity index 100% rename from src/Ical.Net/Evaluation/RecurringEvaluator.cs rename to Ical.Net/Evaluation/RecurringEvaluator.cs diff --git a/src/Ical.Net/Evaluation/TimeZoneEvaluator.cs b/Ical.Net/Evaluation/TimeZoneEvaluator.cs similarity index 100% rename from src/Ical.Net/Evaluation/TimeZoneEvaluator.cs rename to Ical.Net/Evaluation/TimeZoneEvaluator.cs diff --git a/src/Ical.Net/Evaluation/TimeZoneInfoEvaluator.cs b/Ical.Net/Evaluation/TimeZoneInfoEvaluator.cs similarity index 100% rename from src/Ical.Net/Evaluation/TimeZoneInfoEvaluator.cs rename to Ical.Net/Evaluation/TimeZoneInfoEvaluator.cs diff --git a/src/Ical.Net/Evaluation/TodoEvaluator.cs b/Ical.Net/Evaluation/TodoEvaluator.cs similarity index 100% rename from src/Ical.Net/Evaluation/TodoEvaluator.cs rename to Ical.Net/Evaluation/TodoEvaluator.cs diff --git a/src/Ical.Net/ICalendarObject.cs b/Ical.Net/ICalendarObject.cs similarity index 100% rename from src/Ical.Net/ICalendarObject.cs rename to Ical.Net/ICalendarObject.cs diff --git a/src/Ical.Net/ICalendarObjectList.cs b/Ical.Net/ICalendarObjectList.cs similarity index 100% rename from src/Ical.Net/ICalendarObjectList.cs rename to Ical.Net/ICalendarObjectList.cs diff --git a/src/Ical.Net/ICalendarProperty.cs b/Ical.Net/ICalendarProperty.cs similarity index 100% rename from src/Ical.Net/ICalendarProperty.cs rename to Ical.Net/ICalendarProperty.cs diff --git a/src/Ical.Net/ICalendarPropertyListContainer.cs b/Ical.Net/ICalendarPropertyListContainer.cs similarity index 100% rename from src/Ical.Net/ICalendarPropertyListContainer.cs rename to Ical.Net/ICalendarPropertyListContainer.cs diff --git a/src/Ical.Net/ICopyable.cs b/Ical.Net/ICopyable.cs similarity index 100% rename from src/Ical.Net/ICopyable.cs rename to Ical.Net/ICopyable.cs diff --git a/src/Ical.Net/IGetFreeBusy.cs b/Ical.Net/IGetFreeBusy.cs similarity index 100% rename from src/Ical.Net/IGetFreeBusy.cs rename to Ical.Net/IGetFreeBusy.cs diff --git a/src/Ical.Net/IGetOccurrences.cs b/Ical.Net/IGetOccurrences.cs similarity index 100% rename from src/Ical.Net/IGetOccurrences.cs rename to Ical.Net/IGetOccurrences.cs diff --git a/src/Ical.Net/ILoadable.cs b/Ical.Net/ILoadable.cs similarity index 100% rename from src/Ical.Net/ILoadable.cs rename to Ical.Net/ILoadable.cs diff --git a/src/Ical.Net/IMergeable.cs b/Ical.Net/IMergeable.cs similarity index 100% rename from src/Ical.Net/IMergeable.cs rename to Ical.Net/IMergeable.cs diff --git a/src/Ical.Net/IParameterCollection.cs b/Ical.Net/IParameterCollection.cs similarity index 100% rename from src/Ical.Net/IParameterCollection.cs rename to Ical.Net/IParameterCollection.cs diff --git a/src/Ical.Net/IServiceProvider.cs b/Ical.Net/IServiceProvider.cs similarity index 100% rename from src/Ical.Net/IServiceProvider.cs rename to Ical.Net/IServiceProvider.cs diff --git a/src/Ical.Net/Ical.Net.csproj b/Ical.Net/Ical.Net.csproj similarity index 68% rename from src/Ical.Net/Ical.Net.csproj rename to Ical.Net/Ical.Net.csproj index 5581a14e1..b9a96b22b 100644 --- a/src/Ical.Net/Ical.Net.csproj +++ b/Ical.Net/Ical.Net.csproj @@ -1,22 +1,19 @@  8 - 4.2.0 + 4.3.0 Ical.Net - https://github.com/rianjs/ical.net + https://github.com/laget-se/ical.net MIT - https://github.com/rianjs/ical.net + https://github.com/laget-se/ical.net hhttps://github.com/rianjs/ical.net/blob/master/release-notes.md - netstandard2.0;net50 + net8.0;net6.0;net5.0;netstandard2.1;netstandard2.0 Rian Stockbower, Douglas Day, & Contributors - - true - ..\..\IcalNetStrongnameKey.snk true full Ical.Net true - An iCalendar (RFC 5545) library. See https://github.com/rianjs/ical.net for details. + An iCalendar (RFC 5545) library. See https://github.com/laget-se/ical.net for details. bin\Release\Ical.Net.xml diff --git a/src/Ical.Net.nuspec b/Ical.Net/Ical.Net.nuspec similarity index 100% rename from src/Ical.Net.nuspec rename to Ical.Net/Ical.Net.nuspec diff --git a/src/Ical.Net/ParameterList.cs b/Ical.Net/ParameterList.cs similarity index 100% rename from src/Ical.Net/ParameterList.cs rename to Ical.Net/ParameterList.cs diff --git a/Ical.Net/Properties/AssemblyInfo.cs b/Ical.Net/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..3630ed283 --- /dev/null +++ b/Ical.Net/Properties/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; + +[assembly: InternalsVisibleTo("Ical.Net.Tests")] \ No newline at end of file diff --git a/src/Ical.Net/Proxies/CalendarObjectListProxy.cs b/Ical.Net/Proxies/CalendarObjectListProxy.cs similarity index 100% rename from src/Ical.Net/Proxies/CalendarObjectListProxy.cs rename to Ical.Net/Proxies/CalendarObjectListProxy.cs diff --git a/src/Ical.Net/Proxies/IUniqueComponentList.cs b/Ical.Net/Proxies/IUniqueComponentList.cs similarity index 100% rename from src/Ical.Net/Proxies/IUniqueComponentList.cs rename to Ical.Net/Proxies/IUniqueComponentList.cs diff --git a/src/Ical.Net/Proxies/ParameterCollectionProxy.cs b/Ical.Net/Proxies/ParameterCollectionProxy.cs similarity index 100% rename from src/Ical.Net/Proxies/ParameterCollectionProxy.cs rename to Ical.Net/Proxies/ParameterCollectionProxy.cs diff --git a/src/Ical.Net/Proxies/UniqueComponentListProxy.cs b/Ical.Net/Proxies/UniqueComponentListProxy.cs similarity index 100% rename from src/Ical.Net/Proxies/UniqueComponentListProxy.cs rename to Ical.Net/Proxies/UniqueComponentListProxy.cs diff --git a/src/Ical.Net/Serialization/CalendarComponentFactory.cs b/Ical.Net/Serialization/CalendarComponentFactory.cs similarity index 100% rename from src/Ical.Net/Serialization/CalendarComponentFactory.cs rename to Ical.Net/Serialization/CalendarComponentFactory.cs diff --git a/src/Ical.Net/Serialization/CalendarSerializer.cs b/Ical.Net/Serialization/CalendarSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/CalendarSerializer.cs rename to Ical.Net/Serialization/CalendarSerializer.cs diff --git a/src/Ical.Net/Serialization/ComponentSerializer.cs b/Ical.Net/Serialization/ComponentSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/ComponentSerializer.cs rename to Ical.Net/Serialization/ComponentSerializer.cs diff --git a/src/Ical.Net/Serialization/DataMapSerializer.cs b/Ical.Net/Serialization/DataMapSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataMapSerializer.cs rename to Ical.Net/Serialization/DataMapSerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypeMapper.cs b/Ical.Net/Serialization/DataTypeMapper.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypeMapper.cs rename to Ical.Net/Serialization/DataTypeMapper.cs diff --git a/src/Ical.Net/Serialization/DataTypeSerializerFactory.cs b/Ical.Net/Serialization/DataTypeSerializerFactory.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypeSerializerFactory.cs rename to Ical.Net/Serialization/DataTypeSerializerFactory.cs diff --git a/src/Ical.Net/Serialization/DataTypes/AttachmentSerializer.cs b/Ical.Net/Serialization/DataTypes/AttachmentSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/AttachmentSerializer.cs rename to Ical.Net/Serialization/DataTypes/AttachmentSerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypes/AttendeeSerializer.cs b/Ical.Net/Serialization/DataTypes/AttendeeSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/AttendeeSerializer.cs rename to Ical.Net/Serialization/DataTypes/AttendeeSerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypes/DataTypeSerializer.cs b/Ical.Net/Serialization/DataTypes/DataTypeSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/DataTypeSerializer.cs rename to Ical.Net/Serialization/DataTypes/DataTypeSerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypes/DateTimeSerializer.cs b/Ical.Net/Serialization/DataTypes/DateTimeSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/DateTimeSerializer.cs rename to Ical.Net/Serialization/DataTypes/DateTimeSerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypes/EncodableDataTypeSerializer.cs b/Ical.Net/Serialization/DataTypes/EncodableDataTypeSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/EncodableDataTypeSerializer.cs rename to Ical.Net/Serialization/DataTypes/EncodableDataTypeSerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypes/EnumSerializer.cs b/Ical.Net/Serialization/DataTypes/EnumSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/EnumSerializer.cs rename to Ical.Net/Serialization/DataTypes/EnumSerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypes/FreeBusyEntrySerializer.cs b/Ical.Net/Serialization/DataTypes/FreeBusyEntrySerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/FreeBusyEntrySerializer.cs rename to Ical.Net/Serialization/DataTypes/FreeBusyEntrySerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypes/GeographicLocationSerializer.cs b/Ical.Net/Serialization/DataTypes/GeographicLocationSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/GeographicLocationSerializer.cs rename to Ical.Net/Serialization/DataTypes/GeographicLocationSerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypes/IntegerSerializer.cs b/Ical.Net/Serialization/DataTypes/IntegerSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/IntegerSerializer.cs rename to Ical.Net/Serialization/DataTypes/IntegerSerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypes/OrganizerSerializer.cs b/Ical.Net/Serialization/DataTypes/OrganizerSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/OrganizerSerializer.cs rename to Ical.Net/Serialization/DataTypes/OrganizerSerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypes/PeriodListSerializer.cs b/Ical.Net/Serialization/DataTypes/PeriodListSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/PeriodListSerializer.cs rename to Ical.Net/Serialization/DataTypes/PeriodListSerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypes/PeriodSerializer.cs b/Ical.Net/Serialization/DataTypes/PeriodSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/PeriodSerializer.cs rename to Ical.Net/Serialization/DataTypes/PeriodSerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypes/RecurrencePatternSerializer.cs b/Ical.Net/Serialization/DataTypes/RecurrencePatternSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/RecurrencePatternSerializer.cs rename to Ical.Net/Serialization/DataTypes/RecurrencePatternSerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypes/RequestStatusSerializer.cs b/Ical.Net/Serialization/DataTypes/RequestStatusSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/RequestStatusSerializer.cs rename to Ical.Net/Serialization/DataTypes/RequestStatusSerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypes/StatusCodeSerializer.cs b/Ical.Net/Serialization/DataTypes/StatusCodeSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/StatusCodeSerializer.cs rename to Ical.Net/Serialization/DataTypes/StatusCodeSerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypes/StringSerializer.cs b/Ical.Net/Serialization/DataTypes/StringSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/StringSerializer.cs rename to Ical.Net/Serialization/DataTypes/StringSerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypes/TimeSpanSerializer.cs b/Ical.Net/Serialization/DataTypes/TimeSpanSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/TimeSpanSerializer.cs rename to Ical.Net/Serialization/DataTypes/TimeSpanSerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypes/TriggerSerializer.cs b/Ical.Net/Serialization/DataTypes/TriggerSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/TriggerSerializer.cs rename to Ical.Net/Serialization/DataTypes/TriggerSerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypes/UriSerializer.cs b/Ical.Net/Serialization/DataTypes/UriSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/UriSerializer.cs rename to Ical.Net/Serialization/DataTypes/UriSerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypes/UtcOffsetSerializer.cs b/Ical.Net/Serialization/DataTypes/UtcOffsetSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/UtcOffsetSerializer.cs rename to Ical.Net/Serialization/DataTypes/UtcOffsetSerializer.cs diff --git a/src/Ical.Net/Serialization/DataTypes/WeekDaySerializer.cs b/Ical.Net/Serialization/DataTypes/WeekDaySerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/DataTypes/WeekDaySerializer.cs rename to Ical.Net/Serialization/DataTypes/WeekDaySerializer.cs diff --git a/src/Ical.Net/Serialization/EncodingProvider.cs b/Ical.Net/Serialization/EncodingProvider.cs similarity index 100% rename from src/Ical.Net/Serialization/EncodingProvider.cs rename to Ical.Net/Serialization/EncodingProvider.cs diff --git a/src/Ical.Net/Serialization/EncodingStack.cs b/Ical.Net/Serialization/EncodingStack.cs similarity index 100% rename from src/Ical.Net/Serialization/EncodingStack.cs rename to Ical.Net/Serialization/EncodingStack.cs diff --git a/src/Ical.Net/Serialization/EventSerializer.cs b/Ical.Net/Serialization/EventSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/EventSerializer.cs rename to Ical.Net/Serialization/EventSerializer.cs diff --git a/src/Ical.Net/Serialization/GenericListSerializer.cs b/Ical.Net/Serialization/GenericListSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/GenericListSerializer.cs rename to Ical.Net/Serialization/GenericListSerializer.cs diff --git a/src/Ical.Net/Serialization/IEncodingProvider.cs b/Ical.Net/Serialization/IEncodingProvider.cs similarity index 100% rename from src/Ical.Net/Serialization/IEncodingProvider.cs rename to Ical.Net/Serialization/IEncodingProvider.cs diff --git a/src/Ical.Net/Serialization/ISerializer.cs b/Ical.Net/Serialization/ISerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/ISerializer.cs rename to Ical.Net/Serialization/ISerializer.cs diff --git a/src/Ical.Net/Serialization/ISerializerFactory.cs b/Ical.Net/Serialization/ISerializerFactory.cs similarity index 100% rename from src/Ical.Net/Serialization/ISerializerFactory.cs rename to Ical.Net/Serialization/ISerializerFactory.cs diff --git a/src/Ical.Net/Serialization/IStringSerializer.cs b/Ical.Net/Serialization/IStringSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/IStringSerializer.cs rename to Ical.Net/Serialization/IStringSerializer.cs diff --git a/src/Ical.Net/Serialization/ParameterSerializer.cs b/Ical.Net/Serialization/ParameterSerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/ParameterSerializer.cs rename to Ical.Net/Serialization/ParameterSerializer.cs diff --git a/src/Ical.Net/Serialization/PropertySerializer.cs b/Ical.Net/Serialization/PropertySerializer.cs similarity index 100% rename from src/Ical.Net/Serialization/PropertySerializer.cs rename to Ical.Net/Serialization/PropertySerializer.cs diff --git a/src/Ical.Net/Serialization/SerializationContext.cs b/Ical.Net/Serialization/SerializationContext.cs similarity index 100% rename from src/Ical.Net/Serialization/SerializationContext.cs rename to Ical.Net/Serialization/SerializationContext.cs diff --git a/src/Ical.Net/Serialization/SerializationUtil.cs b/Ical.Net/Serialization/SerializationUtil.cs similarity index 100% rename from src/Ical.Net/Serialization/SerializationUtil.cs rename to Ical.Net/Serialization/SerializationUtil.cs diff --git a/src/Ical.Net/Serialization/SerializerBase.cs b/Ical.Net/Serialization/SerializerBase.cs similarity index 100% rename from src/Ical.Net/Serialization/SerializerBase.cs rename to Ical.Net/Serialization/SerializerBase.cs diff --git a/src/Ical.Net/Serialization/SerializerFactory.cs b/Ical.Net/Serialization/SerializerFactory.cs similarity index 100% rename from src/Ical.Net/Serialization/SerializerFactory.cs rename to Ical.Net/Serialization/SerializerFactory.cs diff --git a/src/Ical.Net/Serialization/SimpleDeserializer.cs b/Ical.Net/Serialization/SimpleDeserializer.cs similarity index 100% rename from src/Ical.Net/Serialization/SimpleDeserializer.cs rename to Ical.Net/Serialization/SimpleDeserializer.cs diff --git a/src/Ical.Net/ServiceProvider.cs b/Ical.Net/ServiceProvider.cs similarity index 100% rename from src/Ical.Net/ServiceProvider.cs rename to Ical.Net/ServiceProvider.cs diff --git a/src/Ical.Net/Utility/CollectionHelpers.cs b/Ical.Net/Utility/CollectionHelpers.cs similarity index 100% rename from src/Ical.Net/Utility/CollectionHelpers.cs rename to Ical.Net/Utility/CollectionHelpers.cs diff --git a/src/Ical.Net/Utility/DateUtil.cs b/Ical.Net/Utility/DateUtil.cs similarity index 100% rename from src/Ical.Net/Utility/DateUtil.cs rename to Ical.Net/Utility/DateUtil.cs diff --git a/src/Ical.Net/Utility/TextUtil.cs b/Ical.Net/Utility/TextUtil.cs similarity index 100% rename from src/Ical.Net/Utility/TextUtil.cs rename to Ical.Net/Utility/TextUtil.cs diff --git a/src/Ical.Net/VTimeZoneInfo.cs b/Ical.Net/VTimeZoneInfo.cs similarity index 100% rename from src/Ical.Net/VTimeZoneInfo.cs rename to Ical.Net/VTimeZoneInfo.cs diff --git a/IcalNetStrongnameKey.snk b/IcalNetStrongnameKey.snk deleted file mode 100644 index 2bdd316bf1fc89e3be8a96c27c6e59628a73d31e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 596 zcmV-a0;~N80ssI2Bme+XQ$aES1ONa50097@_mKAicGWKX(nwc(+bJvJ(5%KUGAG3& z;%C-JXYvR56*k9vxg8e+8e03p)|}I|v$@HSsNXEpW9*QihB=`jI@bVs@AhWA!A$m7 zONpOK(CWr=$oFF@9I@b{FikfQQx%M}n6l>i?zCOE(X`ULx*wQUcE!p@0{XLO9W=k& z4Iq8 z<2{+Pq+%9kC7vh5`VKdXPo{KRAS`wfRcT@Z1`Gyg&)~Jo|IevG^c8 z34BFH<_#6LEnXj9aLfwXg@>bFV>|j)*@cx!|EdGIIt?%?QX(1PIm2+KWx< z9O@5kRTZ4oI`wBH`p$ODelm)E#B9CuTZ#q-+x&99l--O3?_`RSKY>4xI8C~pM@t$O iIuPqz>re8xiDD-@ag|waSYr0yMkUB;_SI45HF5|UT_er_ diff --git a/NugetTester/FrameworkConsole/App.config b/NugetTester/FrameworkConsole/App.config deleted file mode 100644 index b50c74f35..000000000 --- a/NugetTester/FrameworkConsole/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/NugetTester/FrameworkConsole/FrameworkConsole.cs b/NugetTester/FrameworkConsole/FrameworkConsole.cs deleted file mode 100644 index d18999afc..000000000 --- a/NugetTester/FrameworkConsole/FrameworkConsole.cs +++ /dev/null @@ -1,72 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Ical.Net; -using Ical.Net.CalendarComponents; -using Ical.Net.DataTypes; -using Ical.Net.Serialization; - -namespace FrameworkConsole -{ - class FrameworkConsole - { - static void Main(string[] args) - { - try - { - var c = new Calendar(); - c.Events.Add(GetSampleEvent()); - var serialized = SerializeToString(GetSampleEvent()); - Console.WriteLine(serialized); - - var unserialized = Calendar.Load(serialized).Events.First(); - Console.WriteLine(unserialized.Start); - - const string brokenIcal = @"BEGIN:VCALENDAR -PRODID:-//github.com/rianjs/ical.net//NONSGML ical.net 2.0//EN -VERSION:2.0 -BEGIN:VEVENT -DESCRIPTION:Foo -DTEND:20171115T045900Z -DTSTAMP:20171113T231608Z -DTSTART:20171114T140000Z -SEQUENCE:0 -SUMMARY:Blockchain For Wall Street -UID:7aa68f0e-adc5-4af2-80b9-429ef1f5f193 -END:VEVENT -END:VCALENDAR"; - - var deserializedBroken = Calendar.Load(brokenIcal); - var firstEvent = deserializedBroken.Events.First(); - Console.WriteLine(firstEvent.Start); - } - catch (Exception e) - { - Console.WriteLine(e.Message); - } - Console.ReadLine(); - } - - private static readonly DateTime _now = DateTime.Now; - private static readonly DateTime _later = _now.AddHours(1); - private static CalendarEvent GetSampleEvent() - { - var e = new CalendarEvent - { - Start = new CalDateTime(_now), - End = new CalDateTime(_later), - RecurrenceRules = new List { GetSampleRecurrenceRules() } - }; - return e; - } - - private static RecurrencePattern GetSampleRecurrenceRules() - => new RecurrencePattern(FrequencyType.Daily, 1); - - private static string SerializeToString(CalendarEvent calendarEvent) - => SerializeToString(new Calendar { Events = { calendarEvent } }); - - private static string SerializeToString(Calendar iCalendar) - => new CalendarSerializer().SerializeToString(iCalendar); - } -} diff --git a/NugetTester/FrameworkConsole/FrameworkConsole.csproj b/NugetTester/FrameworkConsole/FrameworkConsole.csproj deleted file mode 100644 index b07854392..000000000 --- a/NugetTester/FrameworkConsole/FrameworkConsole.csproj +++ /dev/null @@ -1,72 +0,0 @@ - - - - - Debug - AnyCPU - {A2EE82E3-1C20-4D39-97F8-A149520DAD79} - Exe - FrameworkConsole - FrameworkConsole - v4.6.2 - 512 - true - - - NU1603;NU1605 - win - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - ..\packages\System.Reflection.4.1.0\lib\net462\System.Reflection.dll - - - ..\packages\System.Reflection.TypeExtensions.4.1.0\lib\net462\System.Reflection.TypeExtensions.dll - - - - ..\packages\System.Runtime.Serialization.Primitives.4.3.0\lib\net46\System.Runtime.Serialization.Primitives.dll - - - - - - - - - - - - - - - - - - {f5fc48d2-8e37-4f75-974b-c6b0631d544a} - Ical.Net - - - - \ No newline at end of file diff --git a/NugetTester/FrameworkConsole/Properties/AssemblyInfo.cs b/NugetTester/FrameworkConsole/Properties/AssemblyInfo.cs deleted file mode 100644 index 3ab48340e..000000000 --- a/NugetTester/FrameworkConsole/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("FrameworkConsole")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Microsoft")] -[assembly: AssemblyProduct("FrameworkConsole")] -[assembly: AssemblyCopyright("Copyright © Microsoft 2017")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("a2ee82e3-1c20-4d39-97f8-a149520dad79")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/NugetTester/FrameworkConsole/packages.config b/NugetTester/FrameworkConsole/packages.config deleted file mode 100644 index 7cfce451f..000000000 --- a/NugetTester/FrameworkConsole/packages.config +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/NugetTester/NetCoreConsole/CoreConsole.cs b/NugetTester/NetCoreConsole/CoreConsole.cs deleted file mode 100644 index 7b4b1196a..000000000 --- a/NugetTester/NetCoreConsole/CoreConsole.cs +++ /dev/null @@ -1,71 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Ical.Net; -using Ical.Net.CalendarComponents; -using Ical.Net.DataTypes; -using Ical.Net.Serialization; - -namespace NetCoreConsole -{ - class CoreConsole - { - static void Main(string[] args) - { - try - { - var c = new Calendar(); - c.Events.Add(GetSampleEvent()); - var serialized = SerializeToString(GetSampleEvent()); - Console.WriteLine(serialized); - - var unserialized = Calendar.Load(serialized).Events.First(); - Console.WriteLine(unserialized.Start); - - const string brokenIcal = @"BEGIN:VCALENDAR -PRODID:-//github.com/rianjs/ical.net//NONSGML ical.net 2.0//EN -VERSION:2.0 -BEGIN:VEVENT -DESCRIPTION:Foo -DTEND:20171115T045900Z -DTSTAMP:20171113T231608Z -DTSTART:20171114T140000Z -SEQUENCE:0 -SUMMARY:Blockchain For Wall Street -UID:7aa68f0e-adc5-4af2-80b9-429ef1f5f193 -END:VEVENT -END:VCALENDAR"; - - var deserializedBroken = Calendar.Load(brokenIcal); - var firstEvent = deserializedBroken.Events.First(); - } - catch (Exception e) - { - Console.WriteLine(e.Message); - } - Console.ReadLine(); - } - - private static readonly DateTime _now = DateTime.Now; - private static readonly DateTime _later = _now.AddHours(1); - private static CalendarEvent GetSampleEvent() - { - var e = new CalendarEvent - { - Start = new CalDateTime(_now), - End = new CalDateTime(_later), - RecurrenceRules = new List { GetSampleRecurrenceRules() } - }; - return e; - } - - private static RecurrencePattern GetSampleRecurrenceRules() - => new RecurrencePattern(FrequencyType.Daily, 1); - - private static string SerializeToString(CalendarEvent calendarEvent) - => SerializeToString(new Calendar { Events = { calendarEvent } }); - - private static string SerializeToString(Calendar iCalendar) - => new CalendarSerializer().SerializeToString(iCalendar); - } -} diff --git a/NugetTester/NetCoreConsole/NetCoreConsole.csproj b/NugetTester/NetCoreConsole/NetCoreConsole.csproj deleted file mode 100644 index 7234e98be..000000000 --- a/NugetTester/NetCoreConsole/NetCoreConsole.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - - Exe - netcoreapp2.0 - - - - - - - diff --git a/NugetTester/NugetTester.sln b/NugetTester/NugetTester.sln deleted file mode 100644 index b150a682b..000000000 --- a/NugetTester/NugetTester.sln +++ /dev/null @@ -1,43 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27004.2008 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NetCoreConsole", "NetCoreConsole\NetCoreConsole.csproj", "{2DDF67AC-E9CA-4386-85B3-EAAF46B7CBF6}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FrameworkConsole", "FrameworkConsole\FrameworkConsole.csproj", "{A2EE82E3-1C20-4D39-97F8-A149520DAD79}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ical.Net", "..\net-core\Ical.Net\Ical.Net\Ical.Net.csproj", "{F5FC48D2-8E37-4F75-974B-C6B0631D544A}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NugetTester", "NugetTester\NugetTester.csproj", "{2FF63BDB-55DC-47A7-B60C-C6079F365DA1}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2DDF67AC-E9CA-4386-85B3-EAAF46B7CBF6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2DDF67AC-E9CA-4386-85B3-EAAF46B7CBF6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2DDF67AC-E9CA-4386-85B3-EAAF46B7CBF6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2DDF67AC-E9CA-4386-85B3-EAAF46B7CBF6}.Release|Any CPU.Build.0 = Release|Any CPU - {A2EE82E3-1C20-4D39-97F8-A149520DAD79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A2EE82E3-1C20-4D39-97F8-A149520DAD79}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A2EE82E3-1C20-4D39-97F8-A149520DAD79}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A2EE82E3-1C20-4D39-97F8-A149520DAD79}.Release|Any CPU.Build.0 = Release|Any CPU - {F5FC48D2-8E37-4F75-974B-C6B0631D544A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F5FC48D2-8E37-4F75-974B-C6B0631D544A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F5FC48D2-8E37-4F75-974B-C6B0631D544A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F5FC48D2-8E37-4F75-974B-C6B0631D544A}.Release|Any CPU.Build.0 = Release|Any CPU - {2FF63BDB-55DC-47A7-B60C-C6079F365DA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2FF63BDB-55DC-47A7-B60C-C6079F365DA1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2FF63BDB-55DC-47A7-B60C-C6079F365DA1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2FF63BDB-55DC-47A7-B60C-C6079F365DA1}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {764BB214-508D-4481-A526-8CFFC72073F2} - EndGlobalSection -EndGlobal diff --git a/NugetTester/NugetTester/App.config b/NugetTester/NugetTester/App.config deleted file mode 100644 index 314922a2e..000000000 --- a/NugetTester/NugetTester/App.config +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/NugetTester/NugetTester/NugetTester.csproj b/NugetTester/NugetTester/NugetTester.csproj deleted file mode 100644 index 24a01d61e..000000000 --- a/NugetTester/NugetTester/NugetTester.csproj +++ /dev/null @@ -1,67 +0,0 @@ - - - - - Debug - AnyCPU - {2FF63BDB-55DC-47A7-B60C-C6079F365DA1} - Exe - NugetTester - NugetTester - v4.6 - 512 - true - NU1603;NU1605 - win - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - ..\packages\Ical.Net.4.0.1\lib\netstandard1.3\Ical.Net.dll - - - ..\packages\NodaTime.2.0.2\lib\net45\NodaTime.dll - - - - - ..\packages\System.Reflection.TypeExtensions.4.3.0\lib\net46\System.Reflection.TypeExtensions.dll - - - - ..\packages\System.Runtime.Serialization.Primitives.4.3.0\lib\net46\System.Runtime.Serialization.Primitives.dll - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/NugetTester/NugetTester/Program.cs b/NugetTester/NugetTester/Program.cs deleted file mode 100644 index 78f53f0be..000000000 --- a/NugetTester/NugetTester/Program.cs +++ /dev/null @@ -1,72 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Ical.Net; -using Ical.Net.CalendarComponents; -using Ical.Net.DataTypes; -using Ical.Net.Serialization; - -namespace NugetTester -{ - class Program - { - static void Main(string[] args) - { - try - { - var c = new Calendar(); - c.Events.Add(GetSampleEvent()); - var serialized = SerializeToString(GetSampleEvent()); - Console.WriteLine(serialized); - - var unserialized = Calendar.Load(serialized).Events.First(); - Console.WriteLine(unserialized.Start); - - const string brokenIcal = @"BEGIN:VCALENDAR -PRODID:-//github.com/rianjs/ical.net//NONSGML ical.net 2.0//EN -VERSION:2.0 -BEGIN:VEVENT -DESCRIPTION:Foo -DTEND:20171115T045900Z -DTSTAMP:20171113T231608Z -DTSTART:20171114T140000Z -SEQUENCE:0 -SUMMARY:Blockchain For Wall Street -UID:7aa68f0e-adc5-4af2-80b9-429ef1f5f193 -END:VEVENT -END:VCALENDAR"; - - var deserializedBroken = Calendar.Load(brokenIcal); - var firstEvent = deserializedBroken.Events.First(); - Console.WriteLine(firstEvent.Start); - } - catch (Exception e) - { - Console.WriteLine(e.Message); - } - Console.ReadLine(); - } - - private static readonly DateTime _now = DateTime.Now; - private static readonly DateTime _later = _now.AddHours(1); - private static CalendarEvent GetSampleEvent() - { - var e = new CalendarEvent - { - Start = new CalDateTime(_now), - End = new CalDateTime(_later), - RecurrenceRules = new List { GetSampleRecurrenceRules() } - }; - return e; - } - - private static RecurrencePattern GetSampleRecurrenceRules() - => new RecurrencePattern(FrequencyType.Daily, 1); - - private static string SerializeToString(CalendarEvent calendarEvent) - => SerializeToString(new Calendar { Events = { calendarEvent } }); - - private static string SerializeToString(Calendar iCalendar) - => new CalendarSerializer().SerializeToString(iCalendar); - } -} diff --git a/NugetTester/NugetTester/Properties/AssemblyInfo.cs b/NugetTester/NugetTester/Properties/AssemblyInfo.cs deleted file mode 100644 index 5c813bf9b..000000000 --- a/NugetTester/NugetTester/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("NugetTester")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Microsoft")] -[assembly: AssemblyProduct("NugetTester")] -[assembly: AssemblyCopyright("Copyright © Microsoft 2017")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("2ff63bdb-55dc-47a7-b60c-c6079f365da1")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/NugetTester/NugetTester/packages.config b/NugetTester/NugetTester/packages.config deleted file mode 100644 index ff2cecd97..000000000 --- a/NugetTester/NugetTester/packages.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/assets/icon.png b/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..252b3ec6091d2810a17c0ae395fa55da14b1b87b GIT binary patch literal 4666 zcmZ8lc{r5c`+jGdn6dABmcfiHk!`YNFt%)yeM!h#XzWU2WS4|2*+Ph9&7NhXh%DJc zj5XPnER)@De189Zuj@VUInVW+=Xvk@y3TpddGA=Pp*AfQ7Zm^iw7NPNV{+eq-k=oZ zw=vO!lH9?(bgX;iF`e1U?_O74#ch<+%6V{{V*`Au^jTfKpfO;oI3149FbtY870-XuiAh+xM@ZyJ zF>X1@nWpFH&CyH~YIepwr;~3i{b)Ln^zXOVz|1Rc28i1KJ{TW{zdnWe7TR17{eRI( zj-R27xE{DhX)V`$OYO*#tiK*)7ZB3%r=wdrQAX|es6?-@YVn5QVZzMyQ~b_}$Zo+X zz3$~3E-}mx-iH+)Pjet%`x)K;B{;ru<235FN~nG3-O#2dlknz%4{G>&q!i~~0f$0y z?tXtucwrmr@=wXpWgk>>=m`}f*C33zy2qWfjcebqcqJE7g-pUvZUwOPrz^zp9PTD;?PYn(Y>~wsE$S#-V(O z6!-b%G6gWpgQhOZYt=8vz?7nT7VqpUxNp-Yx(4I*T$|PKj14jw#NZ2y8G-;8i#}aN zPZ+$p%{v_MOmLKL;s_a-)Wd%{UDDc459!9hL2!O_jUqf8$MDdxq&q5=#57m;<)w}g z8UiWd*)(M1{BF6}`WHTh`k{e8wU9~D!E->jS|@+=#rUZhIdwe#@VKKn@FGqW!3<*% z1BrI2`0qihHVhDqusnT$N9|sI3H6H@2o}*!914Q0{8c)4=;C>j`g7NX&c^NHWRC^T z{X*zv2XF?92i<%QTrzS6CjoH~w_U-|OKrBu15`T2 z5&d~GEkHKU-C;lnK~Mf7{<7^JRBFTgKLd!t-p&6$q|eKQP6GPr*nYIyAP-b+`aTPQ zQeXhcTB2oJggN>gTf7<>+oOyBZ%jV-Pv(=z3_Oj9)c}hy&CUGW3pr8E>?u4ClX~CA z3%b41{-3cma7_j5*NoRap9ieDPsy(coh3+wnF^j~5^TRf7&_X^RSkoY{mgSs@<9-e z>4^Uf`<{0}5Vzdk2mufaY;gYzT!}EOd;08MhWI&q-h-N%%Cj;DI^{v0q-HwmU@9-0 z6Q>JF)q#|@zCW#Fl^;DPM0iL@FBv9jZZLo3KKm2443-P*pGT%hi*U$_9nC?CT!}8Se9o&1o*Lj19 z?g!V?pNeO{);_#fhYft%@-Mib5#k#K;FK%=4f37nDbp9^)e}D7MQk5vFF%wiiaL=bz*0RG9eTU}9k0%!S+A*0uD&m21~NdS7Zp zK3q{};!jpvC^4e``RCbh%yPIzp%$oL-O(ly=(><~MM8PsW{3OMEo{@B(;T`bWk&IJ z9YABR6{rlE!pj4V$^)}FZYt)nX?=ylZXGkd+~sV4FRt4>w_Y^cjnIa1v^jX zRjW!Eo%@dno_-}s|e z9*k^Nmp5n%u-LjcYv1--9u@7oVq+9bLy)-jb;cU3d@9)*En8%>*3g`J$M%ZDa>Cpf z+E`BHSTI9kluCn>NY$pPY3;?0bx^BBM$Y|-falL8YVjlua4A^bN z;G~xlbQAIrl3q}z_ROMA<}(B3>)ljLLTD$*{)2=WCp1#V!^41{DoqyxV}OD3wBOd% zN3j{b{@XecPTsf}9dZp^HTb-H8f(T=Tliz-V%#A%BQ7&21!VuwYE;u{I~*<(9n+#} z_U(Qeqy#Q~`FTIfNhKZMRG&JEcV)XF9A!ozAnatGf3-LcO+h+Mb-pr#h)4`&K*XD? z+UVWAsuiwEg=E`Lhng=1N?AsAM49_arlmq+J}Ar6^v=-maeuD%fTTHDPGY`affhAn z&dl1=f}+l}aZHG5K4Zz-Vu>d;w23Ag!CEw0JVz8=5q3Bv2rdjnq|`DX_Eh#Mj(8{I z!~W{U5FfR4YvU4uAqIYJr(WwE82av&ji^%YEQ1^O_gM{Vt)5R7dVLgPYQF|jTwXP3 z@8}U2Mo?1rGs^?pQd0fce~6uQ3{KSm%pnY9)6@aq%GbK&HfGbZw>L=XcgCj#kJ;H>l8@qWRzbR+x-WPs)+3Rg;4oD7)4 zq_(VEB~NegDg6<~OA9-HA+pUE>4OV(@SNehZP&hre!8V6%UF-9R;c|P{|zJ7Pfkz04LGcTs5_u(J9v)cM zG4&ol)C)r2;3Ab0l)>eG!V({`^d~KdJ+IB;c8LZcYwI>2Nk=+N&i5QL1J4b--j*z* zFusby-8vG#1a4P1p?2Gaa!-Bu733H$k@60Lo)|>Gh-+$!Q&x<7TRR#S=%H&rmtEl6 zXAyw%uAPFsRJnyZXzeegE{ftW#3DUBIm{6Wq;Xig zd&o8*N4pjD|IE+Bd;G!ec52kCFSEWF;w#8&Ww6X4pxI>M&Y(XS?VzzqY8V88<6AUv zPoj=xn!qX&a}i(t!F{~>sL=mn0L#RC`JIeCmrdO=?IKd$8X2t9V^%ZC*#L=0ec!2* zb6H-ByMz42DiEp(UUk+&BUi}?0hU-f05@6qj%(IJd}L+i3W#4SFEXXSzYdyLbR|kq z%k&}X_;Dix8@SWd+VVKL8NxAZj+;4WC)mE-bXW(s^Q6ueaR@X`y-dnZisPOye{1_| zibaZZ2wl3gR0wcT?R{94%O#tFqt5$na*jy+8>qQi$&H6<&8?DUucpTa zP2=>&h(s!|n+3Hw#i9}E1I;Jf6DlQphd(UqBlj04%@0C0~FSBfPfd@W6AY~2S$<^toEe55o=x4m6YaY5G zM3afR>=)fcqBYolye;6Zt4?1)Z2GR3i{QJU7rZOt zCjY@S60@{4#td9tQB*=O!&|>UtDf$;BaAhhIvrhk!Pk3bD(xNmWmA(3M8ub!vr;vK z|MfFrVl2RDxl7;vt^1 zD1eVd3=lS5*vWu$;OK|Qq_L%Yoh^%o<>vkDNPLa=sLgyW!Xeb#Q0iX+7bSs|HP-m| z(kJp{A@oB7Si<1~#fQ(yoU?fM&kA#!6m<&Fq}HSC?iSZ4lbk{fwcGgxt8nZa!= zhwK_GEH1FHtq3D_$>rg;BNTg6OXX|B$Hug`&)@cYAF`GHpc$cfV$PiR`X9^vQ+>f{ zaEx5Ltsl^Ql1J;qQAAUL z4EKd#3XjV)y=)N~S+1-gQLP;fOw=r!Tf!Tk2*m|b-x(<}>t%{JoT^o58HW9C3%2GN z8clERw9JOoc_Qh+5E zChfGlhj-Dv$emj7ntsyefrk6~GNBc$`M4h>G7bSaD<0JX{i(uKahSanf6;4a;FSUX z9v{__7ZWt+GE@8O_Dwlco|t`nLY*J?qAnf^zWBI)SIL$7gB=EJ$vVMN@FOaQmqAL; zLI@9uF*cY7k``k12TPJFR5@S_+WQ23BNRQ?1Z)TICzO^gg#QI%ro7e8=#q3dR0_u6 z$g;tgV(9kt>zEMv{|z>GYfk!$dAUG3aKLsuLV+g|HMyLM<*bL!n^VlZMzGZA0-Me^ zJ(F%;B=yj%$FOGw8hl%n>f`D%j^Sc0!L5eYoeo2bMF;6baVoWcX(L~Gn3N|8;fo$c zyq*5pYS3lu>f$iCYF@qGuZ8YO==8Gk3#JlYG@3>I>5BPw^uW+wc6uSE^^CNFAPK8F z-L<64DGCdTB44Ii{9%Xr)ylfRbXd)?gV!Rh6qG6Kp}eGjOGZ^<2SdI|I^8cJ-S6?w zM3rgs*5XZscePc&OHH&Vl<~;|ADt?HuD-RZkS`H_|F}k_=Q-0#J@UOk6k`FXUap5Q zFw36PnINSVAI63e6IHR$UXRcKOO@_?$+yO;NZ(;W~KKOWUUGvQz&8`JIfd>l1 zS*{YUvc-z$u#RpKMwJF#OTXqRk2yM3Rw#gFch{s~9EOp(HA_(b+X-j+McI~7f;Z!` z_w+l?2GtG4KP8Fm>VG;L3_c%rqm1z9sskmvuMcOM_En$nPr;{MuX&L#9S)WnUaQ3(D(4?vns8pPA}$4URIu#hzuj6v5KNRN_+V&^p2fGh?9 Nx|)WV3U&J@{|E7de~$nF literal 0 HcmV?d00001 diff --git a/logo.png b/assets/logo.png similarity index 100% rename from logo.png rename to assets/logo.png diff --git a/nuget_logo_150px.png b/assets/nuget_logo_150px.png similarity index 100% rename from nuget_logo_150px.png rename to assets/nuget_logo_150px.png diff --git a/readme.md b/readme.md index 5f16e908e..b93cf2478 100644 --- a/readme.md +++ b/readme.md @@ -1,4 +1,8 @@ -![iCal.NET for .NET](logo.png) +# iCal.NET +> **Note** +> This repository has been forked from https://github.com/rianjs/ical.net and have been under a few changes, please read [Forking](#Forking)! + +![iCal.NET for .NET](assets/logo.png) iCal.NET is an iCalendar (RFC 5545) class library for .NET aimed at providing RFC 5545 compliance, while providing full compatibility with popular calendaring applications and libraries. @@ -37,6 +41,9 @@ ical.net uses [semantic versioning](http://semver.org/). In a nutshell: * [Contribute code by submitting a pull request](https://github.com/rianjs/ical.net/wiki/Contributing-a-(good)-pull-request) * [Ask a question](https://github.com/rianjs/ical.net/issues) +## Forking +This repository is a fork from https://github.com/rianjs/ical.net due to inactivity for merges of vital bug fixes and have been "re-written" to suit or code standard. + ## Support ical.net is a something I do in my spare time around my family, day job, friends, and other hobbies. That means support is "when I get to it". I recognize that sometimes this isn't good enough, especially if you have a production issue. To that end, I [offer paid support and bugfixes](http://rianjs.net/consulting). A few basic rules before you contact me: @@ -51,3 +58,5 @@ Please email me if paid support is something you require, and we can work out th ## Creative Commons iCal.NET logo adapted from [Love Calendar](https://thenounproject.com/term/love-calendar/116866/) By Sergey Demushkin, RU + +## Benchmarks \ No newline at end of file diff --git a/release-notes.md b/release-notes.md index ffa526b83..1ba2394a6 100644 --- a/release-notes.md +++ b/release-notes.md @@ -1,8 +1,13 @@ -## Release notes +## Release notes -A listing of what each [Nuget package](https://www.nuget.org/packages/Ical.Net) version represents. +A listing of what each [Nuget package](https://www.nuget.org/packages/laget.iCal) version represents. ### v4 +* 4.3.0 - (2024-01-19) + * Added target `net8.0`, `net6.0`, `netstandard2.1` + * Merged a few pull requests from the original repository that fixes a few bugs + * #584, #579, #571, #528, #525, #471, #470, #443 + * Changed NUnit to xUnit * 4.2.0 - (2021-04-10) - Many bugbixes from the community * Fix infinite loop with MaxDate for GetOccurrences #364 * Deserializes STANDARD and DAYLIGHT timezone infos #420 diff --git a/src/Ical.Net/Properties/AssemblyInfo.cs b/src/Ical.Net/Properties/AssemblyInfo.cs deleted file mode 100644 index 5fa22b67b..000000000 --- a/src/Ical.Net/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,4 +0,0 @@ -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("Ical.Net.CoreUnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a1f790f70176d52efbd248577bdb292be2d0acc62f3227c523e267d64767f207f81536c77bb91d17031a5afbc2d69cd3b5b3b9c98fa8df2cd363ec90a08639a1213ad70079eff666bcc14cf6574b899f4ad0eac672c8f763291cb1e0a2304d371053158cb398b2e6f9eeb45db7d1b4d2bbba1f985676c5ca4602fab3671d34bf")] -[assembly: InternalsVisibleTo("Ical.Net.FrameworkUnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a1f790f70176d52efbd248577bdb292be2d0acc62f3227c523e267d64767f207f81536c77bb91d17031a5afbc2d69cd3b5b3b9c98fa8df2cd363ec90a08639a1213ad70079eff666bcc14cf6574b899f4ad0eac672c8f763291cb1e0a2304d371053158cb398b2e6f9eeb45db7d1b4d2bbba1f985676c5ca4602fab3671d34bf")] \ No newline at end of file diff --git a/tooling/ical-net-rsharp.DotSettings.txt b/tooling/ical-net-rsharp.DotSettings.txt deleted file mode 100644 index 2836e908f..000000000 --- a/tooling/ical-net-rsharp.DotSettings.txt +++ /dev/null @@ -1,152 +0,0 @@ - - True - Default: Reformat Code - True - TOGETHER_SAME_LINE - ALWAYS_ADD - ALWAYS_ADD - ALWAYS_ADD - ALWAYS_ADD - ALWAYS_ADD - ALWAYS_ADD - False - True - 160 - CHOP_ALWAYS - True - False - False - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aa_bb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aa_bb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aa_bb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aa_bb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aa_bb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aa_bb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aa_bb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aa_bb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aa_bb" /> - <Policy Inspect="True" Prefix="set_" Suffix="" Style="aa_bb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aa_bb" /> - <Policy Inspect="True" Prefix="" Suffix="_" Style="aa_bb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aa_bb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aa_bb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aa_bb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aa_bb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aa_bb" /> - - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" /> - - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AA_BB" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/tooling/ical-net.vssettings b/tooling/ical-net.vssettings deleted file mode 100644 index 1a439701e..000000000 --- a/tooling/ical-net.vssettings +++ /dev/null @@ -1,134 +0,0 @@ -falsetruetruefalsetruefalsetruetruetrue10truetruetruefalseC:\gittruefalsefalse44trueC:\gittruetrue101C:\gittrue8truetruefalsetruetruetruetruetruefalsefalseHACK:2TODO:2UNDONE:2UnresolvedMergeConflict:3falsefalsehttp://go.microsoft.com/fwlink/?LinkId=36568&clcid=%vsspv_lcid_hex%1%systemroot%\system32\notepad.exehttp://go.microsoft.com/fwlink/?LinkId=32722&clcid=%vsspv_lcid_hex%56553510truetruetruetruefalsetrue105true60 - 0 - 1 - 0 - 1 - - .cpp;.cxx;.cc;.c;.inl;.h;.hh;.hpp;.hxx;.hm;.inc;.rc;.resx;.idl;.rc2;.def;.odl;.asm;.asmx;.xsd;.bin;.rgs;.html;.htm;.manifest - - false - .suo;.sln;.ncb;.sdf;.vcxproj;.csproj;.user;.vbproj;.scc;.vsscc;.vspscc;.old;.filters - 0 - false - 0 - true - 4truetruetruetrue1truetruefalsetruefalsetruetruetruetruetruetrue58falsefalse4falsetruetruetrue4truetruetruetrue1truetruefalsetruefalsetruetruetruetruetruetrue58falsefalse4falsetruetruetrue4truetruetruetrue1truetruefalsetruetruetruetruetruefalsetruetrue58falsefalse4falsetruetruetrueImplicit (Windows)|$(VSInstallDir)\JavaScript\References\libhelp.js|$(VSInstallDir)\JavaScript\References\domWindows.js|$(VSInstallDir)\JavaScript\References\underscorefilter.js|$(VSInstallDir)\JavaScript\References\showPlainComments.js;Implicit (Windows 8.1)|$(VSInstallDir)\JavaScript\References\libhelp.js|$(VSInstallDir)\JavaScript\References\sitetypesWindows.js|$(VSInstallDir)\JavaScript\References\domWindows_8.1.js|$(VSInstallDir)\JavaScript\References\underscorefilter.js|$(VSInstallDir)\JavaScript\References\showPlainComments.js;Implicit (Windows Phone 8.1)|$(VSInstallDir)\JavaScript\References\libhelp.js|$(VSInstallDir)\JavaScript\References\sitetypesWindows.js|$(VSInstallDir)\JavaScript\References\domWindowsPhone_8.1.js|$(VSInstallDir)\JavaScript\References\underscorefilter.js|$(VSInstallDir)\JavaScript\References\showPlainComments.js;Implicit (Web)|$(VSInstallDir)\JavaScript\References\libhelp.js|$(VSInstallDir)\JavaScript\References\sitetypesWeb.js|$(VSInstallDir)\JavaScript\References\domWeb.js|$(VSInstallDir)\JavaScript\References\underscorefilter.js|$(VSInstallDir)\JavaScript\References\showPlainComments.js;Dedicated Worker|$(VSInstallDir)\JavaScript\References\libhelp.js|$(VSInstallDir)\JavaScript\References\dedicatedworker.js|$(VSInstallDir)\JavaScript\References\underscorefilter.js|$(VSInstallDir)\JavaScript\References\showPlainComments.js;Generic|$(VSInstallDir)\JavaScript\References\libhelp.js|$(VSInstallDir)\JavaScript\References\underscorefilter.js|$(VSInstallDir)\JavaScript\References\showPlainComments.js;falsetruetruefalsetruetruetruetruefalsetruetruetruetruefalsetruetrue - false - true - true - true - false - true - true - true - true - false - true - false - true - false - false - false - true - 4truetruetruetrue2truetruefalsetruefalsetruetruefalsefalsetruetrue58truefalse4truetruetruetrue4truetruetruetrue2truetruefalsetruefalsetruetruefalsefalsetruetrue58truefalse4truetruetruetrue2truetrue10truefalse2falsefalse0true2false2truefalsefalsetruefalsetruefalse1truetruefalse0falsetrue{}[]().,:;+-*/%&|^!=<>?@#\falsefalsefalsetruetruefalse0truefalsetruefalsefalsetruefalsefalse0truetruefalsefalsefalsefalsetruefalsefalse2falsefalsefalsefalsefalsefalsefalsetruefalsetruefalsefalsetruefalsefalsefalse1truefalse5falsetruetruetruefalsefalse0falsefalse3truefalsefalse60falsefalsefalsetruefalsefalsefalsefalse2falsefalsetruetruetruefalse55falsetruetruetruefalsefalsefalsetruefalsefalsetruefalsetruetruetruefalse1truefalsefalsefalsefalse0falsefalsefalsefalsetrue2falsefalse16244681013027014130030571648769114413810003575607202202157245271502431557746900202000-1-17257087123839990128jpg080gif99915000-12083886165-1750-11317273516765887200-1-104294967295201001128954521521676031116750848210033012865075201800-114145511216768975072570870text/html;text/x-jquery-tmpl;text/template;text/x-handlebars;text/x-handlebars-template;text/x-jsrender1673925816777215090HTML5010500-120111190170100112167508481200-14truetruetruetrue2truefalsetruetruefalsetruetruefalsetruetruetrue58truefalse4truetruetruetrue4truetruetruetrue2truetruetruetruefalsetruetruetruetruetruetrue58truefalse4truetruetruetrue4truetruetruetrue1truetruefalsetruefalsetruetruefalsetruetruetrue58truefalse4falsetruetruetrue1111111101110110111000110001101111110121100000011010011110110110110001014truetruetruetrue2truetruetruetruefalsetruetruefalsetruetruetrue58truefalse4truetruetruetrue4truetruetruetrue1truetruefalsetruefalsetruetruefalsetruefalsetrue58truefalse4truetruetruetruetruetrue0truetruefalsetruefalsetruetrue4truetruetruetrue2truetruefalsetruefalsetruetruefalsetruetruetrue58truefalse4truetruetruetrue4truetruetruetrue2truetruetruetruefalsetruetruefalsetruetruetrue58truefalse4truetruetruetrue4truetruetruetrue2truetruetruetruefalsetruetruefalsetruetruetrue58truefalse4truetruetruetrue4truetruetruetrue2truetruetruetruefalsetruetruefalsetruetruetrue58truefalse4truetruetruetrue4truetruetruetrue2truetruetruetruefalsetruetruefalsefalsetruetrue58truefalse4falsetruetruetrue4truetruetruetrue1truetruefalsetruefalsetruetruetruetruetruetrue58truefalse4falsetruetruetrue4truetruetruetrue1truetruefalsetruefalsetruetruetruetruetruetrue58truefalse4truetruetruetrue4truetruetruetrue2truetruefalsetruefalsetruetruefalsetruefalsetrue58truefalse4falsetruetruetrue2truetruetruetrue2truetruefalsetruefalsetruetruefalsetruetruetrue58truefalse2falsetruetruetruetruetruetruetruefalsetruetruetruetruefalsefalsetruetruetruetrue4truetruetruetrue2truetruetruetruefalsetruetruefalsetruetruetrue58truefalse4truetruetruetrue - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 345falsetruefalse7Design|Debug|NoToolWintruefalsetruetruetruetruefalsefalsefalsetruefalsefalsefalsefalsetruetruetruetruefalsefalsetruetruefalsetruefalsefalsetruefalse00True<ExtensionRepositoryConfigList Capacity="0" xmlns="clr-namespace:Microsoft.VisualStudio.ExtensionManager;assembly=Microsoft.VisualStudio.ExtensionManager.Implementation" />Truefalsetruefalse2{B1BA9461-FC54-45B3-A484-CB6DD0B95C94}0trueVC#falsefalsefalsetruefalsefalsefalsetruefalsefalsefalsefalsetruetruetruetruefalsefalsetruetruefalsetruefalse{B1BA9461-FC54-45B3-A484-CB6DD0B95C94}0VC#false11truefalsetruetrueFalseFalseTrueTrueTrueTrueFalseFalseTrueFalsefalse10000MatchCase=0 WholeWord=0 Hidden=1 Up=0 Selection=0 Block=0 KeepCase=0 SubFolders=0 KeepOpen=0 NameOnly=0 Append=0 Plain Document FindMatchCase=0 WholeWord=0 Hidden=1 Up=0 Selection=0 Block=0 KeepCase=0 SubFolders=1 KeepOpen=0 NameOnly=0 Append=0 Plain Solution FindAllMatchCase=0 WholeWord=0 Hidden=1 Up=0 Selection=0 Block=0 KeepCase=0 SubFolders=0 KeepOpen=0 NameOnly=0 Append=0 Plain Document Find111111111110111Regex014.0.0.0Ctrl+E, Ctrl+PCtrl+E, MCtrl+E, ECtrl+E, Ctrl+ECtrl+E, Ctrl+EnterAlt+Down ArrowAlt+Up ArrowCtrl+Shift+Alt+RCtrl+Alt+DAlt+Down ArrowAlt+Up ArrowAlt+F5Ctrl+R, MCtrl+R, MCtrl+R, Ctrl+MCtrl+R, Ctrl+MAlt+F5Ctrl+Alt+F5Ctrl+R, RCtrl+Alt+Down ArrowCtrl+Alt+Up ArrowCtrl+Alt+RCtrl+Shift+QCtrl+R, ECtrl+R, ECtrl+R, Ctrl+ECtrl+R, Ctrl+EAlt+EndShift+Alt+PgDnShift+Alt+PgDnShift+Alt+PgDnCtrl+Shift+ECtrl+R, RCtrl+R, RCtrl+R, Ctrl+RCtrl+R, Ctrl+RCtrl+Shift+ECtrl+Alt+QCtrl+E, ACtrl+E, Ctrl+ACtrl+E, \Ctrl+E, Ctrl+\Ctrl+E, SCtrl+E, Ctrl+SCtrl+E, Ctrl+WCtrl+E, WCtrl+E, DCtrl+E, Ctrl+DCtrl+BCtrl+Shift+F6Ctrl+Alt+CShift+Alt+LShift+Alt+LShift+Alt+LShift+Alt+LAlt+Down ArrowAlt+Down ArrowAlt+Up ArrowAlt+Up ArrowCtrl+TCtrl+TCtrl+TCtrl+TCtrl+[Ctrl+Shift+[Ctrl+1Ctrl+1Ctrl+1Ctrl+1Ctrl+1Ctrl+1Ctrl+2Ctrl+2Ctrl+2Ctrl+2Ctrl+2Ctrl+3Ctrl+3Ctrl+3Ctrl+3Ctrl+4Ctrl+4Ctrl+4Ctrl+5Ctrl+6Ctrl+E, Ctrl+CCtrl+E, CCtrl+Shift+,Ctrl+UCtrl+UCtrl+RCtrl+RCtrl+RCtrl+Shift+Alt+PCtrl+E, FCtrl+E, Ctrl+FCtrl+BCtrl+BCtrl+BCtrl+Alt+Up ArrowCtrl+Alt+Down ArrowShift+Alt+LAlt+Down ArrowAlt+Down ArrowAlt+Up ArrowAlt+Up ArrowCtrl+Shift+NCtrl+E, Ctrl+PCtrl+E, PCtrl+E, Ctrl+ECtrl+E, ECtrl+E, Ctrl+YCtrl+E, YCtrl+E, Ctrl+RCtrl+E, RCtrl+E, Ctrl+XCtrl+E, XCtrl+E, Ctrl+ACtrl+E, ACtrl+E, Ctrl+VCtrl+E, VCtrl+E, Ctrl+ICtrl+E, ICtrl+E, Ctrl+OCtrl+E, OCtrl+E, Ctrl+NCtrl+E, NCtrl+E, Ctrl+MCtrl+E, MCtrl+E, Ctrl+SCtrl+E, SF12Alt+PgDnAlt+EndAlt+HomeAlt+PgUpCtrl+R, RAlt+HomeCtrl+Alt+K, Ctrl+Alt+HCtrl+Alt+K, HCtrl+Alt+K, HCtrl+Alt+K, Ctrl+Alt+HCtrl+Alt+K, Ctrl+Alt+HCtrl+Alt+K, HAlt+OAlt+OAlt+OCtrl+Shift+/Ctrl+Shift+/Ctrl+`Ctrl+`Ctrl+`Ctrl+R, Ctrl+SCtrl+R, SCtrl+R, SCtrl+R, SCtrl+R, Ctrl+SCtrl+R, Ctrl+SShift+Alt+SpaceShift+Alt+SpaceCtrl+Alt+K, Ctrl+Alt+KCtrl+Alt+K, KCtrl+Alt+K, KCtrl+Alt+K, KCtrl+Alt+K, Ctrl+Alt+KCtrl+Alt+K, Ctrl+Alt+KCtrl+Alt+K, PCtrl+Alt+K, PCtrl+Alt+K, PCtrl+Alt+K, Ctrl+Alt+PCtrl+Alt+K, Ctrl+Alt+PCtrl+Alt+K, Ctrl+Alt+PCtrl+DCtrl+DCtrl+Alt+K, FCtrl+Alt+K, FCtrl+Alt+K, FCtrl+Alt+K, Ctrl+Alt+FCtrl+Alt+K, Ctrl+Alt+FCtrl+Alt+K, Ctrl+Alt+FCtrl+R, ECtrl+R, ECtrl+R, Ctrl+ECtrl+R, ECtrl+R, Ctrl+ECtrl+R, Ctrl+ECtrl+Alt+Right ArrowCtrl+Alt+Right ArrowCtrl+R, Ctrl+MCtrl+R, MCtrl+R, Ctrl+MCtrl+R, MCtrl+R, MCtrl+R, Ctrl+MCtrl+Shift+Alt+F12Ctrl+Shift+Alt+F12Ctrl+Shift+Alt+F12Alt+InsAlt+InsAlt+InsCtrl+Alt+InsCtrl+Alt+InsCtrl+Alt+InsCtrl+Shift+ACtrl+Shift+ACtrl+Shift+ACtrl+[Ctrl+[Alt+\Alt+\Alt+\Alt+EndAlt+EndAlt+EndCtrl+Shift+BkspceCtrl+Shift+BkspceCtrl+Shift+BkspceShift+Alt+PgDnShift+Alt+PgDnShift+Alt+PgDnAlt+PgDnAlt+PgDnAlt+PgDnAlt+Down ArrowAlt+Down ArrowAlt+Down ArrowShift+Alt+PgUpShift+Alt+PgUpShift+Alt+PgUpAlt+PgUpAlt+PgUpAlt+PgUpAlt+Up ArrowAlt+Up ArrowAlt+Up ArrowCtrl+Shift+,Ctrl+Shift+,Ctrl+Shift+,Ctrl+,Ctrl+,Ctrl+,Shift+Alt+TShift+Alt+TShift+Alt+TCtrl+Shift+F11Ctrl+Shift+F11Ctrl+Shift+F11Shift+Alt+F11Shift+Alt+F11Shift+Alt+F11Ctrl+R, Ctrl+ICtrl+R, ICtrl+R, ICtrl+R, Ctrl+ICtrl+Shift+Alt+ACtrl+Shift+Alt+ACtrl+Shift+Alt+ACtrl+R, Ctrl+FCtrl+R, FCtrl+R, FCtrl+R, Ctrl+FCtrl+R, Ctrl+PCtrl+R, PCtrl+R, PCtrl+R, PCtrl+R, Ctrl+PCtrl+R, Ctrl+PCtrl+R, Ctrl+VCtrl+R, Ctrl+VCtrl+R, VCtrl+R, VCtrl+Alt+/Ctrl+Alt+/Ctrl+Alt+K, Ctrl+Alt+LCtrl+Alt+K, LCtrl+Alt+K, LCtrl+Alt+K, Ctrl+Alt+LShift+Alt+LShift+Alt+LShift+Alt+LCtrl+Alt+K, MCtrl+Alt+K, Ctrl+Alt+MCtrl+Alt+K, Ctrl+Alt+MCtrl+Alt+K, Ctrl+Alt+MCtrl+Alt+K, MCtrl+Alt+K, MCtrl+R, Ctrl+OCtrl+R, Ctrl+OCtrl+R, Ctrl+OCtrl+R, OCtrl+R, OCtrl+R, OCtrl+Shift+Alt+Down ArrowCtrl+Shift+Alt+Down ArrowCtrl+Shift+Alt+Left ArrowCtrl+Shift+Alt+Left ArrowCtrl+Shift+Alt+Right ArrowCtrl+Shift+Alt+Right ArrowCtrl+Shift+Alt+Up ArrowCtrl+Shift+Alt+Up ArrowAlt+`Alt+`Alt+`Ctrl+Alt+K, OCtrl+Alt+K, OCtrl+Alt+K, OCtrl+Alt+K, Ctrl+Alt+OCtrl+Alt+K, Ctrl+Alt+OCtrl+Alt+K, Ctrl+Alt+OCtrl+Alt+YCtrl+Alt+YCtrl+Alt+YCtrl+Shift+VCtrl+Shift+VCtrl+Shift+F1Ctrl+Shift+F1Ctrl+Shift+F1Ctrl+Shift+RCtrl+Shift+RCtrl+Shift+RCtrl+Alt+PgDnCtrl+Alt+PgDnCtrl+Alt+PgDnCtrl+Alt+PgUpCtrl+Alt+PgUpCtrl+Alt+PgUpCtrl+Shift+Alt+RCtrl+Shift+Alt+RCtrl+Shift+Alt+RAlt+DelAlt+DelAlt+DelCtrl+R, DCtrl+R, Ctrl+DCtrl+R, DCtrl+R, Ctrl+DCtrl+R, DCtrl+R, Ctrl+DCtrl+Alt+K, Ctrl+Alt+BCtrl+Alt+K, BCtrl+Alt+K, BCtrl+Alt+K, Ctrl+Alt+BCtrl+Alt+K, Ctrl+Alt+BCtrl+Alt+K, BCtrl+Alt+F12Ctrl+Alt+F12Ctrl+Alt+F12Ctrl+Alt+VCtrl+Alt+K, Ctrl+Alt+TCtrl+Alt+K, Ctrl+Alt+TCtrl+Alt+K, Ctrl+Alt+TCtrl+Alt+K, TCtrl+Alt+K, TCtrl+Alt+K, TCtrl+Alt+DCtrl+Alt+Left ArrowCtrl+Alt+Left ArrowCtrl+Shift+WCtrl+Shift+WAlt+EnterAlt+EnterCtrl+0Ctrl+0Ctrl+0Ctrl+1Ctrl+1Ctrl+1Ctrl+2Ctrl+2Ctrl+2Ctrl+3Ctrl+3Ctrl+3Ctrl+4Ctrl+4Ctrl+4Ctrl+5Ctrl+5Ctrl+5Ctrl+6Ctrl+6Ctrl+6Ctrl+7Ctrl+7Ctrl+7Ctrl+8Ctrl+8Ctrl+8Ctrl+9Ctrl+9Ctrl+9Ctrl+Shift+0Ctrl+Shift+0Ctrl+Shift+0Ctrl+Shift+1Ctrl+Shift+1Ctrl+Shift+1Ctrl+Shift+2Ctrl+Shift+2Ctrl+Shift+2Ctrl+Shift+3Ctrl+Shift+3Ctrl+Shift+3Ctrl+Shift+4Ctrl+Shift+4Ctrl+Shift+4Ctrl+Shift+5Ctrl+Shift+5Ctrl+Shift+5Ctrl+Shift+6Ctrl+Shift+6Ctrl+Shift+6Ctrl+Shift+7Ctrl+Shift+7Ctrl+Shift+7Ctrl+Shift+8Ctrl+Shift+8Ctrl+Shift+8Ctrl+Shift+9Ctrl+Shift+9Ctrl+Shift+9Alt+F5Alt+F5Alt+F5Ctrl+Alt+F5Ctrl+Alt+F5Ctrl+Alt+F5Ctrl+Shift+Alt+8Ctrl+Shift+Alt+8Ctrl+Shift+Alt+8Ctrl+EnterCtrl+EnterShift+Alt+NShift+Alt+NAlt+AAlt+AAlt+I, AAlt+I, AAlt+I, Alt+AAlt+I, Alt+AAlt+CAlt+CAlt+I, CAlt+I, CAlt+I, Alt+CAlt+I, Alt+CAlt+DAlt+DAlt+I, DAlt+I, DAlt+I, Alt+DAlt+I, Alt+DAlt+5Alt+5Alt+I, 5Alt+I, 5Alt+I, Alt+5Alt+I, Alt+5Alt+UAlt+UAlt+I, UAlt+I, UAlt+I, Alt+UAlt+I, Alt+UAlt+EAlt+EAlt+I, EAlt+I, EAlt+I, Alt+EAlt+I, Alt+EAlt+XAlt+XAlt+I, XAlt+I, Alt+XAlt+I, XAlt+I, Alt+XAlt+FAlt+FAlt+I, Alt+FAlt+I, Alt+FAlt+I, FAlt+I, FAlt+TAlt+TAlt+I, TAlt+I, TAlt+I, Alt+TAlt+I, Alt+TAlt+2Alt+2Alt+I, Alt+2Alt+I, 2Alt+I, Alt+2Alt+I, 2Alt+KAlt+KAlt+I, KAlt+I, KAlt+I, Alt+KAlt+I, Alt+KAlt+LAlt+LAlt+I, Alt+LAlt+I, Alt+LAlt+I, LAlt+I, LAlt+MAlt+MAlt+I, MAlt+I, MAlt+I, Alt+MAlt+I, Alt+MAlt+NAlt+NAlt+I, Alt+NAlt+I, Alt+NAlt+I, NAlt+I, NAlt+RAlt+RAlt+I, Alt+RAlt+I, RAlt+I, Alt+RAlt+I, RAlt+4Alt+4Alt+I, 4Alt+I, Alt+4Alt+I, Alt+4Alt+I, 4Alt+PAlt+PAlt+I, PAlt+I, Alt+PAlt+I, Alt+PAlt+I, PAlt+3Alt+3Alt+I, Alt+3Alt+I, Alt+3Alt+I, 3Alt+I, 3Alt+1Alt+1Alt+I, Alt+1Alt+I, 1Alt+I, Alt+1Alt+I, 1Alt+SAlt+SAlt+I, SAlt+I, Alt+SAlt+I, Alt+SAlt+I, SAlt+I, OAlt+I, OCtrl+Shift+Alt+SpaceCtrl+Shift+Alt+SpaceCtrl+Shift+Alt+SpaceCtrl+Shift+QCtrl+Shift+QCtrl+Shift+[Ctrl+Shift+[Ctrl+Shift+[Shift+EnterShift+EnterCtrl+Alt+BkspceCtrl+Alt+BkspceCtrl+Alt+BkspceCtrl+Shift+F4Ctrl+Shift+F4Ctrl+Shift+F4Ctrl+R, Ctrl+RAlt+HomeAlt+HomeCtrl+R, RCtrl+R, RCtrl+R, Ctrl+RCtrl+R, Ctrl+RAlt+QAlt+QAlt+I, QAlt+I, QAlt+I, Alt+QAlt+I, Alt+QShift+Alt+SShift+Alt+SCtrl+F6Ctrl+F6Ctrl+F6Ctrl+Shift+SpaceCtrl+Shift+ECtrl+Shift+ECtrl+Shift+ECtrl+WCtrl+WCtrl+Alt+MCtrl+Alt+MCtrl+Alt+MAlt+F7Alt+F7Alt+F7Shift+Alt+F7Shift+Alt+F7Shift+Alt+F7Ctrl+BCtrl+BCtrl+BCtrl+Shift+NCtrl+Shift+NCtrl+Shift+NCtrl+F12Ctrl+F12Ctrl+F12Ctrl+Shift+Alt+BCtrl+Shift+Alt+BCtrl+Shift+Alt+BCtrl+Alt+BCtrl+Alt+BAlt+F12Alt+F12Alt+F12F12Ctrl+Shift+Alt+BkspceCtrl+Shift+Alt+BkspceCtrl+Shift+Alt+BkspceCtrl+Shift+Alt+GCtrl+Shift+Alt+GCtrl+Shift+Alt+GCtrl+Shift+Alt+NCtrl+Shift+Alt+NCtrl+Shift+Alt+NCtrl+NCtrl+NCtrl+NCtrl+Shift+F7Ctrl+Shift+F7Ctrl+Shift+F7Ctrl+Alt+NCtrl+Alt+NCtrl+Alt+PCtrl+Alt+PCtrl+Alt+PCtrl+/Ctrl+/Ctrl+JCtrl+JF6F6F6Ctrl+Shift+GCtrl+Shift+GCtrl+Shift+GCtrl+PCtrl+PCtrl+QCtrl+QCtrl+QShift+F6Shift+F6F2F2Ctrl+Alt+Down ArrowCtrl+Alt+Down ArrowCtrl+Alt+Down ArrowCtrl+Alt+Up ArrowCtrl+Alt+Up ArrowCtrl+Alt+Up ArrowCtrl+F11Ctrl+F11Ctrl+F11Ctrl+Alt+,Ctrl+Alt+,Ctrl+Alt+,Ctrl+Alt+.Ctrl+Alt+.Ctrl+Alt+.Ctrl+Alt+RCtrl+Alt+RCtrl+Alt+RCtrl+Alt+JCtrl+Alt+JCtrl+Alt+HCtrl+Alt+HCtrl+Alt+HCtrl+Shift+Alt+FCtrl+Shift+Alt+FCtrl+Shift+Alt+FCtrl+Shift+Alt+ECtrl+Shift+Alt+ECtrl+Shift+Alt+ECtrl+E, CCtrl+E, Ctrl+CCtrl+E, Ctrl+CCtrl+E, Ctrl+CCtrl+E, CCtrl+E, CCtrl+Alt+SpaceCtrl+Alt+SpaceCtrl+U, KCtrl+U, KCtrl+U, Ctrl+KCtrl+U, Ctrl+KCtrl+U, Ctrl+KCtrl+U, KCtrl+U, HCtrl+U, Ctrl+HCtrl+U, Ctrl+HCtrl+U, Ctrl+HCtrl+U, HCtrl+U, HCtrl+E, Ctrl+TCtrl+E, Ctrl+TCtrl+E, TCtrl+E, TCtrl+E, TCtrl+E, Ctrl+TShift+F12Shift+F12Shift+F12Ctrl+Shift+TCtrl+Shift+TCtrl+Shift+TCtrl+Alt+F7Ctrl+Alt+F7Ctrl+Alt+F7Ctrl+TCtrl+TCtrl+TShift+Alt+F12Shift+Alt+F12Shift+Alt+F12Ctrl+E, Ctrl+LCtrl+E, Ctrl+LCtrl+E, LCtrl+E, LCtrl+U, ECtrl+U, Ctrl+ECtrl+U, Ctrl+ECtrl+U, Ctrl+ECtrl+U, ECtrl+U, ECtrl+U, Ctrl+MCtrl+U, Ctrl+MCtrl+U, Ctrl+MCtrl+U, MCtrl+U, MCtrl+U, MCtrl+Alt+FCtrl+Alt+FCtrl+Alt+FCtrl+Alt+VCtrl+Alt+VCtrl+Alt+DCtrl+Alt+DCtrl+Alt+UCtrl+Alt+UCtrl+Alt+UCtrl+Alt+TCtrl+Alt+TCtrl+Alt+TCtrl+E, Ctrl+UCtrl+E, Ctrl+UCtrl+E, UCtrl+E, UCtrl+E, Ctrl+HCtrl+E, Ctrl+HCtrl+E, HCtrl+E, HCtrl+E, HCtrl+E, Ctrl+HCtrl+U, DCtrl+U, DCtrl+U, DCtrl+U, Ctrl+DCtrl+U, Ctrl+DCtrl+U, Ctrl+DCtrl+U, RCtrl+U, RCtrl+U, RCtrl+U, Ctrl+RCtrl+U, Ctrl+RCtrl+U, Ctrl+RCtrl+U, YCtrl+U, YCtrl+U, Ctrl+YCtrl+U, Ctrl+YCtrl+U, Ctrl+YCtrl+U, YCtrl+U, Ctrl+LCtrl+U, LCtrl+U, LCtrl+U, Ctrl+LCtrl+U, Ctrl+LCtrl+U, LCtrl+U, ACtrl+U, ACtrl+U, ACtrl+U, Ctrl+ACtrl+U, Ctrl+ACtrl+U, Ctrl+ACtrl+U, NCtrl+U, NCtrl+U, NCtrl+U, Ctrl+NCtrl+U, Ctrl+NCtrl+U, Ctrl+NCtrl+U, UCtrl+U, UCtrl+U, Ctrl+UCtrl+U, Ctrl+UCtrl+U, Ctrl+UCtrl+U, UCtrl+U, ICtrl+U, ICtrl+U, ICtrl+U, Ctrl+ICtrl+U, Ctrl+ICtrl+U, Ctrl+ICtrl+E, Ctrl+FCtrl+E, FCtrl+E, FCtrl+E, FCtrl+E, Ctrl+FCtrl+E, Ctrl+FCtrl+D, NCtrl+D, Ctrl+NCtrl+Shift+KCtrl+Shift+WF12F12Alt+HomeCtrl+K, PCtrl+K, Ctrl+PCtrl+Shift+SpaceCtrl+K, PCtrl+K, Ctrl+PCtrl+Left ArrowCtrl+Shift+Left ArrowCtrl+K, Ctrl+HCtrl+D, LCtrl+D, Ctrl+LCtrl+D, ACtrl+D, Ctrl+ACtrl+D, TCtrl+D, Ctrl+TCtrl+W, QCtrl+W, Ctrl+QCtrl+K, Ctrl+CCtrl+Down ArrowCtrl+D, MCtrl+D, Ctrl+MCtrl+W, UCtrl+W, Ctrl+UCtrl+K, Ctrl+UCtrl+K, Ctrl+FCtrl+K, Ctrl+KCtrl+K, Ctrl+NCtrl+K, Ctrl+PCtrl+D, BCtrl+D, Ctrl+BCtrl+W, RCtrl+W, Ctrl+RCtrl+D, DCtrl+D, Ctrl+DCtrl+K, Ctrl+ACtrl+K, Ctrl+\Ctrl+R, Ctrl+WCtrl+K, Ctrl+DCtrl+W, WCtrl+W, Ctrl+WCtrl+K, RCtrl+K, Ctrl+RCtrl+Shift+BCtrl+K, LCtrl+K, Ctrl+LCtrl+JCtrl+K, LCtrl+K, Ctrl+LCtrl+Shift+SpaceCtrl+/Ctrl+Alt+BCtrl+Shift+LCtrl+LCtrl+Alt+I2false.\node_modules\.bin;$(DevEnvDir)\Extensions\Microsoft\Web Tools\External;$(PATH);$(DevEnvDir)\Extensions\Microsoft\Web Tools\External\gitTrueTrueTrue25False5105TrueFalseFalseTrueTrue4TrueTrueTrueSplitViewDefaultPixelsFalseControlMouseWheelTrueTrue1101011110101101100010011110001001101111000000167577360473600210110111000050001500015001000100010002000200050001000010000250100050012510101100111111111100001110010011000000001012048509000100011000001010011010101111327688192http://referencesource.microsoft.com/symbolshttp://msdl.microsoft.com/download/symbolsFunction: $FUNCTION, Thread: $TID $TNAME506464101csv3.01002.03.01100Falsefalsetruefalsefalse-1falsefalseTrueTrueTrue8, 8SnapLinesTrueTrueTrueTrueTrueTrueTrueDoubleQuote120FalseNoneFalseTrueTrueTrueTrueTrueTrueTrueTrue%VsInstallDir%\xml\SchemasShowAlways \ No newline at end of file From fb52d69756f667e065b97ecf6a9b3e186c942f46 Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Fri, 19 Jan 2024 12:26:52 +0100 Subject: [PATCH 14/52] Update(s) --- .github/workflows/codeql-analysis.yml | 70 ------- .github/workflows/tests.yml | 32 +++ Ical.Net.Tests/IcsFiles.cs | 286 +++++++++++++------------- 3 files changed, 175 insertions(+), 213 deletions(-) delete mode 100644 .github/workflows/codeql-analysis.yml create mode 100644 .github/workflows/tests.yml diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml deleted file mode 100644 index a73c2738b..000000000 --- a/.github/workflows/codeql-analysis.yml +++ /dev/null @@ -1,70 +0,0 @@ -# For most projects, this workflow file will not need changing; you simply need -# to commit it to your repository. -# -# You may wish to alter this file to override the set of languages analyzed, -# or to provide custom queries or build logic. -# -# ******** NOTE ******** -# We have attempted to detect the languages in your repository. Please check -# the `language` matrix defined below to confirm you have the correct set of -# supported CodeQL languages. -# -name: "CodeQL" - -on: - push: - branches: [ master ] - pull_request: - # The branches below must be a subset of the branches above - branches: [ master ] - schedule: - - cron: '22 17 * * 4' - -jobs: - analyze: - name: Analyze - runs-on: ubuntu-latest - permissions: - actions: read - contents: read - security-events: write - - strategy: - fail-fast: false - matrix: - language: [ 'csharp' ] - # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] - # Learn more about CodeQL language support at https://git.io/codeql-language-support - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v1 - with: - languages: ${{ matrix.language }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v1 - - # ℹ️ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 000000000..71abce6bf --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,32 @@ +name: Tests + +on: + # Trigger the workflow on push or pull request, + # but only for the main branch + pull_request: + branches: + - master + push: + branches: + - master + +jobs: + tests: + runs-on: windows-latest + + steps: + - uses: actions/checkout@v3 + - name: Setup .NET + uses: actions/setup-dotnet@v3 + with: + dotnet-version: | + 8.0.x + 7.0.x + 6.0.x + 3.1.x + - name: Restore dependencies + run: dotnet restore + - name: Build + run: dotnet build --no-restore --configuration Release + - name: Test + run: dotnet test --no-build --configuration Release --verbosity normal diff --git a/Ical.Net.Tests/IcsFiles.cs b/Ical.Net.Tests/IcsFiles.cs index c61f4e819..b6610b31c 100644 --- a/Ical.Net.Tests/IcsFiles.cs +++ b/Ical.Net.Tests/IcsFiles.cs @@ -15,148 +15,148 @@ internal static string ReadStream(string manifestResource) } } - internal static string Alarm1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Alarm.ALARM1.ics"); - internal static string Alarm2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Alarm.ALARM2.ics"); - internal static string Alarm3 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Alarm.ALARM3.ics"); - internal static string Alarm4 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Alarm.ALARM4.ics"); - internal static string Alarm5 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Alarm.ALARM5.ics"); - internal static string Alarm6 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Alarm.ALARM6.ics"); - internal static string Alarm7 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Alarm.ALARM7.ics"); - internal static string Attachment3 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Attachment3.ics"); - internal static string Attachment4 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Attachment4.ics"); - internal static string Attendee1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Attendee1.ics"); - internal static string Attendee2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Attendee2.ics"); - internal static string Bug1741093 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.Bug1741093.ics"); - internal static string Bug2033495 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Bug2033495.ics"); - internal static string Bug2148092 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Bug2148092.ics"); - internal static string Bug2912657 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.Bug2912657.ics"); - internal static string Bug2916581 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.Bug2916581.ics"); - internal static string Bug2938007 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Bug2938007.ics"); - internal static string Bug2959692 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.Bug2959692.ics"); - internal static string Bug2966236 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.Bug2966236.ics"); - internal static string Bug3007244 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.Bug3007244.ics"); - internal static string ByMonth1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.ByMonth1.ics"); - internal static string ByMonth2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.ByMonth2.ics"); - internal static string ByMonthDay1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.ByMonthDay1.ics"); - internal static string Calendar1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Calendar1.ics"); - internal static string CalendarParameters2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.CalendarParameters2.ics"); - internal static string CaseInsensitive1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.CaseInsensitive1.ics"); - internal static string CaseInsensitive2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.CaseInsensitive2.ics"); - internal static string CaseInsensitive3 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.CaseInsensitive3.ics"); - internal static string CaseInsensitive4 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.CaseInsensitive4.ics"); - internal static string Categories1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Categories1.ics"); - internal static string Daily1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.Daily1.ics"); - internal static string DailyByDay1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.DailyByDay1.ics"); - internal static string DailyByHourMinute1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.DailyByHourMinute1.ics"); - internal static string DailyCount1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.DailyCount1.ics"); - internal static string DailyCount2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.DailyCount2.ics"); - internal static string DailyInterval1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.DailyInterval1.ics"); - internal static string DailyInterval2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.DailyInterval2.ics"); - internal static string DailyUntil1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.DailyUntil1.ics"); - internal static string DateTime1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.DateTime1.ics"); - internal static string DateTime2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.DateTime2.ics"); - internal static string Duration1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Duration1.ics"); - internal static string Empty1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.Empty1.ics"); - internal static string EmptyLines1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.EmptyLines1.ics"); - internal static string EmptyLines2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.EmptyLines2.ics"); - internal static string EmptyLines3 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.EmptyLines3.ics"); - internal static string EmptyLines4 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.EmptyLines4.ics"); - internal static string Encoding1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Encoding1.ics"); - internal static string Encoding2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Encoding2.ics"); - internal static string Encoding3 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Encoding3.ics"); - internal static string Event1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Event1.ics"); - internal static string Event2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Event2.ics"); - internal static string Event3 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Event3.ics"); - internal static string Event4 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Event4.ics"); - internal static string EventStatus => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.EventStatus.ics"); - internal static string GeographicLocation1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.GeographicLocation1.ics"); - internal static string Google1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Google1.ics"); - internal static string Hourly1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.Hourly1.ics"); - internal static string HourlyInterval1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.HourlyInterval1.ics"); - internal static string HourlyInterval2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.HourlyInterval2.ics"); - internal static string HourlyUntil1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.HourlyUntil1.ics"); - internal static string Journal1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Journal.JOURNAL1.ics"); - internal static string Journal2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Journal.JOURNAL2.ics"); - internal static string Language1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Language1.ics"); - internal static string Language2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Language2.ics"); - internal static string Language3 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Language3.ics"); - internal static string Language4 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Language4.ics"); - internal static string Minutely1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.Minutely1.ics"); - internal static string MinutelyByHour1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.MinutelyByHour1.ics"); - internal static string MinutelyCount1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.MinutelyCount1.ics"); - internal static string MinutelyCount2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.MinutelyCount2.ics"); - internal static string MinutelyCount3 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.MinutelyCount3.ics"); - internal static string MinutelyCount4 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.MinutelyCount4.ics"); - internal static string MinutelyInterval1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.MinutelyInterval1.ics"); - internal static string Monthly1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.Monthly1.ics"); - internal static string MonthlyByDay1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.MonthlyByDay1.ics"); - internal static string MonthlyByMonthDay1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.MonthlyByMonthDay1.ics"); - internal static string MonthlyByMonthDay2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.MonthlyByMonthDay2.ics"); - internal static string MonthlyBySetPos1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.MonthlyBySetPos1.ics"); - internal static string MonthlyBySetPos2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.MonthlyBySetPos2.ics"); - internal static string MonthlyCountByDay1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.MonthlyCountByDay1.ics"); - internal static string MonthlyCountByDay2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.MonthlyCountByDay2.ics"); - internal static string MonthlyCountByDay3 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.MonthlyCountByDay3.ics"); - internal static string MonthlyCountByMonthDay1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.MonthlyCountByMonthDay1.ics"); - internal static string MonthlyCountByMonthDay2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.MonthlyCountByMonthDay2.ics"); - internal static string MonthlyCountByMonthDay3 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.MonthlyCountByMonthDay3.ics"); - internal static string MonthlyInterval1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.MonthlyInterval1.ics"); - internal static string MonthlyUntilByDay1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.MonthlyUntilByDay1.ics"); - internal static string Outlook2007LineFolds => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Outlook2007LineFolds.ics"); - internal static string Parameter1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Parameter1.ics"); - internal static string Parameter2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Parameter2.ics"); - internal static string Parse1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Parse1.ics"); - internal static string Parse17 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.PARSE17.ics"); - internal static string ProdId1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.ProdID1.ics"); - internal static string ProdId2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.ProdID2.ics"); - internal static string Property1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Property1.ics"); - internal static string RecurrenceDates1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.RecurrenceDates1.ics"); - internal static string RequestStatus1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.RequestStatus1.ics"); - internal static string Secondly1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.Secondly1.ics"); - internal static string TimeZone1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.TimeZone1.ics"); - internal static string TimeZone2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.TimeZone2.ics"); - internal static string TimeZone3 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.TimeZone3.ics"); - internal static string Todo1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Todo.Todo1.ics"); - internal static string Todo2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Todo.Todo2.ics"); - internal static string Todo3 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Todo.Todo3.ics"); - internal static string Todo4 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Todo.Todo4.ics"); - internal static string Todo5 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Todo.Todo5.ics"); - internal static string Todo6 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Todo.Todo6.ics"); - internal static string Todo7 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Todo.Todo7.ics"); - internal static string Todo8 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Todo.Todo8.ics"); - internal static string Todo9 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Todo.Todo9.ics"); - internal static string Transparency1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Transparency1.ics"); - internal static string Transparency2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Transparency2.ics"); - internal static string Trigger1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.Trigger1.ics"); - internal static string UsHolidays => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.USHolidays.ics"); - internal static string WeeklyCount1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.WeeklyCount1.ics"); - internal static string WeeklyCountWkst1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.WeeklyCountWkst1.ics"); - internal static string WeeklyCountWkst2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.WeeklyCountWkst2.ics"); - internal static string WeeklyCountWkst3 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.WeeklyCountWkst3.ics"); - internal static string WeeklyCountWkst4 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.WeeklyCountWkst4.ics"); - internal static string WeeklyInterval1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.WeeklyInterval1.ics"); - internal static string WeeklyUntil1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.WeeklyUntil1.ics"); - internal static string WeeklyUntilWkst1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.WeeklyUntilWkst1.ics"); - internal static string WeeklyUntilWkst2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.WeeklyUntilWkst2.ics"); - internal static string WeeklyWeekStartsLastYear => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.WeeklyWeekStartsLastYear.ics"); - internal static string WeeklyWkst1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.WeeklyWkst1.ics"); - internal static string XProperty1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.XProperty1.ics"); - internal static string XProperty2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Serialization.XProperty2.ics"); - internal static string Yearly1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.Yearly1.ics"); - internal static string YearlyByDay1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.YearlyByDay1.ics"); - internal static string YearlyByMonth1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.YearlyByMonth1.ics"); - internal static string YearlyByMonth2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.YearlyByMonth2.ics"); - internal static string YearlyByMonth3 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.YearlyByMonth3.ics"); - internal static string YearlyByMonthDay1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.YearlyByMonthDay1.ics"); - internal static string YearlyBySetPos1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.YearlyBySetPos1.ics"); - internal static string YearlyByWeekNo1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.YearlyByWeekNo1.ics"); - internal static string YearlyByWeekNo2 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.YearlyByWeekNo2.ics"); - internal static string YearlyByWeekNo3 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.YearlyByWeekNo3.ics"); - internal static string YearlyByWeekNo4 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.YearlyByWeekNo4.ics"); - internal static string YearlyByWeekNo5 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.YearlyByWeekNo5.ics"); - internal static string YearlyComplex1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.YearlyComplex1.ics"); - internal static string YearlyCountByMonth1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.YearlyCountByMonth1.ics"); - internal static string YearlyCountByYearDay1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.YearlyCountByYearDay1.ics"); - internal static string YearlyInterval1 => ReadStream("Ical.Net.CoreUnitTests.Calendars.Recurrence.YearlyInterval1.ics"); + internal static string Alarm1 => ReadStream("Ical.Net.Tests.Calendars.Alarm.ALARM1.ics"); + internal static string Alarm2 => ReadStream("Ical.Net.Tests.Calendars.Alarm.ALARM2.ics"); + internal static string Alarm3 => ReadStream("Ical.Net.Tests.Calendars.Alarm.ALARM3.ics"); + internal static string Alarm4 => ReadStream("Ical.Net.Tests.Calendars.Alarm.ALARM4.ics"); + internal static string Alarm5 => ReadStream("Ical.Net.Tests.Calendars.Alarm.ALARM5.ics"); + internal static string Alarm6 => ReadStream("Ical.Net.Tests.Calendars.Alarm.ALARM6.ics"); + internal static string Alarm7 => ReadStream("Ical.Net.Tests.Calendars.Alarm.ALARM7.ics"); + internal static string Attachment3 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Attachment3.ics"); + internal static string Attachment4 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Attachment4.ics"); + internal static string Attendee1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Attendee1.ics"); + internal static string Attendee2 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Attendee2.ics"); + internal static string Bug1741093 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.Bug1741093.ics"); + internal static string Bug2033495 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Bug2033495.ics"); + internal static string Bug2148092 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Bug2148092.ics"); + internal static string Bug2912657 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.Bug2912657.ics"); + internal static string Bug2916581 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.Bug2916581.ics"); + internal static string Bug2938007 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Bug2938007.ics"); + internal static string Bug2959692 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.Bug2959692.ics"); + internal static string Bug2966236 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.Bug2966236.ics"); + internal static string Bug3007244 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.Bug3007244.ics"); + internal static string ByMonth1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.ByMonth1.ics"); + internal static string ByMonth2 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.ByMonth2.ics"); + internal static string ByMonthDay1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.ByMonthDay1.ics"); + internal static string Calendar1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Calendar1.ics"); + internal static string CalendarParameters2 => ReadStream("Ical.Net.Tests.Calendars.Serialization.CalendarParameters2.ics"); + internal static string CaseInsensitive1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.CaseInsensitive1.ics"); + internal static string CaseInsensitive2 => ReadStream("Ical.Net.Tests.Calendars.Serialization.CaseInsensitive2.ics"); + internal static string CaseInsensitive3 => ReadStream("Ical.Net.Tests.Calendars.Serialization.CaseInsensitive3.ics"); + internal static string CaseInsensitive4 => ReadStream("Ical.Net.Tests.Calendars.Serialization.CaseInsensitive4.ics"); + internal static string Categories1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Categories1.ics"); + internal static string Daily1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.Daily1.ics"); + internal static string DailyByDay1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.DailyByDay1.ics"); + internal static string DailyByHourMinute1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.DailyByHourMinute1.ics"); + internal static string DailyCount1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.DailyCount1.ics"); + internal static string DailyCount2 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.DailyCount2.ics"); + internal static string DailyInterval1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.DailyInterval1.ics"); + internal static string DailyInterval2 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.DailyInterval2.ics"); + internal static string DailyUntil1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.DailyUntil1.ics"); + internal static string DateTime1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.DateTime1.ics"); + internal static string DateTime2 => ReadStream("Ical.Net.Tests.Calendars.Serialization.DateTime2.ics"); + internal static string Duration1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Duration1.ics"); + internal static string Empty1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.Empty1.ics"); + internal static string EmptyLines1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.EmptyLines1.ics"); + internal static string EmptyLines2 => ReadStream("Ical.Net.Tests.Calendars.Serialization.EmptyLines2.ics"); + internal static string EmptyLines3 => ReadStream("Ical.Net.Tests.Calendars.Serialization.EmptyLines3.ics"); + internal static string EmptyLines4 => ReadStream("Ical.Net.Tests.Calendars.Serialization.EmptyLines4.ics"); + internal static string Encoding1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Encoding1.ics"); + internal static string Encoding2 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Encoding2.ics"); + internal static string Encoding3 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Encoding3.ics"); + internal static string Event1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Event1.ics"); + internal static string Event2 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Event2.ics"); + internal static string Event3 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Event3.ics"); + internal static string Event4 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Event4.ics"); + internal static string EventStatus => ReadStream("Ical.Net.Tests.Calendars.Serialization.EventStatus.ics"); + internal static string GeographicLocation1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.GeographicLocation1.ics"); + internal static string Google1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Google1.ics"); + internal static string Hourly1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.Hourly1.ics"); + internal static string HourlyInterval1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.HourlyInterval1.ics"); + internal static string HourlyInterval2 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.HourlyInterval2.ics"); + internal static string HourlyUntil1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.HourlyUntil1.ics"); + internal static string Journal1 => ReadStream("Ical.Net.Tests.Calendars.Journal.JOURNAL1.ics"); + internal static string Journal2 => ReadStream("Ical.Net.Tests.Calendars.Journal.JOURNAL2.ics"); + internal static string Language1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Language1.ics"); + internal static string Language2 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Language2.ics"); + internal static string Language3 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Language3.ics"); + internal static string Language4 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Language4.ics"); + internal static string Minutely1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.Minutely1.ics"); + internal static string MinutelyByHour1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.MinutelyByHour1.ics"); + internal static string MinutelyCount1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.MinutelyCount1.ics"); + internal static string MinutelyCount2 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.MinutelyCount2.ics"); + internal static string MinutelyCount3 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.MinutelyCount3.ics"); + internal static string MinutelyCount4 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.MinutelyCount4.ics"); + internal static string MinutelyInterval1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.MinutelyInterval1.ics"); + internal static string Monthly1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.Monthly1.ics"); + internal static string MonthlyByDay1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.MonthlyByDay1.ics"); + internal static string MonthlyByMonthDay1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.MonthlyByMonthDay1.ics"); + internal static string MonthlyByMonthDay2 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.MonthlyByMonthDay2.ics"); + internal static string MonthlyBySetPos1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.MonthlyBySetPos1.ics"); + internal static string MonthlyBySetPos2 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.MonthlyBySetPos2.ics"); + internal static string MonthlyCountByDay1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.MonthlyCountByDay1.ics"); + internal static string MonthlyCountByDay2 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.MonthlyCountByDay2.ics"); + internal static string MonthlyCountByDay3 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.MonthlyCountByDay3.ics"); + internal static string MonthlyCountByMonthDay1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.MonthlyCountByMonthDay1.ics"); + internal static string MonthlyCountByMonthDay2 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.MonthlyCountByMonthDay2.ics"); + internal static string MonthlyCountByMonthDay3 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.MonthlyCountByMonthDay3.ics"); + internal static string MonthlyInterval1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.MonthlyInterval1.ics"); + internal static string MonthlyUntilByDay1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.MonthlyUntilByDay1.ics"); + internal static string Outlook2007LineFolds => ReadStream("Ical.Net.Tests.Calendars.Serialization.Outlook2007LineFolds.ics"); + internal static string Parameter1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Parameter1.ics"); + internal static string Parameter2 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Parameter2.ics"); + internal static string Parse1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Parse1.ics"); + internal static string Parse17 => ReadStream("Ical.Net.Tests.Calendars.Serialization.PARSE17.ics"); + internal static string ProdId1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.ProdID1.ics"); + internal static string ProdId2 => ReadStream("Ical.Net.Tests.Calendars.Serialization.ProdID2.ics"); + internal static string Property1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Property1.ics"); + internal static string RecurrenceDates1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.RecurrenceDates1.ics"); + internal static string RequestStatus1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.RequestStatus1.ics"); + internal static string Secondly1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.Secondly1.ics"); + internal static string TimeZone1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.TimeZone1.ics"); + internal static string TimeZone2 => ReadStream("Ical.Net.Tests.Calendars.Serialization.TimeZone2.ics"); + internal static string TimeZone3 => ReadStream("Ical.Net.Tests.Calendars.Serialization.TimeZone3.ics"); + internal static string Todo1 => ReadStream("Ical.Net.Tests.Calendars.Todo.Todo1.ics"); + internal static string Todo2 => ReadStream("Ical.Net.Tests.Calendars.Todo.Todo2.ics"); + internal static string Todo3 => ReadStream("Ical.Net.Tests.Calendars.Todo.Todo3.ics"); + internal static string Todo4 => ReadStream("Ical.Net.Tests.Calendars.Todo.Todo4.ics"); + internal static string Todo5 => ReadStream("Ical.Net.Tests.Calendars.Todo.Todo5.ics"); + internal static string Todo6 => ReadStream("Ical.Net.Tests.Calendars.Todo.Todo6.ics"); + internal static string Todo7 => ReadStream("Ical.Net.Tests.Calendars.Todo.Todo7.ics"); + internal static string Todo8 => ReadStream("Ical.Net.Tests.Calendars.Todo.Todo8.ics"); + internal static string Todo9 => ReadStream("Ical.Net.Tests.Calendars.Todo.Todo9.ics"); + internal static string Transparency1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Transparency1.ics"); + internal static string Transparency2 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Transparency2.ics"); + internal static string Trigger1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.Trigger1.ics"); + internal static string UsHolidays => ReadStream("Ical.Net.Tests.Calendars.Serialization.USHolidays.ics"); + internal static string WeeklyCount1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.WeeklyCount1.ics"); + internal static string WeeklyCountWkst1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.WeeklyCountWkst1.ics"); + internal static string WeeklyCountWkst2 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.WeeklyCountWkst2.ics"); + internal static string WeeklyCountWkst3 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.WeeklyCountWkst3.ics"); + internal static string WeeklyCountWkst4 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.WeeklyCountWkst4.ics"); + internal static string WeeklyInterval1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.WeeklyInterval1.ics"); + internal static string WeeklyUntil1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.WeeklyUntil1.ics"); + internal static string WeeklyUntilWkst1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.WeeklyUntilWkst1.ics"); + internal static string WeeklyUntilWkst2 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.WeeklyUntilWkst2.ics"); + internal static string WeeklyWeekStartsLastYear => ReadStream("Ical.Net.Tests.Calendars.Recurrence.WeeklyWeekStartsLastYear.ics"); + internal static string WeeklyWkst1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.WeeklyWkst1.ics"); + internal static string XProperty1 => ReadStream("Ical.Net.Tests.Calendars.Serialization.XProperty1.ics"); + internal static string XProperty2 => ReadStream("Ical.Net.Tests.Calendars.Serialization.XProperty2.ics"); + internal static string Yearly1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.Yearly1.ics"); + internal static string YearlyByDay1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.YearlyByDay1.ics"); + internal static string YearlyByMonth1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.YearlyByMonth1.ics"); + internal static string YearlyByMonth2 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.YearlyByMonth2.ics"); + internal static string YearlyByMonth3 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.YearlyByMonth3.ics"); + internal static string YearlyByMonthDay1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.YearlyByMonthDay1.ics"); + internal static string YearlyBySetPos1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.YearlyBySetPos1.ics"); + internal static string YearlyByWeekNo1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.YearlyByWeekNo1.ics"); + internal static string YearlyByWeekNo2 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.YearlyByWeekNo2.ics"); + internal static string YearlyByWeekNo3 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.YearlyByWeekNo3.ics"); + internal static string YearlyByWeekNo4 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.YearlyByWeekNo4.ics"); + internal static string YearlyByWeekNo5 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.YearlyByWeekNo5.ics"); + internal static string YearlyComplex1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.YearlyComplex1.ics"); + internal static string YearlyCountByMonth1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.YearlyCountByMonth1.ics"); + internal static string YearlyCountByYearDay1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.YearlyCountByYearDay1.ics"); + internal static string YearlyInterval1 => ReadStream("Ical.Net.Tests.Calendars.Recurrence.YearlyInterval1.ics"); } } From 4eb59ce38b81af22b6d217e583eb64b7b02b4066 Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Fri, 19 Jan 2024 13:49:12 +0100 Subject: [PATCH 15/52] Update(s) --- .github/workflows/publish.yml | 39 +++++++++++++++++++++++ Ical.Net/Ical.Net.csproj | 21 ++---------- Ical.Net/Ical.Net.nuspec | 60 ++++++++++++++++------------------- 3 files changed, 69 insertions(+), 51 deletions(-) create mode 100644 .github/workflows/publish.yml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 000000000..d73b40331 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,39 @@ +name: Publish + +on: + workflow_dispatch: {} + +jobs: + tests: + runs-on: windows-latest + + steps: + - uses: actions/checkout@v3 + - name: Setup .NET + uses: actions/setup-dotnet@v3 + with: + dotnet-version: | + 8.0.x + 7.0.x + 6.0.x + 3.1.x + - name: Restore dependencies + run: dotnet restore + - name: Build + run: dotnet build --no-restore --configuration Release + - name: Test + run: dotnet test --no-build --configuration Release --verbosity normal + + publish: + runs-on: ubuntu-latest + needs: tests + + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-dotnet@v3 + with: + dotnet-version: 8.0.x + - run: dotnet restore + - run: dotnet build --configuration Release Ical.Net/Ical.Net.csproj + - run: dotnet pack --configuration Release Ical.Net/Ical.Net.csproj --no-build -p:Version=${{vars.VERSION}}.${{github.run_number}} -p:PackageVersion=${{vars.VERSION}}.${{github.run_number}} -p:IncludeSymbols=true -p:SymbolPackageFormat=snupkg -p:NuspecFile=Ical.Net.nuspec + - run: dotnet nuget push Ical.Net/bin/Release/Ical.Net.${{vars.VERSION}}.${{github.run_number}}.nupkg --api-key ${{secrets.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json --skip-duplicate diff --git a/Ical.Net/Ical.Net.csproj b/Ical.Net/Ical.Net.csproj index b9a96b22b..9bf915d1c 100644 --- a/Ical.Net/Ical.Net.csproj +++ b/Ical.Net/Ical.Net.csproj @@ -1,27 +1,10 @@  - 8 - 4.3.0 - Ical.Net - https://github.com/laget-se/ical.net - MIT - https://github.com/laget-se/ical.net - hhttps://github.com/rianjs/ical.net/blob/master/release-notes.md net8.0;net6.0;net5.0;netstandard2.1;netstandard2.0 - Rian Stockbower, Douglas Day, & Contributors - true - full - Ical.Net - true - An iCalendar (RFC 5545) library. See https://github.com/laget-se/ical.net for details. - - - bin\Release\Ical.Net.xml + version=$(Version) + - - - \ No newline at end of file diff --git a/Ical.Net/Ical.Net.nuspec b/Ical.Net/Ical.Net.nuspec index 6fd010d44..8ec9e81d8 100644 --- a/Ical.Net/Ical.Net.nuspec +++ b/Ical.Net/Ical.Net.nuspec @@ -1,34 +1,30 @@ - + - - Ical.Net - 4.1.11 - Ical.Net - Rian Stockbower, Douglas Day - Rian Stockbower - false - An iCalendar (RFC 5545) control library for .NET. - https://github.com/rianjs/ical.net - https://github.com/rianjs/ical.net/blob/master/license.md - https://github.com/rianjs/ical.net/blob/master/release-notes.md - https://github.com/rianjs/ical.net/raw/master/nuget_logo_150px.png - iCal Calendar icalendar ics outlook events rfc-5545 rfc-2445 dday - - - - - - - - - - - - - - - - - - + + laget.Ical.Net + Ical.Net + $version$ + laget.se, Rian Stockbower, Douglas Day + laget.se + false + An iCalendar (RFC 5545) control library for .NET. + https://github.com/laget-se/ical.net + https://github.com/laget-se/ical.net/blob/master/license.md + https://github.com/laget-se/ical.net/blob/master/release-notes.md + https://github.com/laget-se/ical.net/raw/master/nuget_logo_150px.png + iCal Calendar icalendar ics outlook events rfc-5545 rfc-2445 dday + + + + + + + + + + + + + + From b77278758647dfc6a75ac99072baa708479cee09 Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Fri, 19 Jan 2024 13:54:34 +0100 Subject: [PATCH 16/52] Update(s) --- Ical.Net.Tests/Ical.Net.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ical.Net.Tests/Ical.Net.Tests.csproj b/Ical.Net.Tests/Ical.Net.Tests.csproj index 959b9e3fa..524fe2930 100644 --- a/Ical.Net.Tests/Ical.Net.Tests.csproj +++ b/Ical.Net.Tests/Ical.Net.Tests.csproj @@ -1,6 +1,6 @@  - net8.0;net6.0;net5.0;netcoreapp3.1;net48 + net8.0;net6.0;net5.0;net48 From a45c3b3d9dca397d34e35429d88559bb97e49e65 Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Fri, 19 Jan 2024 13:59:30 +0100 Subject: [PATCH 17/52] Update(s) --- Ical.Net.Tests/AttendeeTest.cs | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/Ical.Net.Tests/AttendeeTest.cs b/Ical.Net.Tests/AttendeeTest.cs index 3a9222ad6..c02e257d9 100644 --- a/Ical.Net.Tests/AttendeeTest.cs +++ b/Ical.Net.Tests/AttendeeTest.cs @@ -1,8 +1,6 @@ -using Ical.Net.CalendarComponents; +using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; -using Ical.Net.Serialization; using NUnit.Framework; -using System; using System.Collections.Generic; using System.Linq; @@ -36,7 +34,7 @@ public class AttendeeTest } }.AsReadOnly(); - + /// /// Ensures that attendees can be properly added to an event. /// @@ -50,7 +48,7 @@ public void Add1Attendee() Assert.AreEqual(1, evt.Attendees.Count); //the properties below had been set to null during the Attendees.Add operation in NuGet version 2.1.4 - Assert.AreEqual(ParticipationRole.RequiredParticipant, evt.Attendees[0].Role); + Assert.AreEqual(ParticipationRole.RequiredParticipant, evt.Attendees[0].Role); Assert.AreEqual(EventParticipationStatus.Tentative, evt.Attendees[0].ParticipationStatus); } @@ -64,11 +62,6 @@ public void Add2Attendees() evt.Attendees.Add(_attendees[1]); Assert.AreEqual(2, evt.Attendees.Count); Assert.AreEqual(ParticipationRole.RequiredParticipant, evt.Attendees[1].Role); - - var cal = new Calendar(); - cal.Events.Add(evt); - var serializer = new CalendarSerializer(); - Console.Write(serializer.SerializeToString(cal)); } /// From 5011b17149de9c1441f0f43ac958c8ab926a1cf9 Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Fri, 19 Jan 2024 14:03:12 +0100 Subject: [PATCH 18/52] Update(s) --- .github/workflows/tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 71abce6bf..28e2c7081 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,6 +23,7 @@ jobs: 8.0.x 7.0.x 6.0.x + 5.0.x 3.1.x - name: Restore dependencies run: dotnet restore From 48a54070ccca54699159dd1d885aba50da2bb14b Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Fri, 19 Jan 2024 14:32:43 +0100 Subject: [PATCH 19/52] Update(s) --- .github/workflows/publish.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d73b40331..74e60c255 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -16,6 +16,7 @@ jobs: 8.0.x 7.0.x 6.0.x + 5.0.x 3.1.x - name: Restore dependencies run: dotnet restore From d84e0601da349b36a454ef5bb9aed6f72f3f3aa6 Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Fri, 19 Jan 2024 14:45:29 +0100 Subject: [PATCH 20/52] Update(s) --- .github/workflows/publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 74e60c255..1e0c8f266 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -37,4 +37,4 @@ jobs: - run: dotnet restore - run: dotnet build --configuration Release Ical.Net/Ical.Net.csproj - run: dotnet pack --configuration Release Ical.Net/Ical.Net.csproj --no-build -p:Version=${{vars.VERSION}}.${{github.run_number}} -p:PackageVersion=${{vars.VERSION}}.${{github.run_number}} -p:IncludeSymbols=true -p:SymbolPackageFormat=snupkg -p:NuspecFile=Ical.Net.nuspec - - run: dotnet nuget push Ical.Net/bin/Release/Ical.Net.${{vars.VERSION}}.${{github.run_number}}.nupkg --api-key ${{secrets.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json --skip-duplicate + - run: dotnet nuget push Ical.Net/bin/Release/laget.Ical.Net.${{vars.VERSION}}.${{github.run_number}}.nupkg --api-key ${{secrets.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json --skip-duplicate From f20d9055dbcd8f87d171b30898e5b893e735469d Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Fri, 19 Jan 2024 14:58:47 +0100 Subject: [PATCH 21/52] Update(s) --- Ical.Net.Benchmarks/Runner.cs | 2 +- Ical.Net.Tests/ProgramTest.cs | 10 +- Ical.Net.Tests/SerializationTests.cs | 4 +- Ical.Net.Tests/VTimeZoneTest.cs | 2 +- Ical.Net/Calendar.cs | 30 ++-- Ical.Net/CalendarCollection.cs | 8 +- Ical.Net/CalendarComponents/Alarm.cs | 2 +- .../CalendarComponents/CalendarComponent.cs | 2 +- Ical.Net/CalendarComponents/CalendarEvent.cs | 2 +- .../CalendarComponents/RecurringComponent.cs | 2 +- .../CalendarComponents/UniqueComponent.cs | 2 +- Ical.Net/CalendarComponents/VTimeZone.cs | 6 +- Ical.Net/CalendarObject.cs | 8 +- Ical.Net/CalendarObjectBase.cs | 4 +- Ical.Net/CalendarParameter.cs | 2 +- Ical.Net/CalendarProperty.cs | 8 +- Ical.Net/CalendarPropertyList.cs | 6 +- Ical.Net/Collections/GroupedList.cs | 6 +- Ical.Net/Collections/GroupedValueList.cs | 8 +- Ical.Net/Collections/IGroupedCollection.cs | 10 +- Ical.Net/Collections/IGroupedList.cs | 2 +- Ical.Net/Collections/IGroupedObject.cs | 2 +- .../Proxies/GroupedCollectionProxy.cs | 2 +- .../Proxies/GroupedValueListProxy.cs | 10 +- Ical.Net/Constants.cs | 22 +-- Ical.Net/DataTypes/AlarmOccurrence.cs | 8 +- Ical.Net/DataTypes/Attachment.cs | 8 +- Ical.Net/DataTypes/Attendee.cs | 10 +- Ical.Net/DataTypes/CalDateTime.cs | 10 +- Ical.Net/DataTypes/CalendarDataType.cs | 36 ++--- Ical.Net/DataTypes/GeographicLocation.cs | 8 +- Ical.Net/DataTypes/Occurrence.cs | 4 +- Ical.Net/DataTypes/Organizer.cs | 10 +- Ical.Net/DataTypes/Period.cs | 8 +- Ical.Net/DataTypes/PeriodList.cs | 6 +- Ical.Net/DataTypes/RecurrencePattern.cs | 12 +- Ical.Net/DataTypes/RequestStatus.cs | 8 +- Ical.Net/DataTypes/StatusCode.cs | 10 +- Ical.Net/DataTypes/Trigger.cs | 10 +- Ical.Net/DataTypes/UTCOffset.cs | 6 +- Ical.Net/DataTypes/WeekDay.cs | 10 +- Ical.Net/Evaluation/Evaluator.cs | 6 +- Ical.Net/Evaluation/EventEvaluator.cs | 8 +- Ical.Net/Evaluation/IEvaluator.cs | 4 +- Ical.Net/Evaluation/PeriodListEvaluator.cs | 4 +- .../Evaluation/RecurrencePatternEvaluator.cs | 132 +++++++++--------- Ical.Net/Evaluation/RecurrenceUtil.cs | 72 +++++----- Ical.Net/Evaluation/RecurringEvaluator.cs | 8 +- Ical.Net/Evaluation/TimeZoneEvaluator.cs | 8 +- Ical.Net/Evaluation/TimeZoneInfoEvaluator.cs | 6 +- Ical.Net/Evaluation/TodoEvaluator.cs | 10 +- Ical.Net/IGetFreeBusy.cs | 4 +- Ical.Net/IGetOccurrences.cs | 10 +- Ical.Net/IParameterCollection.cs | 4 +- Ical.Net/ParameterList.cs | 4 +- Ical.Net/Proxies/CalendarObjectListProxy.cs | 6 +- Ical.Net/Proxies/IUniqueComponentList.cs | 4 +- Ical.Net/Proxies/ParameterCollectionProxy.cs | 12 +- Ical.Net/Proxies/UniqueComponentListProxy.cs | 6 +- Ical.Net/Serialization/CalendarSerializer.cs | 8 +- Ical.Net/Serialization/ComponentSerializer.cs | 6 +- Ical.Net/Serialization/DataMapSerializer.cs | 8 +- Ical.Net/Serialization/DataTypeMapper.cs | 84 +++++------ .../DataTypeSerializerFactory.cs | 33 +++-- .../DataTypes/AttachmentSerializer.cs | 6 +- .../DataTypes/AttendeeSerializer.cs | 6 +- .../DataTypes/DataTypeSerializer.cs | 8 +- .../DataTypes/DateTimeSerializer.cs | 10 +- .../DataTypes/EncodableDataTypeSerializer.cs | 4 +- .../Serialization/DataTypes/EnumSerializer.cs | 6 +- .../DataTypes/FreeBusyEntrySerializer.cs | 6 +- .../DataTypes/GeographicLocationSerializer.cs | 8 +- .../DataTypes/IntegerSerializer.cs | 8 +- .../DataTypes/OrganizerSerializer.cs | 8 +- .../DataTypes/PeriodListSerializer.cs | 10 +- .../DataTypes/PeriodSerializer.cs | 18 +-- .../DataTypes/RecurrencePatternSerializer.cs | 41 +++--- .../DataTypes/RequestStatusSerializer.cs | 8 +- .../DataTypes/StatusCodeSerializer.cs | 6 +- .../DataTypes/StringSerializer.cs | 14 +- .../DataTypes/TimeSpanSerializer.cs | 8 +- .../DataTypes/TriggerSerializer.cs | 12 +- .../Serialization/DataTypes/UriSerializer.cs | 4 +- .../DataTypes/UtcOffsetSerializer.cs | 6 +- .../DataTypes/WeekDaySerializer.cs | 8 +- Ical.Net/Serialization/EncodingProvider.cs | 2 +- Ical.Net/Serialization/EventSerializer.cs | 6 +- .../Serialization/GenericListSerializer.cs | 8 +- Ical.Net/Serialization/ISerializer.cs | 2 +- Ical.Net/Serialization/ParameterSerializer.cs | 6 +- Ical.Net/Serialization/PropertySerializer.cs | 16 +-- Ical.Net/Serialization/SerializationUtil.cs | 2 +- Ical.Net/Serialization/SerializerFactory.cs | 26 ++-- Ical.Net/Serialization/SimpleDeserializer.cs | 4 +- Ical.Net/ServiceProvider.cs | 7 +- Ical.Net/Utility/DateUtil.cs | 8 +- Ical.Net/Utility/TextUtil.cs | 6 +- Ical.Net/VTimeZoneInfo.cs | 12 +- 98 files changed, 540 insertions(+), 543 deletions(-) diff --git a/Ical.Net.Benchmarks/Runner.cs b/Ical.Net.Benchmarks/Runner.cs index 489764e23..0a27e12b9 100644 --- a/Ical.Net.Benchmarks/Runner.cs +++ b/Ical.Net.Benchmarks/Runner.cs @@ -4,7 +4,7 @@ namespace Ical.Net.Benchmarks { public class Runner { - static void Main(string[] args) + private static void Main(string[] args) { BenchmarkRunner.Run(BenchmarkConverter.TypeToBenchmarks(typeof(ApplicationWorkflows))); diff --git a/Ical.Net.Tests/ProgramTest.cs b/Ical.Net.Tests/ProgramTest.cs index d1ebcb183..4dd3e4c7f 100644 --- a/Ical.Net.Tests/ProgramTest.cs +++ b/Ical.Net.Tests/ProgramTest.cs @@ -1,4 +1,4 @@ -using Ical.Net.DataTypes; +using Ical.Net.DataTypes; using Ical.Net.Utility; using NUnit.Framework; using System; @@ -129,7 +129,7 @@ public void Merge1() "US-Eastern", "US-Eastern", "US-Eastern", - "US-Eastern", + "US-Eastern", "US-Eastern", "US-Eastern", "US-Eastern", @@ -160,7 +160,7 @@ public void Merge1() [Test] public void SystemTimeZone3() { - // Per Jon Udell's test, we should be able to get all + // Per Jon Udell's test, we should be able to get all // system time zones on the machine and ensure they // are properly translated. var zones = TimeZoneInfo.GetSystemTimeZones(); @@ -168,11 +168,11 @@ public void SystemTimeZone3() { try { - TimeZoneInfo.FindSystemTimeZoneById(zone.Id); + TimeZoneInfo.FindSystemTimeZoneById(zone.Id); } catch (Exception) { - Assert.Fail("Not found: " + zone.StandardName); + Assert.Fail("Not found: " + zone.StandardName); } } } diff --git a/Ical.Net.Tests/SerializationTests.cs b/Ical.Net.Tests/SerializationTests.cs index 3bbbcb7a3..ab3630cbb 100644 --- a/Ical.Net.Tests/SerializationTests.cs +++ b/Ical.Net.Tests/SerializationTests.cs @@ -133,7 +133,7 @@ public static string InspectSerializedSection(string serialized, string sectionN //3 formats - UTC, local time as defined in vTimeZone, and floating, //at some point it would be great to independently unit test string serialization of an IDateTime object, into its 3 forms //http://www.kanzaki.com/docs/ical/dateTime.html - static string CalDateString(IDateTime cdt) + private static string CalDateString(IDateTime cdt) { var returnVar = $"{cdt.Year}{cdt.Month:D2}{cdt.Day:D2}T{cdt.Hour:D2}{cdt.Minute:D2}{cdt.Second:D2}"; if (cdt.IsUtc) @@ -147,7 +147,7 @@ static string CalDateString(IDateTime cdt) } //This method needs renaming - static Dictionary GetValues(string serialized, string name, string value) + private static Dictionary GetValues(string serialized, string name, string value) { var lengthened = serialized.Replace(SerializationConstants.LineBreak + ' ', string.Empty); //using a regex for now - for the sake of speed, it may be worth creating a C# text search later diff --git a/Ical.Net.Tests/VTimeZoneTest.cs b/Ical.Net.Tests/VTimeZoneTest.cs index be66269c0..5e1c40b38 100644 --- a/Ical.Net.Tests/VTimeZoneTest.cs +++ b/Ical.Net.Tests/VTimeZoneTest.cs @@ -206,7 +206,7 @@ public void VTimeZoneAmericaEirunepeShouldSerializeProperly() Assert.IsTrue(serialized.Contains("DTSTART:19320401T000000"), "DTSTART:19320401T000000 was not serialized"); Assert.IsTrue(serialized.Contains("DTSTART:20080624T000000"), "DTSTART:20080624T000000 was not serialized"); Assert.IsTrue(serialized.Contains("DTSTART:19501201T000000"), "DTSTART:19501201T000000 was not serialized"); - + // Should not contain the following Assert.IsFalse(serialized.Contains("RDATE:19501201T000000/P1D"), "The RDATE was not serialized correctly, should be RDATE:19501201T000000"); } diff --git a/Ical.Net/Calendar.cs b/Ical.Net/Calendar.cs index 6a8a12b52..47248aa6f 100644 --- a/Ical.Net/Calendar.cs +++ b/Ical.Net/Calendar.cs @@ -1,14 +1,14 @@ +using Ical.Net.CalendarComponents; +using Ical.Net.DataTypes; +using Ical.Net.Proxies; +using Ical.Net.Serialization; +using Ical.Net.Utility; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.Serialization; using System.Text; -using Ical.Net.CalendarComponents; -using Ical.Net.DataTypes; -using Ical.Net.Proxies; -using Ical.Net.Serialization; -using Ical.Net.Utility; namespace Ical.Net { @@ -180,9 +180,9 @@ public virtual RecurrenceEvaluationModeType RecurrenceEvaluationMode /// /// Adds a time zone to the iCalendar. This time zone may - /// then be used in date/time objects contained in the + /// then be used in date/time objects contained in the /// calendar. - /// + /// /// The time zone added to the calendar. public VTimeZone AddTimeZone(VTimeZone tz) { @@ -220,8 +220,8 @@ public void Evaluate(IDateTime fromDate, IDateTime toDate) } /// - /// Clears recurrence evaluations for recurring components. - /// + /// Clears recurrence evaluations for recurring components. + /// public void ClearEvaluation() { foreach (var recurrable in RecurringItems) @@ -310,21 +310,21 @@ public virtual HashSet GetOccurrences(DateTime startTime, DateTim /// To create an event, use the following: /// /// IICalendar iCal = new iCalendar(); - /// + /// /// Event evt = iCal.Create<Event>(); /// - /// + /// /// This creates the event, and adds it to the Events list of the iCalendar. /// /// The type of object to create /// An object of the type specified public T Create() where T : ICalendarComponent { - var obj = Activator.CreateInstance(typeof (T)) as ICalendarObject; + var obj = Activator.CreateInstance(typeof(T)) as ICalendarObject; if (obj is T) { this.AddChild(obj); - return (T) obj; + return (T)obj; } return default(T); } @@ -361,7 +361,7 @@ public virtual void MergeWith(IMergeable obj) { if (child is IUniqueComponent) { - if (!UniqueComponents.ContainsKey(((IUniqueComponent) child).Uid)) + if (!UniqueComponents.ContainsKey(((IUniqueComponent)child).Uid)) { this.AddChild(child); } @@ -383,7 +383,7 @@ public virtual FreeBusy GetFreeBusy(Organizer organizer, IEnumerable c /// /// Adds a system time zone to the iCalendar. This time zone may - /// then be used in date/time objects contained in the + /// then be used in date/time objects contained in the /// calendar. /// /// A System.TimeZoneInfo object to add to the calendar. diff --git a/Ical.Net/CalendarCollection.cs b/Ical.Net/CalendarCollection.cs index 2e42be37d..e096ec81b 100644 --- a/Ical.Net/CalendarCollection.cs +++ b/Ical.Net/CalendarCollection.cs @@ -1,12 +1,12 @@ +using Ical.Net.CalendarComponents; +using Ical.Net.DataTypes; +using Ical.Net.Serialization; +using Ical.Net.Utility; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; -using Ical.Net.CalendarComponents; -using Ical.Net.DataTypes; -using Ical.Net.Serialization; -using Ical.Net.Utility; namespace Ical.Net { diff --git a/Ical.Net/CalendarComponents/Alarm.cs b/Ical.Net/CalendarComponents/Alarm.cs index 98435e7ff..6f0adb420 100644 --- a/Ical.Net/CalendarComponents/Alarm.cs +++ b/Ical.Net/CalendarComponents/Alarm.cs @@ -1,4 +1,4 @@ -using Ical.Net.DataTypes; +using Ical.Net.DataTypes; using System; using System.Collections.Generic; diff --git a/Ical.Net/CalendarComponents/CalendarComponent.cs b/Ical.Net/CalendarComponents/CalendarComponent.cs index f9d1de653..cf5b77e16 100644 --- a/Ical.Net/CalendarComponents/CalendarComponent.cs +++ b/Ical.Net/CalendarComponents/CalendarComponent.cs @@ -1,4 +1,4 @@ -using System.Diagnostics; +using System.Diagnostics; using System.Runtime.Serialization; namespace Ical.Net.CalendarComponents diff --git a/Ical.Net/CalendarComponents/CalendarEvent.cs b/Ical.Net/CalendarComponents/CalendarEvent.cs index 674ffc300..4f3243cfb 100644 --- a/Ical.Net/CalendarComponents/CalendarEvent.cs +++ b/Ical.Net/CalendarComponents/CalendarEvent.cs @@ -1,4 +1,4 @@ -using Ical.Net.DataTypes; +using Ical.Net.DataTypes; using Ical.Net.Evaluation; using Ical.Net.Utility; using System; diff --git a/Ical.Net/CalendarComponents/RecurringComponent.cs b/Ical.Net/CalendarComponents/RecurringComponent.cs index acb985251..a0e905d8d 100644 --- a/Ical.Net/CalendarComponents/RecurringComponent.cs +++ b/Ical.Net/CalendarComponents/RecurringComponent.cs @@ -1,4 +1,4 @@ -using Ical.Net.DataTypes; +using Ical.Net.DataTypes; using Ical.Net.Evaluation; using Ical.Net.Proxies; using Ical.Net.Utility; diff --git a/Ical.Net/CalendarComponents/UniqueComponent.cs b/Ical.Net/CalendarComponents/UniqueComponent.cs index c5784ed26..c8b03ffec 100644 --- a/Ical.Net/CalendarComponents/UniqueComponent.cs +++ b/Ical.Net/CalendarComponents/UniqueComponent.cs @@ -1,4 +1,4 @@ -using Ical.Net.DataTypes; +using Ical.Net.DataTypes; using Ical.Net.Utility; using System; using System.Collections.Generic; diff --git a/Ical.Net/CalendarComponents/VTimeZone.cs b/Ical.Net/CalendarComponents/VTimeZone.cs index 782f59c29..24b3ca5f9 100644 --- a/Ical.Net/CalendarComponents/VTimeZone.cs +++ b/Ical.Net/CalendarComponents/VTimeZone.cs @@ -42,16 +42,16 @@ public static VTimeZone FromDateTimeZone(string tzId, DateTime earlistDateTimeTo earliestYear = earlistDateTimeToSupport.Year - 1; // Since we went back a year, we can't still be in a leap-year if (earliestMonth == 2 && earliestDay == 29) - earliestDay = 28; + earliestDay = 28; } else { // Going back to 1900, which wasn't a leap year, so we need to switch to Feb 20 if (earliestMonth == 2 && earliestDay == 29) - earliestDay = 28; + earliestDay = 28; } var earliest = Instant.FromUtc(earliestYear, earliestMonth, earliestDay, - earlistDateTimeToSupport.Hour, earlistDateTimeToSupport.Minute); + earlistDateTimeToSupport.Hour, earlistDateTimeToSupport.Minute); // Only include historical data if asked to do so. Otherwise, // use only the most recent adjustment rules available. diff --git a/Ical.Net/CalendarObject.cs b/Ical.Net/CalendarObject.cs index c5b4f3823..486edfcb9 100644 --- a/Ical.Net/CalendarObject.cs +++ b/Ical.Net/CalendarObject.cs @@ -1,6 +1,6 @@ +using Ical.Net.Collections; using System; using System.Runtime.Serialization; -using Ical.Net.Collections; namespace Ical.Net { @@ -46,7 +46,7 @@ private void Initialize() protected virtual void OnDeserializing(StreamingContext context) => Initialize(); - protected virtual void OnDeserialized(StreamingContext context) {} + protected virtual void OnDeserialized(StreamingContext context) { } private void Children_ItemAdded(object sender, ObjectEventArgs e) => e.First.Parent = this; @@ -56,7 +56,7 @@ public override bool Equals(object obj) { if (ReferenceEquals(null, obj)) return false; if (ReferenceEquals(this, obj)) return true; - return obj.GetType() == GetType() && Equals((CalendarObject) obj); + return obj.GetType() == GetType() && Equals((CalendarObject)obj); } public override int GetHashCode() => Name?.GetHashCode() ?? 0; @@ -95,7 +95,7 @@ public override void CopyFrom(ICopyable c) /// /// Gets or sets the name of the iCalObject. For iCalendar components, this is the RFC 5545 name of the component. - /// + /// public virtual string Name { get; set; } /// diff --git a/Ical.Net/CalendarObjectBase.cs b/Ical.Net/CalendarObjectBase.cs index 70a3febe3..03d28d96a 100644 --- a/Ical.Net/CalendarObjectBase.cs +++ b/Ical.Net/CalendarObjectBase.cs @@ -15,7 +15,7 @@ public CalendarObjectBase() /// Copies values from the target object to the /// current object. /// - public virtual void CopyFrom(ICopyable c) {} + public virtual void CopyFrom(ICopyable c) { } /// /// Creates a copy of the object. @@ -30,7 +30,7 @@ public virtual T Copy() if (obj is T) { obj.CopyFrom(this); - return (T) obj; + return (T)obj; } return default(T); } diff --git a/Ical.Net/CalendarParameter.cs b/Ical.Net/CalendarParameter.cs index 3e98de3f2..f2c7a7a04 100644 --- a/Ical.Net/CalendarParameter.cs +++ b/Ical.Net/CalendarParameter.cs @@ -1,9 +1,9 @@ +using Ical.Net.Collections.Interfaces; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Runtime.Serialization; -using Ical.Net.Collections.Interfaces; namespace Ical.Net { diff --git a/Ical.Net/CalendarProperty.cs b/Ical.Net/CalendarProperty.cs index f26d22612..8d60ea5d7 100644 --- a/Ical.Net/CalendarProperty.cs +++ b/Ical.Net/CalendarProperty.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; using System.Diagnostics; using System.Linq; @@ -33,16 +33,16 @@ public class CalendarProperty : CalendarObject, ICalendarProperty /// public virtual IParameterCollection Parameters { get; protected set; } = new ParameterList(); - public CalendarProperty() {} + public CalendarProperty() { } - public CalendarProperty(string name) : base(name) {} + public CalendarProperty(string name) : base(name) { } public CalendarProperty(string name, object value) : base(name) { _values.Add(value); } - public CalendarProperty(int line, int col) : base(line, col) {} + public CalendarProperty(int line, int col) : base(line, col) { } /// /// Adds a parameter to the iCalendar object. diff --git a/Ical.Net/CalendarPropertyList.cs b/Ical.Net/CalendarPropertyList.cs index 8df928c7b..5717a7beb 100644 --- a/Ical.Net/CalendarPropertyList.cs +++ b/Ical.Net/CalendarPropertyList.cs @@ -1,5 +1,5 @@ -using System.Linq; -using Ical.Net.Collections; +using Ical.Net.Collections; +using System.Linq; namespace Ical.Net { @@ -7,7 +7,7 @@ public class CalendarPropertyList : GroupedValueList _dictionary.ContainsKey(group) public virtual IEnumerable Values() => _dictionary.Values.SelectMany(i => i); public virtual IEnumerable AllOf(TGroup group) => _dictionary.ContainsKey(@group) - ? (IEnumerable) _dictionary[@group] + ? (IEnumerable)_dictionary[@group] : new TItem[0]; public virtual bool Remove(TItem obj) @@ -219,5 +219,5 @@ public virtual TItem this[int index] public IEnumerator GetEnumerator() => new GroupedListEnumerator(_lists); IEnumerator IEnumerable.GetEnumerator() => new GroupedListEnumerator(_lists); - } + } } diff --git a/Ical.Net/Collections/GroupedValueList.cs b/Ical.Net/Collections/GroupedValueList.cs index 3640186dc..72fb8233b 100644 --- a/Ical.Net/Collections/GroupedValueList.cs +++ b/Ical.Net/Collections/GroupedValueList.cs @@ -1,15 +1,15 @@ -using System; +using Ical.Net.Collections.Interfaces; +using Ical.Net.Collections.Proxies; +using System; using System.Collections.Generic; using System.Linq; -using Ical.Net.Collections.Interfaces; -using Ical.Net.Collections.Proxies; namespace Ical.Net.Collections { public class GroupedValueList : GroupedList where TInterface : class, IGroupedObject, IValueObject - where TItem : new() + where TItem : new() { public virtual void Set(TGroup group, TValueType value) { diff --git a/Ical.Net/Collections/IGroupedCollection.cs b/Ical.Net/Collections/IGroupedCollection.cs index a317e7c0a..4682f54f9 100644 --- a/Ical.Net/Collections/IGroupedCollection.cs +++ b/Ical.Net/Collections/IGroupedCollection.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; namespace Ical.Net.Collections @@ -14,7 +14,7 @@ public interface IGroupedCollection : /// /// Removes all items with the matching group from the collection. - /// + /// /// True if the object was removed, false otherwise. bool Remove(TGroup group); @@ -22,9 +22,9 @@ public interface IGroupedCollection : /// Clears all items matching the specified group. /// void Clear(TGroup group); - + /// - /// Returns true if the list contains at least one + /// Returns true if the list contains at least one /// object with a matching group, false otherwise. /// bool ContainsKey(TGroup group); @@ -34,7 +34,7 @@ public interface IGroupedCollection : /// with a matching group. /// int CountOf(TGroup group); - + /// /// Returns a list of objects that /// match the specified group. diff --git a/Ical.Net/Collections/IGroupedList.cs b/Ical.Net/Collections/IGroupedList.cs index 4ce05cb77..7ce39921b 100644 --- a/Ical.Net/Collections/IGroupedList.cs +++ b/Ical.Net/Collections/IGroupedList.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; namespace Ical.Net.Collections { diff --git a/Ical.Net/Collections/IGroupedObject.cs b/Ical.Net/Collections/IGroupedObject.cs index 8af047651..5ee400b63 100644 --- a/Ical.Net/Collections/IGroupedObject.cs +++ b/Ical.Net/Collections/IGroupedObject.cs @@ -1,4 +1,4 @@ -namespace Ical.Net.Collections +namespace Ical.Net.Collections { public interface IGroupedObject { diff --git a/Ical.Net/Collections/Proxies/GroupedCollectionProxy.cs b/Ical.Net/Collections/Proxies/GroupedCollectionProxy.cs index eb3ccc1fb..cb75e0370 100644 --- a/Ical.Net/Collections/Proxies/GroupedCollectionProxy.cs +++ b/Ical.Net/Collections/Proxies/GroupedCollectionProxy.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections; using System.Collections.Generic; using System.Linq; diff --git a/Ical.Net/Collections/Proxies/GroupedValueListProxy.cs b/Ical.Net/Collections/Proxies/GroupedValueListProxy.cs index 0b908e6b4..349a3ae28 100644 --- a/Ical.Net/Collections/Proxies/GroupedValueListProxy.cs +++ b/Ical.Net/Collections/Proxies/GroupedValueListProxy.cs @@ -1,8 +1,8 @@ +using Ical.Net.Collections.Interfaces; using System; using System.Collections; using System.Collections.Generic; using System.Linq; -using Ical.Net.Collections.Interfaces; namespace Ical.Net.Collections.Proxies { @@ -11,7 +11,7 @@ namespace Ical.Net.Collections.Proxies /// public class GroupedValueListProxy : IList where TInterface : class, IGroupedObject, IValueObject - where TItem : new() + where TItem : new() { private readonly GroupedValueList _realObject; private readonly TGroup _group; @@ -99,13 +99,13 @@ public virtual void Clear() public virtual void CopyTo(TNewValue[] array, int arrayIndex) { - Items + Items .Where(o => o.Values != null) .SelectMany(o => o.Values) .ToArray() .CopyTo(array, arrayIndex); } - + public virtual int Count => Items.Sum(o => o.ValueCount); public virtual bool IsReadOnly => false; @@ -214,7 +214,7 @@ public virtual TNewValue this[int index] set { if (index >= 0 && index < Count) - { + { if (!Equals(value, default(TNewValue))) { Insert(index, value); diff --git a/Ical.Net/Constants.cs b/Ical.Net/Constants.cs index 5a61a55e2..67a991f4d 100644 --- a/Ical.Net/Constants.cs +++ b/Ical.Net/Constants.cs @@ -148,7 +148,7 @@ public static class TodoStatus /// /// Status codes available to a entry. - /// + /// public static class JournalStatus { public const string Name = "VJOURNAL"; @@ -184,24 +184,24 @@ public enum FrequencyType /// Indicates the occurrence of the specific day within a /// MONTHLY or YEARLY recurrence frequency. For example, within /// a MONTHLY frequency, consider the following: - /// + /// /// RecurrencePattern r = new RecurrencePattern(); /// r.Frequency = FrequencyType.Monthly; /// r.ByDay.Add(new WeekDay(DayOfWeek.Monday, FrequencyOccurrence.First)); - /// + /// /// The above example represents the first Monday within the month, - /// whereas if FrequencyOccurrence.Last were specified, it would + /// whereas if FrequencyOccurrence.Last were specified, it would /// represent the last Monday of the month. - /// + /// /// For a YEARLY frequency, consider the following: - /// + /// /// Recur r = new Recur(); /// r.Frequency = FrequencyType.Yearly; /// r.ByDay.Add(new WeekDay(DayOfWeek.Monday, FrequencyOccurrence.Second)); - /// + /// /// The above example represents the second Monday of the year. This can /// also be represented with the following code: - /// + /// /// r.ByDay.Add(new WeekDay(DayOfWeek.Monday, 2)); /// public enum FrequencyOccurrence @@ -309,7 +309,7 @@ public static class CalendarMethods /// requests, and the assignment of tasks to other /// "Calendar Users" are all examples. Requests are /// also used by the Organizer to update the status - /// of an iCalendar object. + /// of an iCalendar object. /// public const string Request = "REQUEST"; @@ -317,13 +317,13 @@ public static class CalendarMethods /// A reply is used in response to a request to /// convey Attendee status to the Organizer. /// Replies are commonly used to respond to meeting - /// and task requests. + /// and task requests. /// public const string Reply = "REPLY"; /// /// Add one or more new instances to an existing - /// recurring iCalendar object. + /// recurring iCalendar object. /// public const string Add = "ADD"; diff --git a/Ical.Net/DataTypes/AlarmOccurrence.cs b/Ical.Net/DataTypes/AlarmOccurrence.cs index 11e6aadcc..7b2de1517 100644 --- a/Ical.Net/DataTypes/AlarmOccurrence.cs +++ b/Ical.Net/DataTypes/AlarmOccurrence.cs @@ -1,14 +1,14 @@ +using Ical.Net.CalendarComponents; using System; -using Ical.Net.CalendarComponents; namespace Ical.Net.DataTypes { /// - /// A class that represents a specific occurrence of an . + /// A class that represents a specific occurrence of an . /// /// /// The contains the when - /// the alarm occurs, the that fired, and the + /// the alarm occurs, the that fired, and the /// component on which the alarm fired. /// public class AlarmOccurrence : IComparable @@ -42,7 +42,7 @@ public AlarmOccurrence(Alarm a, IDateTime dt, IRecurringComponent rc) public int CompareTo(AlarmOccurrence other) => Period.CompareTo(other.Period); protected bool Equals(AlarmOccurrence other) - => Equals(Period, other.Period) + => Equals(Period, other.Period) && Equals(Component, other.Component) && Equals(Alarm, other.Alarm); diff --git a/Ical.Net/DataTypes/Attachment.cs b/Ical.Net/DataTypes/Attachment.cs index 28a7e1d1f..ef2972ec0 100644 --- a/Ical.Net/DataTypes/Attachment.cs +++ b/Ical.Net/DataTypes/Attachment.cs @@ -1,8 +1,8 @@ +using Ical.Net.Serialization.DataTypes; +using Ical.Net.Utility; using System; using System.Linq; using System.Text; -using Ical.Net.Serialization.DataTypes; -using Ical.Net.Utility; namespace Ical.Net.DataTypes { @@ -36,7 +36,7 @@ public virtual string FormatType set => Parameters.Set("FMTTYPE", value); } - public Attachment() {} + public Attachment() { } public Attachment(byte[] value) : this() { @@ -86,7 +86,7 @@ public override bool Equals(object obj) { if (ReferenceEquals(null, obj)) return false; if (ReferenceEquals(this, obj)) return true; - return obj.GetType() == GetType() && Equals((Attachment) obj); + return obj.GetType() == GetType() && Equals((Attachment)obj); } public override int GetHashCode() diff --git a/Ical.Net/DataTypes/Attendee.cs b/Ical.Net/DataTypes/Attendee.cs index eff96fbe6..350f64eed 100644 --- a/Ical.Net/DataTypes/Attendee.cs +++ b/Ical.Net/DataTypes/Attendee.cs @@ -1,7 +1,7 @@ -using System; +using Ical.Net.Utility; +using System; using System.Collections.Generic; using System.Linq; -using Ical.Net.Utility; namespace Ical.Net.DataTypes { @@ -226,7 +226,7 @@ public virtual IList DelegatedFrom /// Uri associated with the attendee, typically an email address public virtual Uri Value { get; set; } - public Attendee() {} + public Attendee() { } public Attendee(Uri attendee) { @@ -243,7 +243,7 @@ public Attendee(string attendeeUri) } //ToDo: See if this can be deleted - public override void CopyFrom(ICopyable obj) {} + public override void CopyFrom(ICopyable obj) { } protected bool Equals(Attendee other) => Equals(SentBy, other.SentBy) && string.Equals(CommonName, other.CommonName, StringComparison.OrdinalIgnoreCase) @@ -262,7 +262,7 @@ public override bool Equals(object obj) if (ReferenceEquals(null, obj)) return false; if (ReferenceEquals(this, obj)) return true; if (obj.GetType() != GetType()) return false; - return Equals((Attendee) obj); + return Equals((Attendee)obj); } public override int GetHashCode() diff --git a/Ical.Net/DataTypes/CalDateTime.cs b/Ical.Net/DataTypes/CalDateTime.cs index 017aa021c..a6a336bae 100644 --- a/Ical.Net/DataTypes/CalDateTime.cs +++ b/Ical.Net/DataTypes/CalDateTime.cs @@ -1,8 +1,8 @@ -using System; -using System.IO; -using Ical.Net.Serialization.DataTypes; +using Ical.Net.Serialization.DataTypes; using Ical.Net.Utility; using NodaTime; +using System; +using System.IO; namespace Ical.Net.DataTypes { @@ -152,7 +152,7 @@ public bool Equals(CalDateTime other) => this == other; public override bool Equals(object other) - => other is IDateTime && (CalDateTime) other == this; + => other is IDateTime && (CalDateTime)other == this; public override int GetHashCode() { @@ -255,7 +255,7 @@ public DateTime AsUtc var asLocal = DateUtil.ToZonedDateTimeLeniently(Value, TzId); _asUtc = asLocal.ToDateTimeUtc(); } - else if(IsUtc || Value.Kind == DateTimeKind.Utc) + else if (IsUtc || Value.Kind == DateTimeKind.Utc) { _asUtc = DateTime.SpecifyKind(Value, DateTimeKind.Utc); } diff --git a/Ical.Net/DataTypes/CalendarDataType.cs b/Ical.Net/DataTypes/CalendarDataType.cs index 3a1aaf594..c8ba900a4 100644 --- a/Ical.Net/DataTypes/CalendarDataType.cs +++ b/Ical.Net/DataTypes/CalendarDataType.cs @@ -1,6 +1,6 @@ +using Ical.Net.Proxies; using System; using System.Runtime.Serialization; -using Ical.Net.Proxies; namespace Ical.Net.DataTypes { @@ -44,7 +44,7 @@ protected virtual void OnDeserializing(StreamingContext context) Initialize(); } - protected virtual void OnDeserialized(StreamingContext context) {} + protected virtual void OnDeserialized(StreamingContext context) { } public virtual Type GetValueType() { @@ -54,34 +54,34 @@ public virtual Type GetValueType() switch (_proxy.Get("VALUE")) { case "BINARY": - return typeof (byte[]); + return typeof(byte[]); case "BOOLEAN": - return typeof (bool); + return typeof(bool); case "CAL-ADDRESS": - return typeof (Uri); + return typeof(Uri); case "DATE": - return typeof (IDateTime); + return typeof(IDateTime); case "DATE-TIME": - return typeof (IDateTime); + return typeof(IDateTime); case "DURATION": - return typeof (TimeSpan); + return typeof(TimeSpan); case "FLOAT": - return typeof (double); + return typeof(double); case "INTEGER": - return typeof (int); + return typeof(int); case "PERIOD": - return typeof (Period); + return typeof(Period); case "RECUR": - return typeof (RecurrencePattern); + return typeof(RecurrencePattern); case "TEXT": - return typeof (string); + return typeof(string); case "TIME": // FIXME: implement ISO.8601.2004 throw new NotImplementedException(); case "URI": - return typeof (Uri); + return typeof(Uri); case "UTC-OFFSET": - return typeof (UtcOffset); + return typeof(UtcOffset); default: return null; } @@ -110,7 +110,7 @@ public virtual ICalendarObject AssociatedObject _proxy.SetParent(_AssociatedObject); if (_AssociatedObject is ICalendarParameterCollectionContainer) { - _proxy.SetProxiedObject(((ICalendarParameterCollectionContainer) _AssociatedObject).Parameters); + _proxy.SetProxiedObject(((ICalendarParameterCollectionContainer)_AssociatedObject).Parameters); } } else @@ -140,7 +140,7 @@ public virtual void CopyFrom(ICopyable obj) return; } - var dt = (ICalendarDataType) obj; + var dt = (ICalendarDataType)obj; _AssociatedObject = dt.AssociatedObject; _proxy.SetParent(_AssociatedObject); _proxy.SetProxiedObject(dt.Parameters); @@ -159,7 +159,7 @@ public virtual T Copy() if (obj is T) { obj.CopyFrom(this); - return (T) obj; + return (T)obj; } return default(T); } diff --git a/Ical.Net/DataTypes/GeographicLocation.cs b/Ical.Net/DataTypes/GeographicLocation.cs index c156be2a9..a7d3ad69e 100644 --- a/Ical.Net/DataTypes/GeographicLocation.cs +++ b/Ical.Net/DataTypes/GeographicLocation.cs @@ -1,6 +1,6 @@ -using System.Diagnostics; -using Ical.Net.CalendarComponents; +using Ical.Net.CalendarComponents; using Ical.Net.Serialization.DataTypes; +using System.Diagnostics; namespace Ical.Net.DataTypes { @@ -14,7 +14,7 @@ public class GeographicLocation : EncodableDataType public double Latitude { get; set; } public double Longitude { get; set; } - public GeographicLocation() {} + public GeographicLocation() { } public GeographicLocation(string value) : this() { @@ -28,7 +28,7 @@ public GeographicLocation(double latitude, double longitude) Longitude = longitude; } - public override void CopyFrom(ICopyable obj) {} + public override void CopyFrom(ICopyable obj) { } public override string ToString() => Latitude.ToString("0.000000") + ";" + Longitude.ToString("0.000000"); diff --git a/Ical.Net/DataTypes/Occurrence.cs b/Ical.Net/DataTypes/Occurrence.cs index 3332099a4..492cdbb5c 100644 --- a/Ical.Net/DataTypes/Occurrence.cs +++ b/Ical.Net/DataTypes/Occurrence.cs @@ -1,5 +1,5 @@ -using System; using Ical.Net.CalendarComponents; +using System; namespace Ical.Net.DataTypes { @@ -28,7 +28,7 @@ public override bool Equals(object obj) { return false; } - return obj is Occurrence && Equals((Occurrence) obj); + return obj is Occurrence && Equals((Occurrence)obj); } public override int GetHashCode() diff --git a/Ical.Net/DataTypes/Organizer.cs b/Ical.Net/DataTypes/Organizer.cs index 7b0277af0..d63198e26 100644 --- a/Ical.Net/DataTypes/Organizer.cs +++ b/Ical.Net/DataTypes/Organizer.cs @@ -1,7 +1,7 @@ +using Ical.Net.Serialization.DataTypes; using System; using System.Diagnostics; using System.IO; -using Ical.Net.Serialization.DataTypes; namespace Ical.Net.DataTypes { @@ -22,7 +22,7 @@ public virtual Uri SentBy } else { - Parameters.Set("SENT-BY", (string) null); + Parameters.Set("SENT-BY", (string)null); } } } @@ -44,14 +44,14 @@ public virtual Uri DirectoryEntry } else { - Parameters.Set("DIR", (string) null); + Parameters.Set("DIR", (string)null); } } } public virtual Uri Value { get; set; } - public Organizer() {} + public Organizer() { } public Organizer(string value) : this() { @@ -80,7 +80,7 @@ public override bool Equals(object obj) { return false; } - return Equals((Organizer) obj); + return Equals((Organizer)obj); } public override int GetHashCode() => Value?.GetHashCode() ?? 0; diff --git a/Ical.Net/DataTypes/Period.cs b/Ical.Net/DataTypes/Period.cs index 7edad2c73..187d38d41 100644 --- a/Ical.Net/DataTypes/Period.cs +++ b/Ical.Net/DataTypes/Period.cs @@ -1,15 +1,15 @@ +using Ical.Net.Serialization.DataTypes; using System; -using Ical.Net.Serialization.DataTypes; namespace Ical.Net.DataTypes { - /// Represents an iCalendar period of time. + /// Represents an iCalendar period of time. public class Period : EncodableDataType, IComparable { public Period() { } public Period(IDateTime occurs) - : this(occurs, default(TimeSpan)) {} + : this(occurs, default(TimeSpan)) { } public Period(IDateTime start, IDateTime end) { @@ -64,7 +64,7 @@ public override bool Equals(object obj) { if (ReferenceEquals(null, obj)) return false; if (ReferenceEquals(this, obj)) return true; - return obj.GetType() == GetType() && Equals((Period) obj); + return obj.GetType() == GetType() && Equals((Period)obj); } public override int GetHashCode() diff --git a/Ical.Net/DataTypes/PeriodList.cs b/Ical.Net/DataTypes/PeriodList.cs index e5a09e79a..069f14209 100644 --- a/Ical.Net/DataTypes/PeriodList.cs +++ b/Ical.Net/DataTypes/PeriodList.cs @@ -1,11 +1,11 @@ +using Ical.Net.Evaluation; +using Ical.Net.Serialization.DataTypes; +using Ical.Net.Utility; using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; -using Ical.Net.Evaluation; -using Ical.Net.Serialization.DataTypes; -using Ical.Net.Utility; namespace Ical.Net.DataTypes { diff --git a/Ical.Net/DataTypes/RecurrencePattern.cs b/Ical.Net/DataTypes/RecurrencePattern.cs index 6b05a9441..5bad96d16 100644 --- a/Ical.Net/DataTypes/RecurrencePattern.cs +++ b/Ical.Net/DataTypes/RecurrencePattern.cs @@ -1,10 +1,10 @@ +using Ical.Net.Evaluation; +using Ical.Net.Serialization.DataTypes; +using Ical.Net.Utility; using System; using System.Collections.Generic; using System.IO; using System.Linq; -using Ical.Net.Evaluation; -using Ical.Net.Serialization.DataTypes; -using Ical.Net.Utility; namespace Ical.Net.DataTypes { @@ -17,7 +17,7 @@ public class RecurrencePattern : EncodableDataType private int _interval = int.MinValue; private RecurrenceRestrictionType? _restrictionType; private RecurrenceEvaluationModeType? _evaluationMode; - + public FrequencyType Frequency { get; set; } private DateTime _until = DateTime.MinValue; @@ -117,7 +117,7 @@ public RecurrencePattern() SetService(new RecurrencePatternEvaluator(this)); } - public RecurrencePattern(FrequencyType frequency) : this(frequency, 1) {} + public RecurrencePattern(FrequencyType frequency) : this(frequency, 1) { } public RecurrencePattern(FrequencyType frequency, int interval) : this() { @@ -197,7 +197,7 @@ public override void CopyFrom(ICopyable obj) return; } - var r = (RecurrencePattern) obj; + var r = (RecurrencePattern)obj; Frequency = r.Frequency; Until = r.Until; diff --git a/Ical.Net/DataTypes/RequestStatus.cs b/Ical.Net/DataTypes/RequestStatus.cs index 00422dcca..910ecffef 100644 --- a/Ical.Net/DataTypes/RequestStatus.cs +++ b/Ical.Net/DataTypes/RequestStatus.cs @@ -1,5 +1,5 @@ +using Ical.Net.Serialization.DataTypes; using System.IO; -using Ical.Net.Serialization.DataTypes; namespace Ical.Net.DataTypes { @@ -30,7 +30,7 @@ public virtual StatusCode StatusCode set => _mStatusCode = value; } - public RequestStatus() {} + public RequestStatus() { } public RequestStatus(string value) : this() { @@ -46,7 +46,7 @@ public override void CopyFrom(ICopyable obj) return; } - var rs = (RequestStatus) obj; + var rs = (RequestStatus)obj; if (rs.StatusCode != null) { StatusCode = rs.StatusCode; @@ -78,7 +78,7 @@ public override bool Equals(object obj) { return false; } - return Equals((RequestStatus) obj); + return Equals((RequestStatus)obj); } public override int GetHashCode() diff --git a/Ical.Net/DataTypes/StatusCode.cs b/Ical.Net/DataTypes/StatusCode.cs index 0e02a2a05..2e007e4ed 100644 --- a/Ical.Net/DataTypes/StatusCode.cs +++ b/Ical.Net/DataTypes/StatusCode.cs @@ -1,7 +1,7 @@ -using System.IO; -using System.Linq; using Ical.Net.Serialization.DataTypes; using Ical.Net.Utility; +using System.IO; +using System.Linq; namespace Ical.Net.DataTypes { @@ -32,7 +32,7 @@ public int Primary ? Parts[2] : 0; - public StatusCode() {} + public StatusCode() { } public StatusCode(int[] parts) { @@ -50,7 +50,7 @@ public override void CopyFrom(ICopyable obj) base.CopyFrom(obj); if (obj is StatusCode) { - var sc = (StatusCode) obj; + var sc = (StatusCode)obj; Parts = new int[sc.Parts.Length]; sc.Parts.CopyTo(Parts, 0); } @@ -74,7 +74,7 @@ public override bool Equals(object obj) { return false; } - return Equals((StatusCode) obj); + return Equals((StatusCode)obj); } public override int GetHashCode() => CollectionHelpers.GetHashCode(Parts); diff --git a/Ical.Net/DataTypes/Trigger.cs b/Ical.Net/DataTypes/Trigger.cs index 53bde1f19..96e2b1120 100644 --- a/Ical.Net/DataTypes/Trigger.cs +++ b/Ical.Net/DataTypes/Trigger.cs @@ -1,13 +1,13 @@ +using Ical.Net.Serialization.DataTypes; using System; using System.IO; -using Ical.Net.Serialization.DataTypes; namespace Ical.Net.DataTypes { /// /// A class that is used to specify exactly when an component will trigger. /// Usually this date/time is relative to the component to which the Alarm is associated. - /// + /// public class Trigger : EncodableDataType { private IDateTime _mDateTime; @@ -60,7 +60,7 @@ public virtual string Related public virtual bool IsRelative => _mDuration != null; - public Trigger() {} + public Trigger() { } public Trigger(TimeSpan ts) { @@ -81,7 +81,7 @@ public override void CopyFrom(ICopyable obj) return; } - var t = (Trigger) obj; + var t = (Trigger)obj; DateTime = t.DateTime; Duration = t.Duration; Related = t.Related; @@ -103,7 +103,7 @@ public override bool Equals(object obj) { return false; } - return Equals((Trigger) obj); + return Equals((Trigger)obj); } public override int GetHashCode() diff --git a/Ical.Net/DataTypes/UTCOffset.cs b/Ical.Net/DataTypes/UTCOffset.cs index 5c731c46d..a0f25488f 100644 --- a/Ical.Net/DataTypes/UTCOffset.cs +++ b/Ical.Net/DataTypes/UTCOffset.cs @@ -1,5 +1,5 @@ -using System; using Ical.Net.Serialization.DataTypes; +using System; namespace Ical.Net.DataTypes { @@ -18,7 +18,7 @@ public class UtcOffset : EncodableDataType public int Seconds => Math.Abs(Offset.Seconds); - public UtcOffset() {} + public UtcOffset() { } public UtcOffset(string value) : this() { @@ -54,7 +54,7 @@ public override bool Equals(object obj) { return false; } - return Equals((UtcOffset) obj); + return Equals((UtcOffset)obj); } public override int GetHashCode() => Offset.GetHashCode(); diff --git a/Ical.Net/DataTypes/WeekDay.cs b/Ical.Net/DataTypes/WeekDay.cs index b2af5707a..de477d129 100644 --- a/Ical.Net/DataTypes/WeekDay.cs +++ b/Ical.Net/DataTypes/WeekDay.cs @@ -1,6 +1,6 @@ +using Ical.Net.Serialization.DataTypes; using System; using System.IO; -using Ical.Net.Serialization.DataTypes; namespace Ical.Net.DataTypes { @@ -28,7 +28,7 @@ public WeekDay(DayOfWeek day, int num) : this(day) Offset = num; } - public WeekDay(DayOfWeek day, FrequencyOccurrence type) : this(day, (int) type) {} + public WeekDay(DayOfWeek day, FrequencyOccurrence type) : this(day, (int)type) { } public WeekDay(string value) { @@ -43,7 +43,7 @@ public override bool Equals(object obj) return false; } - var ds = (WeekDay) obj; + var ds = (WeekDay)obj; return ds.Offset == Offset && ds.DayOfWeek == DayOfWeek; } @@ -54,7 +54,7 @@ public override void CopyFrom(ICopyable obj) base.CopyFrom(obj); if (obj is WeekDay) { - var bd = (WeekDay) obj; + var bd = (WeekDay)obj; Offset = bd.Offset; DayOfWeek = bd.DayOfWeek; } @@ -69,7 +69,7 @@ public int CompareTo(object obj) } else if (obj is WeekDay) { - bd = (WeekDay) obj; + bd = (WeekDay)obj; } if (bd == null) diff --git a/Ical.Net/Evaluation/Evaluator.cs b/Ical.Net/Evaluation/Evaluator.cs index 79c343849..54496b984 100644 --- a/Ical.Net/Evaluation/Evaluator.cs +++ b/Ical.Net/Evaluation/Evaluator.cs @@ -1,8 +1,8 @@ -using System; +using Ical.Net.DataTypes; +using Ical.Net.Utility; +using System; using System.Collections.Generic; using System.Globalization; -using Ical.Net.DataTypes; -using Ical.Net.Utility; namespace Ical.Net.Evaluation { diff --git a/Ical.Net/Evaluation/EventEvaluator.cs b/Ical.Net/Evaluation/EventEvaluator.cs index b2551d694..7a47d9b4f 100644 --- a/Ical.Net/Evaluation/EventEvaluator.cs +++ b/Ical.Net/Evaluation/EventEvaluator.cs @@ -1,8 +1,8 @@ -using System; +using Ical.Net.CalendarComponents; +using Ical.Net.DataTypes; +using System; using System.Collections.Generic; using System.Linq; -using Ical.Net.CalendarComponents; -using Ical.Net.DataTypes; namespace Ical.Net.Evaluation { @@ -14,7 +14,7 @@ protected CalendarEvent CalendarEvent set => Recurrable = value; } - public EventEvaluator(CalendarEvent evt) : base(evt) {} + public EventEvaluator(CalendarEvent evt) : base(evt) { } /// /// Evaluates this event to determine the dates and times for which the event occurs. diff --git a/Ical.Net/Evaluation/IEvaluator.cs b/Ical.Net/Evaluation/IEvaluator.cs index c918599f9..7abd8360f 100644 --- a/Ical.Net/Evaluation/IEvaluator.cs +++ b/Ical.Net/Evaluation/IEvaluator.cs @@ -1,6 +1,6 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.Collections.Generic; -using Ical.Net.DataTypes; namespace Ical.Net.Evaluation { diff --git a/Ical.Net/Evaluation/PeriodListEvaluator.cs b/Ical.Net/Evaluation/PeriodListEvaluator.cs index b959fd23f..caaf0ffc1 100644 --- a/Ical.Net/Evaluation/PeriodListEvaluator.cs +++ b/Ical.Net/Evaluation/PeriodListEvaluator.cs @@ -1,6 +1,6 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.Collections.Generic; -using Ical.Net.DataTypes; namespace Ical.Net.Evaluation { diff --git a/Ical.Net/Evaluation/RecurrencePatternEvaluator.cs b/Ical.Net/Evaluation/RecurrencePatternEvaluator.cs index a6c202f6e..413cab4b0 100644 --- a/Ical.Net/Evaluation/RecurrencePatternEvaluator.cs +++ b/Ical.Net/Evaluation/RecurrencePatternEvaluator.cs @@ -1,39 +1,39 @@ -using System; +using Ical.Net.DataTypes; +using Ical.Net.Utility; +using System; using System.Collections.Generic; using System.Globalization; using System.Linq; -using Ical.Net.DataTypes; -using Ical.Net.Utility; namespace Ical.Net.Evaluation { /// /// Much of this code comes from iCal4j, as Ben Fortuna has done an /// excellent job with the recurrence pattern evaluation there. - /// + /// /// Here's the iCal4j license: /// ================== /// iCal4j - License /// ================== - /// + /// /// Copyright (c) 2009, Ben Fortuna /// All rights reserved. - /// + /// /// Redistribution and use in source and binary forms, with or without /// modification, are permitted provided that the following conditions /// are met: - /// + /// /// o Redistributions of source code must retain the above copyright /// notice, this list of conditions and the following disclaimer. - /// + /// /// o Redistributions in binary form must reproduce the above copyright /// notice, this list of conditions and the following disclaimer in the /// documentation and/or other materials provided with the distribution. - /// + /// /// o Neither the name of Ben Fortuna nor the names of any other contributors /// may be used to endorse or promote products derived from this software /// without specific prior written permission. - /// + /// /// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS /// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT /// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR @@ -133,44 +133,44 @@ private void EnforceEvaluationRestrictions(RecurrencePattern pattern) switch (pattern.Frequency) { case FrequencyType.Secondly: - { - switch (evaluationRestriction) { - case RecurrenceRestrictionType.Default: - case RecurrenceRestrictionType.RestrictSecondly: - pattern.Frequency = FrequencyType.Minutely; - break; - case RecurrenceRestrictionType.RestrictMinutely: - pattern.Frequency = FrequencyType.Hourly; - break; - case RecurrenceRestrictionType.RestrictHourly: - pattern.Frequency = FrequencyType.Daily; - break; + switch (evaluationRestriction) + { + case RecurrenceRestrictionType.Default: + case RecurrenceRestrictionType.RestrictSecondly: + pattern.Frequency = FrequencyType.Minutely; + break; + case RecurrenceRestrictionType.RestrictMinutely: + pattern.Frequency = FrequencyType.Hourly; + break; + case RecurrenceRestrictionType.RestrictHourly: + pattern.Frequency = FrequencyType.Daily; + break; + } } - } break; case FrequencyType.Minutely: - { - switch (evaluationRestriction) { - case RecurrenceRestrictionType.RestrictMinutely: - pattern.Frequency = FrequencyType.Hourly; - break; - case RecurrenceRestrictionType.RestrictHourly: - pattern.Frequency = FrequencyType.Daily; - break; + switch (evaluationRestriction) + { + case RecurrenceRestrictionType.RestrictMinutely: + pattern.Frequency = FrequencyType.Hourly; + break; + case RecurrenceRestrictionType.RestrictHourly: + pattern.Frequency = FrequencyType.Daily; + break; + } } - } break; case FrequencyType.Hourly: - { - switch (evaluationRestriction) { - case RecurrenceRestrictionType.RestrictHourly: - pattern.Frequency = FrequencyType.Daily; - break; + switch (evaluationRestriction) + { + case RecurrenceRestrictionType.RestrictHourly: + pattern.Frequency = FrequencyType.Daily; + break; + } } - } break; } break; @@ -179,35 +179,35 @@ private void EnforceEvaluationRestrictions(RecurrencePattern pattern) switch (pattern.Frequency) { case FrequencyType.Secondly: - { - switch (evaluationRestriction) { - case RecurrenceRestrictionType.Default: - case RecurrenceRestrictionType.RestrictSecondly: - case RecurrenceRestrictionType.RestrictMinutely: - case RecurrenceRestrictionType.RestrictHourly: - throw new ArgumentException(); + switch (evaluationRestriction) + { + case RecurrenceRestrictionType.Default: + case RecurrenceRestrictionType.RestrictSecondly: + case RecurrenceRestrictionType.RestrictMinutely: + case RecurrenceRestrictionType.RestrictHourly: + throw new ArgumentException(); + } } - } break; case FrequencyType.Minutely: - { - switch (evaluationRestriction) { - case RecurrenceRestrictionType.RestrictMinutely: - case RecurrenceRestrictionType.RestrictHourly: - throw new ArgumentException(); + switch (evaluationRestriction) + { + case RecurrenceRestrictionType.RestrictMinutely: + case RecurrenceRestrictionType.RestrictHourly: + throw new ArgumentException(); + } } - } break; case FrequencyType.Hourly: - { - switch (evaluationRestriction) { - case RecurrenceRestrictionType.RestrictHourly: - throw new ArgumentException(); + switch (evaluationRestriction) + { + case RecurrenceRestrictionType.RestrictHourly: + throw new ArgumentException(); + } } - } break; } break; @@ -257,7 +257,7 @@ private HashSet GetDates(IDateTime seed, DateTime periodStart, DateTim { break; } - + if (pattern.Count >= 1 && dates.Count >= pattern.Count) { break; @@ -323,7 +323,7 @@ private HashSet GetDates(IDateTime seed, DateTime periodStart, DateTim private List GetCandidates(DateTime date, RecurrencePattern pattern, bool?[] expandBehaviors) { - var dates = new List {date}; + var dates = new List { date }; dates = GetMonthVariants(dates, pattern, expandBehaviors[0]); dates = GetWeekNoVariants(dates, pattern, expandBehaviors[1]); dates = GetYearDayVariants(dates, pattern, expandBehaviors[2]); @@ -490,7 +490,7 @@ private List GetYearDayVariants(List dates, RecurrencePatter } dates.RemoveAt(i); - Next: + Next: ; } @@ -552,7 +552,7 @@ select monthDay > 0 } } - Next: + Next: dates.RemoveAt(i); } @@ -606,7 +606,7 @@ private List GetDayVariants(List dates, RecurrencePattern pa } } dates.RemoveAt(i); - Next: + Next: ; } @@ -658,7 +658,7 @@ private List GetAbsWeekDays(DateTime date, WeekDay weekDay, Recurrence } date = date.AddDays(7); - currentWeekNo = Calendar.GetIso8601WeekOfYear(date, CalendarWeekRule.FirstFourDayWeek,pattern.FirstDayOfWeek); + currentWeekNo = Calendar.GetIso8601WeekOfYear(date, CalendarWeekRule.FirstFourDayWeek, pattern.FirstDayOfWeek); } } else if (pattern.Frequency == FrequencyType.Monthly || pattern.ByMonth.Count > 0) @@ -777,7 +777,7 @@ private List GetHourVariants(List dates, RecurrencePattern p } // Remove unmatched dates dates.RemoveAt(i); - Next: + Next: ; } return dates; @@ -827,7 +827,7 @@ private List GetMinuteVariants(List dates, RecurrencePattern } // Remove unmatched dates dates.RemoveAt(i); - Next: + Next: ; } return dates; @@ -877,7 +877,7 @@ private List GetSecondVariants(List dates, RecurrencePattern } // Remove unmatched dates dates.RemoveAt(i); - Next: + Next: ; } return dates; diff --git a/Ical.Net/Evaluation/RecurrenceUtil.cs b/Ical.Net/Evaluation/RecurrenceUtil.cs index aac199d57..7708e8938 100644 --- a/Ical.Net/Evaluation/RecurrenceUtil.cs +++ b/Ical.Net/Evaluation/RecurrenceUtil.cs @@ -1,8 +1,8 @@ -using System.Collections.Generic; -using System.Linq; -using Ical.Net.CalendarComponents; +using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; using Ical.Net.Utility; +using System.Collections.Generic; +using System.Linq; namespace Ical.Net.Evaluation { @@ -29,7 +29,7 @@ public static HashSet GetOccurrences(IRecurrable recurrable, IDateTi var start = recurrable.Start; start.AssociatedObject = recurrable as ICalendarObject; - // Change the time zone of periodStart/periodEnd as needed + // Change the time zone of periodStart/periodEnd as needed // so they can be used during the evaluation process. periodStart.TzId = start.TzId; @@ -39,12 +39,12 @@ public static HashSet GetOccurrences(IRecurrable recurrable, IDateTi includeReferenceDateInResults); var otherOccurrences = from p in periods - let endTime = p.EndTime ?? p.StartTime - where - (endTime.GreaterThan(periodStart) && p.StartTime.LessThan(periodEnd) || - (periodStart.Equals(periodEnd) && p.StartTime.LessThanOrEqual(periodStart) && endTime.GreaterThan(periodEnd))) || //A period that starts at the same time it ends - (p.StartTime.Equals(endTime) && periodStart.Equals(p.StartTime)) //An event that starts at the same time it ends - select new Occurrence(recurrable, p); + let endTime = p.EndTime ?? p.StartTime + where + (endTime.GreaterThan(periodStart) && p.StartTime.LessThan(periodEnd) || + (periodStart.Equals(periodEnd) && p.StartTime.LessThanOrEqual(periodStart) && endTime.GreaterThan(periodEnd))) || //A period that starts at the same time it ends + (p.StartTime.Equals(endTime) && periodStart.Equals(p.StartTime)) //An event that starts at the same time it ends + select new Occurrence(recurrable, p); var occurrences = new HashSet(otherOccurrences); return occurrences; @@ -56,42 +56,42 @@ public static HashSet GetOccurrences(IRecurrable recurrable, IDateTi switch (p.Frequency) { case FrequencyType.Minutely: - return new bool?[] {false, null, false, false, false, false, false, true, false}; + return new bool?[] { false, null, false, false, false, false, false, true, false }; case FrequencyType.Hourly: - return new bool?[] {false, null, false, false, false, false, true, true, false}; + return new bool?[] { false, null, false, false, false, false, true, true, false }; case FrequencyType.Daily: - return new bool?[] {false, null, null, false, false, true, true, true, false}; + return new bool?[] { false, null, null, false, false, true, true, true, false }; case FrequencyType.Weekly: - return new bool?[] {false, null, null, null, true, true, true, true, false}; + return new bool?[] { false, null, null, null, true, true, true, true, false }; case FrequencyType.Monthly: - { - var row = new bool?[] {false, null, null, true, true, true, true, true, false}; - - // Limit if BYMONTHDAY is present; otherwise, special expand for MONTHLY. - if (p.ByMonthDay.Count > 0) { - row[4] = false; - } + var row = new bool?[] { false, null, null, true, true, true, true, true, false }; - return row; - } - case FrequencyType.Yearly: - { - var row = new bool?[] {true, true, true, true, true, true, true, true, false}; + // Limit if BYMONTHDAY is present; otherwise, special expand for MONTHLY. + if (p.ByMonthDay.Count > 0) + { + row[4] = false; + } - // Limit if BYYEARDAY or BYMONTHDAY is present; otherwise, - // special expand for WEEKLY if BYWEEKNO present; otherwise, - // special expand for MONTHLY if BYMONTH present; otherwise, - // special expand for YEARLY. - if (p.ByYearDay.Count > 0 || p.ByMonthDay.Count > 0) - { - row[4] = false; + return row; } + case FrequencyType.Yearly: + { + var row = new bool?[] { true, true, true, true, true, true, true, true, false }; - return row; - } + // Limit if BYYEARDAY or BYMONTHDAY is present; otherwise, + // special expand for WEEKLY if BYWEEKNO present; otherwise, + // special expand for MONTHLY if BYMONTH present; otherwise, + // special expand for YEARLY. + if (p.ByYearDay.Count > 0 || p.ByMonthDay.Count > 0) + { + row[4] = false; + } + + return row; + } default: - return new bool?[] {false, null, false, false, false, false, false, false, false}; + return new bool?[] { false, null, false, false, false, false, false, false, false }; } } } diff --git a/Ical.Net/Evaluation/RecurringEvaluator.cs b/Ical.Net/Evaluation/RecurringEvaluator.cs index 0509b30cb..c435b4a66 100644 --- a/Ical.Net/Evaluation/RecurringEvaluator.cs +++ b/Ical.Net/Evaluation/RecurringEvaluator.cs @@ -1,8 +1,8 @@ +using Ical.Net.CalendarComponents; +using Ical.Net.DataTypes; using System; using System.Collections.Generic; using System.Linq; -using Ical.Net.CalendarComponents; -using Ical.Net.DataTypes; namespace Ical.Net.Evaluation { @@ -19,11 +19,11 @@ public RecurringEvaluator(IRecurrable obj) // the associated object manually if (obj is ICalendarObject) { - AssociatedObject = (ICalendarObject) obj; + AssociatedObject = (ICalendarObject)obj; } if (obj is ICalendarDataType) { - var dt = (ICalendarDataType) obj; + var dt = (ICalendarDataType)obj; AssociatedObject = dt.AssociatedObject; } } diff --git a/Ical.Net/Evaluation/TimeZoneEvaluator.cs b/Ical.Net/Evaluation/TimeZoneEvaluator.cs index 3bc040f00..2bd5e179b 100644 --- a/Ical.Net/Evaluation/TimeZoneEvaluator.cs +++ b/Ical.Net/Evaluation/TimeZoneEvaluator.cs @@ -1,8 +1,8 @@ -using System; +using Ical.Net.CalendarComponents; +using Ical.Net.DataTypes; +using System; using System.Collections.Generic; using System.Diagnostics; -using Ical.Net.CalendarComponents; -using Ical.Net.DataTypes; namespace Ical.Net.Evaluation { @@ -23,7 +23,7 @@ public TimeZoneEvaluator(VTimeZone tz) _occurrences = new List(); } - void ProcessOccurrences(IDateTime referenceDate) + private void ProcessOccurrences(IDateTime referenceDate) { // Sort the occurrences by start time _occurrences.Sort( diff --git a/Ical.Net/Evaluation/TimeZoneInfoEvaluator.cs b/Ical.Net/Evaluation/TimeZoneInfoEvaluator.cs index 18c5a3976..9a227f4e2 100644 --- a/Ical.Net/Evaluation/TimeZoneInfoEvaluator.cs +++ b/Ical.Net/Evaluation/TimeZoneInfoEvaluator.cs @@ -1,7 +1,7 @@ -using System; -using System.Collections.Generic; -using Ical.Net.CalendarComponents; +using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; +using System; +using System.Collections.Generic; namespace Ical.Net.Evaluation { diff --git a/Ical.Net/Evaluation/TodoEvaluator.cs b/Ical.Net/Evaluation/TodoEvaluator.cs index 37a943ed2..7e3b36af5 100644 --- a/Ical.Net/Evaluation/TodoEvaluator.cs +++ b/Ical.Net/Evaluation/TodoEvaluator.cs @@ -1,9 +1,9 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Ical.Net.CalendarComponents; +using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; using Ical.Net.Utility; +using System; +using System.Collections.Generic; +using System.Linq; namespace Ical.Net.Evaluation { @@ -11,7 +11,7 @@ public class TodoEvaluator : RecurringEvaluator { protected Todo Todo => Recurrable as Todo; - public TodoEvaluator(Todo todo) : base(todo) {} + public TodoEvaluator(Todo todo) : base(todo) { } public void EvaluateToPreviousOccurrence(IDateTime completedDate, IDateTime currDt) { diff --git a/Ical.Net/IGetFreeBusy.cs b/Ical.Net/IGetFreeBusy.cs index 233792672..df45840c3 100644 --- a/Ical.Net/IGetFreeBusy.cs +++ b/Ical.Net/IGetFreeBusy.cs @@ -1,6 +1,6 @@ -using System.Collections.Generic; -using Ical.Net.CalendarComponents; +using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; +using System.Collections.Generic; namespace Ical.Net { diff --git a/Ical.Net/IGetOccurrences.cs b/Ical.Net/IGetOccurrences.cs index a75f9bbb5..5694298b3 100644 --- a/Ical.Net/IGetOccurrences.cs +++ b/Ical.Net/IGetOccurrences.cs @@ -1,15 +1,15 @@ -using System; -using System.Collections.Generic; -using Ical.Net.CalendarComponents; +using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; +using System; +using System.Collections.Generic; namespace Ical.Net { public interface IGetOccurrences { /// - /// Clears a previous evaluation, usually because one of the - /// key elements used for evaluation has changed + /// Clears a previous evaluation, usually because one of the + /// key elements used for evaluation has changed /// (Start, End, Duration, recurrence rules, exceptions, etc.). /// void ClearEvaluation(); diff --git a/Ical.Net/IParameterCollection.cs b/Ical.Net/IParameterCollection.cs index 00f3c9d58..f5aaff105 100644 --- a/Ical.Net/IParameterCollection.cs +++ b/Ical.Net/IParameterCollection.cs @@ -1,5 +1,5 @@ -using System.Collections.Generic; -using Ical.Net.Collections; +using Ical.Net.Collections; +using System.Collections.Generic; namespace Ical.Net { diff --git a/Ical.Net/ParameterList.cs b/Ical.Net/ParameterList.cs index f43c6d184..c7b8112bc 100644 --- a/Ical.Net/ParameterList.cs +++ b/Ical.Net/ParameterList.cs @@ -1,5 +1,5 @@ -using System.Collections.Generic; -using Ical.Net.Collections; +using Ical.Net.Collections; +using System.Collections.Generic; namespace Ical.Net { diff --git a/Ical.Net/Proxies/CalendarObjectListProxy.cs b/Ical.Net/Proxies/CalendarObjectListProxy.cs index 09a6170b7..7e89ead85 100644 --- a/Ical.Net/Proxies/CalendarObjectListProxy.cs +++ b/Ical.Net/Proxies/CalendarObjectListProxy.cs @@ -1,13 +1,13 @@ -using System.Linq; -using Ical.Net.Collections; +using Ical.Net.Collections; using Ical.Net.Collections.Proxies; +using System.Linq; namespace Ical.Net.Proxies { public class CalendarObjectListProxy : GroupedCollectionProxy, ICalendarObjectList where TType : class, ICalendarObject { - public CalendarObjectListProxy(IGroupedCollection list) : base(list) {} + public CalendarObjectListProxy(IGroupedCollection list) : base(list) { } public virtual TType this[int index] => this.Skip(index).FirstOrDefault(); } diff --git a/Ical.Net/Proxies/IUniqueComponentList.cs b/Ical.Net/Proxies/IUniqueComponentList.cs index 4bbc0403d..8962daa12 100644 --- a/Ical.Net/Proxies/IUniqueComponentList.cs +++ b/Ical.Net/Proxies/IUniqueComponentList.cs @@ -1,5 +1,5 @@ -using System.Collections.Generic; -using Ical.Net.CalendarComponents; +using Ical.Net.CalendarComponents; +using System.Collections.Generic; namespace Ical.Net.Proxies { diff --git a/Ical.Net/Proxies/ParameterCollectionProxy.cs b/Ical.Net/Proxies/ParameterCollectionProxy.cs index ed8c5ed09..573335c04 100644 --- a/Ical.Net/Proxies/ParameterCollectionProxy.cs +++ b/Ical.Net/Proxies/ParameterCollectionProxy.cs @@ -1,8 +1,8 @@ -using System; +using Ical.Net.Collections; +using Ical.Net.Collections.Proxies; +using System; using System.Collections.Generic; using System.Linq; -using Ical.Net.Collections; -using Ical.Net.Collections.Proxies; namespace Ical.Net.Proxies { @@ -11,7 +11,7 @@ public class ParameterCollectionProxy : GroupedCollectionProxy Parameters => RealObject as GroupedValueList; - public ParameterCollectionProxy(IGroupedList realObject) : base(realObject) {} + public ParameterCollectionProxy(IGroupedList realObject) : base(realObject) { } public virtual void SetParent(ICalendarObject parent) { @@ -65,9 +65,9 @@ public virtual void Set(string name, IEnumerable values) public virtual int IndexOf(CalendarParameter obj) => 0; - public virtual void Insert(int index, CalendarParameter item) {} + public virtual void Insert(int index, CalendarParameter item) { } - public virtual void RemoveAt(int index) {} + public virtual void RemoveAt(int index) { } public virtual CalendarParameter this[int index] { diff --git a/Ical.Net/Proxies/UniqueComponentListProxy.cs b/Ical.Net/Proxies/UniqueComponentListProxy.cs index 45e6cd1f6..c2360f19d 100644 --- a/Ical.Net/Proxies/UniqueComponentListProxy.cs +++ b/Ical.Net/Proxies/UniqueComponentListProxy.cs @@ -1,8 +1,8 @@ -using System; +using Ical.Net.CalendarComponents; +using Ical.Net.Collections; +using System; using System.Collections.Generic; using System.Linq; -using Ical.Net.CalendarComponents; -using Ical.Net.Collections; namespace Ical.Net.Proxies { diff --git a/Ical.Net/Serialization/CalendarSerializer.cs b/Ical.Net/Serialization/CalendarSerializer.cs index 9b36efd43..7bc701d25 100644 --- a/Ical.Net/Serialization/CalendarSerializer.cs +++ b/Ical.Net/Serialization/CalendarSerializer.cs @@ -9,14 +9,14 @@ public class CalendarSerializer : ComponentSerializer private readonly Calendar _calendar; public CalendarSerializer() - :this(new SerializationContext()) { } + : this(new SerializationContext()) { } public CalendarSerializer(Calendar cal) { _calendar = cal; } - public CalendarSerializer(SerializationContext ctx) : base(ctx) {} + public CalendarSerializer(SerializationContext ctx) : base(ctx) { } public virtual string SerializeToString() => SerializeToString(_calendar); @@ -27,7 +27,7 @@ public override string SerializeToString(object obj) if (obj is Calendar) { // If we're serializing a calendar, we should indicate that we're using ical.net to do the work - var calendar = (Calendar) obj; + var calendar = (Calendar)obj; calendar.Version = LibraryMetadata.Version; calendar.ProductId = LibraryMetadata.ProdId; @@ -55,7 +55,7 @@ public int Compare(ICalendarProperty x, ICalendarProperty y) { return 1; } - // Alphabetize all properties except VERSION, which should appear first. + // Alphabetize all properties except VERSION, which should appear first. if (string.Equals("VERSION", x.Name, StringComparison.OrdinalIgnoreCase)) { return -1; diff --git a/Ical.Net/Serialization/ComponentSerializer.cs b/Ical.Net/Serialization/ComponentSerializer.cs index bc16385a3..1d4a04028 100644 --- a/Ical.Net/Serialization/ComponentSerializer.cs +++ b/Ical.Net/Serialization/ComponentSerializer.cs @@ -1,10 +1,10 @@ -using System; +using Ical.Net.CalendarComponents; +using Ical.Net.Utility; +using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; -using Ical.Net.CalendarComponents; -using Ical.Net.Utility; namespace Ical.Net.Serialization { diff --git a/Ical.Net/Serialization/DataMapSerializer.cs b/Ical.Net/Serialization/DataMapSerializer.cs index 37c2927f5..e6aa780c3 100644 --- a/Ical.Net/Serialization/DataMapSerializer.cs +++ b/Ical.Net/Serialization/DataMapSerializer.cs @@ -1,14 +1,14 @@ -using System; +using Ical.Net.Serialization.DataTypes; +using System; using System.IO; -using Ical.Net.Serialization.DataTypes; namespace Ical.Net.Serialization { public class DataMapSerializer : SerializerBase { - public DataMapSerializer() {} + public DataMapSerializer() { } - public DataMapSerializer(SerializationContext ctx) : base(ctx) {} + public DataMapSerializer(SerializationContext ctx) : base(ctx) { } protected IStringSerializer GetMappedSerializer() { diff --git a/Ical.Net/Serialization/DataTypeMapper.cs b/Ical.Net/Serialization/DataTypeMapper.cs index 51d175e41..0c4ecdc1a 100644 --- a/Ical.Net/Serialization/DataTypeMapper.cs +++ b/Ical.Net/Serialization/DataTypeMapper.cs @@ -1,7 +1,7 @@ -using System; -using System.Collections.Generic; -using Ical.Net.CalendarComponents; +using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; +using System; +using System.Collections.Generic; namespace Ical.Net.Serialization { @@ -20,43 +20,43 @@ private class PropertyMapping public DataTypeMapper() { - AddPropertyMapping(AlarmAction.Name, typeof (AlarmAction), false); - AddPropertyMapping("ATTACH", typeof (Attachment), false); - AddPropertyMapping("ATTENDEE", typeof (Attendee), false); - AddPropertyMapping("CATEGORIES", typeof (string), true); - AddPropertyMapping("COMMENT", typeof (string), false); - AddPropertyMapping("COMPLETED", typeof (IDateTime), false); - AddPropertyMapping("CONTACT", typeof (string), false); - AddPropertyMapping("CREATED", typeof (IDateTime), false); - AddPropertyMapping("DTEND", typeof (IDateTime), false); - AddPropertyMapping("DTSTAMP", typeof (IDateTime), false); - AddPropertyMapping("DTSTART", typeof (IDateTime), false); - AddPropertyMapping("DUE", typeof (IDateTime), false); - AddPropertyMapping("DURATION", typeof (TimeSpan), false); - AddPropertyMapping("EXDATE", typeof (PeriodList), false); - AddPropertyMapping("EXRULE", typeof (RecurrencePattern), false); - AddPropertyMapping("FREEBUSY", typeof (FreeBusyEntry), true); - AddPropertyMapping("GEO", typeof (GeographicLocation), false); - AddPropertyMapping("LAST-MODIFIED", typeof (IDateTime), false); - AddPropertyMapping("ORGANIZER", typeof (Organizer), false); - AddPropertyMapping("PERCENT-COMPLETE", typeof (int), false); - AddPropertyMapping("PRIORITY", typeof (int), false); - AddPropertyMapping("RDATE", typeof (PeriodList), false); - AddPropertyMapping("RECURRENCE-ID", typeof (IDateTime), false); - AddPropertyMapping("RELATED-TO", typeof (string), false); - AddPropertyMapping("REQUEST-STATUS", typeof (RequestStatus), false); - AddPropertyMapping("REPEAT", typeof (int), false); - AddPropertyMapping("RESOURCES", typeof (string), true); - AddPropertyMapping("RRULE", typeof (RecurrencePattern), false); - AddPropertyMapping("SEQUENCE", typeof (int), false); + AddPropertyMapping(AlarmAction.Name, typeof(AlarmAction), false); + AddPropertyMapping("ATTACH", typeof(Attachment), false); + AddPropertyMapping("ATTENDEE", typeof(Attendee), false); + AddPropertyMapping("CATEGORIES", typeof(string), true); + AddPropertyMapping("COMMENT", typeof(string), false); + AddPropertyMapping("COMPLETED", typeof(IDateTime), false); + AddPropertyMapping("CONTACT", typeof(string), false); + AddPropertyMapping("CREATED", typeof(IDateTime), false); + AddPropertyMapping("DTEND", typeof(IDateTime), false); + AddPropertyMapping("DTSTAMP", typeof(IDateTime), false); + AddPropertyMapping("DTSTART", typeof(IDateTime), false); + AddPropertyMapping("DUE", typeof(IDateTime), false); + AddPropertyMapping("DURATION", typeof(TimeSpan), false); + AddPropertyMapping("EXDATE", typeof(PeriodList), false); + AddPropertyMapping("EXRULE", typeof(RecurrencePattern), false); + AddPropertyMapping("FREEBUSY", typeof(FreeBusyEntry), true); + AddPropertyMapping("GEO", typeof(GeographicLocation), false); + AddPropertyMapping("LAST-MODIFIED", typeof(IDateTime), false); + AddPropertyMapping("ORGANIZER", typeof(Organizer), false); + AddPropertyMapping("PERCENT-COMPLETE", typeof(int), false); + AddPropertyMapping("PRIORITY", typeof(int), false); + AddPropertyMapping("RDATE", typeof(PeriodList), false); + AddPropertyMapping("RECURRENCE-ID", typeof(IDateTime), false); + AddPropertyMapping("RELATED-TO", typeof(string), false); + AddPropertyMapping("REQUEST-STATUS", typeof(RequestStatus), false); + AddPropertyMapping("REPEAT", typeof(int), false); + AddPropertyMapping("RESOURCES", typeof(string), true); + AddPropertyMapping("RRULE", typeof(RecurrencePattern), false); + AddPropertyMapping("SEQUENCE", typeof(int), false); AddPropertyMapping("STATUS", ResolveStatusProperty, false); - AddPropertyMapping("TRANSP", typeof (TransparencyType), false); - AddPropertyMapping(TriggerRelation.Name, typeof (Trigger), false); - AddPropertyMapping("TZNAME", typeof (string), false); - AddPropertyMapping("TZOFFSETFROM", typeof (UtcOffset), false); - AddPropertyMapping("TZOFFSETTO", typeof (UtcOffset), false); - AddPropertyMapping("TZURL", typeof (Uri), false); - AddPropertyMapping("URL", typeof (Uri), false); + AddPropertyMapping("TRANSP", typeof(TransparencyType), false); + AddPropertyMapping(TriggerRelation.Name, typeof(Trigger), false); + AddPropertyMapping("TZNAME", typeof(string), false); + AddPropertyMapping("TZOFFSETFROM", typeof(UtcOffset), false); + AddPropertyMapping("TZOFFSETTO", typeof(UtcOffset), false); + AddPropertyMapping("TZURL", typeof(Uri), false); + AddPropertyMapping("URL", typeof(Uri), false); } protected Type ResolveStatusProperty(object context) @@ -69,11 +69,11 @@ protected Type ResolveStatusProperty(object context) switch (obj.Parent) { case CalendarEvent _: - return typeof (EventStatus); + return typeof(EventStatus); case Todo _: - return typeof (TodoStatus); + return typeof(TodoStatus); case Journal _: - return typeof (JournalStatus); + return typeof(JournalStatus); } return null; diff --git a/Ical.Net/Serialization/DataTypeSerializerFactory.cs b/Ical.Net/Serialization/DataTypeSerializerFactory.cs index 3fd983437..b95e3de6a 100644 --- a/Ical.Net/Serialization/DataTypeSerializerFactory.cs +++ b/Ical.Net/Serialization/DataTypeSerializerFactory.cs @@ -1,7 +1,6 @@ -using System; -using System.Reflection; -using Ical.Net.DataTypes; +using Ical.Net.DataTypes; using Ical.Net.Serialization.DataTypes; +using System; namespace Ical.Net.Serialization { @@ -22,59 +21,59 @@ public virtual ISerializer Build(Type objectType, SerializationContext ctx) { ISerializer s; - if (typeof (Attachment).IsAssignableFrom(objectType)) + if (typeof(Attachment).IsAssignableFrom(objectType)) { s = new AttachmentSerializer(ctx); } - else if (typeof (Attendee).IsAssignableFrom(objectType)) + else if (typeof(Attendee).IsAssignableFrom(objectType)) { s = new AttendeeSerializer(ctx); } - else if (typeof (IDateTime).IsAssignableFrom(objectType)) + else if (typeof(IDateTime).IsAssignableFrom(objectType)) { s = new DateTimeSerializer(ctx); } - else if (typeof (FreeBusyEntry).IsAssignableFrom(objectType)) + else if (typeof(FreeBusyEntry).IsAssignableFrom(objectType)) { s = new FreeBusyEntrySerializer(ctx); } - else if (typeof (GeographicLocation).IsAssignableFrom(objectType)) + else if (typeof(GeographicLocation).IsAssignableFrom(objectType)) { s = new GeographicLocationSerializer(ctx); } - else if (typeof (Organizer).IsAssignableFrom(objectType)) + else if (typeof(Organizer).IsAssignableFrom(objectType)) { s = new OrganizerSerializer(ctx); } - else if (typeof (Period).IsAssignableFrom(objectType)) + else if (typeof(Period).IsAssignableFrom(objectType)) { s = new PeriodSerializer(ctx); } - else if (typeof (PeriodList).IsAssignableFrom(objectType)) + else if (typeof(PeriodList).IsAssignableFrom(objectType)) { s = new PeriodListSerializer(ctx); } - else if (typeof (RecurrencePattern).IsAssignableFrom(objectType)) + else if (typeof(RecurrencePattern).IsAssignableFrom(objectType)) { s = new RecurrencePatternSerializer(ctx); } - else if (typeof (RequestStatus).IsAssignableFrom(objectType)) + else if (typeof(RequestStatus).IsAssignableFrom(objectType)) { s = new RequestStatusSerializer(ctx); } - else if (typeof (StatusCode).IsAssignableFrom(objectType)) + else if (typeof(StatusCode).IsAssignableFrom(objectType)) { s = new StatusCodeSerializer(ctx); } - else if (typeof (Trigger).IsAssignableFrom(objectType)) + else if (typeof(Trigger).IsAssignableFrom(objectType)) { s = new TriggerSerializer(ctx); } - else if (typeof (UtcOffset).IsAssignableFrom(objectType)) + else if (typeof(UtcOffset).IsAssignableFrom(objectType)) { s = new UtcOffsetSerializer(ctx); } - else if (typeof (WeekDay).IsAssignableFrom(objectType)) + else if (typeof(WeekDay).IsAssignableFrom(objectType)) { s = new WeekDaySerializer(ctx); } diff --git a/Ical.Net/Serialization/DataTypes/AttachmentSerializer.cs b/Ical.Net/Serialization/DataTypes/AttachmentSerializer.cs index b91f626e1..6d455b16f 100644 --- a/Ical.Net/Serialization/DataTypes/AttachmentSerializer.cs +++ b/Ical.Net/Serialization/DataTypes/AttachmentSerializer.cs @@ -1,6 +1,6 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.IO; -using Ical.Net.DataTypes; namespace Ical.Net.Serialization.DataTypes { @@ -61,7 +61,7 @@ public Attachment Deserialize(string attachment) if (valueType == typeof(byte[])) { // If the VALUE type is specifically set to BINARY, - // then set the Data property instead. + // then set the Data property instead. return new Attachment(data) { ValueEncoding = a.ValueEncoding, diff --git a/Ical.Net/Serialization/DataTypes/AttendeeSerializer.cs b/Ical.Net/Serialization/DataTypes/AttendeeSerializer.cs index 3c635b0f4..732647384 100644 --- a/Ical.Net/Serialization/DataTypes/AttendeeSerializer.cs +++ b/Ical.Net/Serialization/DataTypes/AttendeeSerializer.cs @@ -1,6 +1,6 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.IO; -using Ical.Net.DataTypes; namespace Ical.Net.Serialization.DataTypes { @@ -10,7 +10,7 @@ public AttendeeSerializer() { } public AttendeeSerializer(SerializationContext ctx) : base(ctx) { } - public override Type TargetType => typeof (Attendee); + public override Type TargetType => typeof(Attendee); public override string SerializeToString(object obj) { diff --git a/Ical.Net/Serialization/DataTypes/DataTypeSerializer.cs b/Ical.Net/Serialization/DataTypes/DataTypeSerializer.cs index 9ae792cca..adfb2bb50 100644 --- a/Ical.Net/Serialization/DataTypes/DataTypeSerializer.cs +++ b/Ical.Net/Serialization/DataTypes/DataTypeSerializer.cs @@ -1,13 +1,13 @@ -using System; -using Ical.Net.DataTypes; +using Ical.Net.DataTypes; +using System; namespace Ical.Net.Serialization.DataTypes { public abstract class DataTypeSerializer : SerializerBase { - protected DataTypeSerializer() {} + protected DataTypeSerializer() { } - protected DataTypeSerializer(SerializationContext ctx) : base(ctx) {} + protected DataTypeSerializer(SerializationContext ctx) : base(ctx) { } protected virtual ICalendarDataType CreateAndAssociate() { diff --git a/Ical.Net/Serialization/DataTypes/DateTimeSerializer.cs b/Ical.Net/Serialization/DataTypes/DateTimeSerializer.cs index b6a60d75c..1e885e9ce 100644 --- a/Ical.Net/Serialization/DataTypes/DateTimeSerializer.cs +++ b/Ical.Net/Serialization/DataTypes/DateTimeSerializer.cs @@ -1,8 +1,8 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.IO; using System.Text; using System.Text.RegularExpressions; -using Ical.Net.DataTypes; namespace Ical.Net.Serialization.DataTypes { @@ -32,12 +32,12 @@ private DateTime CoerceDateTime(int year, int month, int day, int hour, int minu dt = new DateTime(year, month, day, hour, minute, second, kind); } } - catch {} + catch { } return dt; } - public override Type TargetType => typeof (CalDateTime); + public override Type TargetType => typeof(CalDateTime); public override string SerializeToString(object obj) { @@ -47,7 +47,7 @@ public override string SerializeToString(object obj) return null; } - // RFC 5545 3.3.5: + // RFC 5545 3.3.5: // The date with UTC time, or absolute time, is identified by a LATIN // CAPITAL LETTER Z suffix character, the UTC designator, appended to // the time value. The "TZID" property parameter MUST NOT be applied to DATE-TIME diff --git a/Ical.Net/Serialization/DataTypes/EncodableDataTypeSerializer.cs b/Ical.Net/Serialization/DataTypes/EncodableDataTypeSerializer.cs index a1d5d5c5c..ad0cf9e81 100644 --- a/Ical.Net/Serialization/DataTypes/EncodableDataTypeSerializer.cs +++ b/Ical.Net/Serialization/DataTypes/EncodableDataTypeSerializer.cs @@ -4,9 +4,9 @@ namespace Ical.Net.Serialization.DataTypes { public abstract class EncodableDataTypeSerializer : DataTypeSerializer { - protected EncodableDataTypeSerializer() {} + protected EncodableDataTypeSerializer() { } - protected EncodableDataTypeSerializer(SerializationContext ctx) : base(ctx) {} + protected EncodableDataTypeSerializer(SerializationContext ctx) : base(ctx) { } protected string Encode(IEncodableDataType dt, string value) { diff --git a/Ical.Net/Serialization/DataTypes/EnumSerializer.cs b/Ical.Net/Serialization/DataTypes/EnumSerializer.cs index c2855ffcb..9e2c29623 100644 --- a/Ical.Net/Serialization/DataTypes/EnumSerializer.cs +++ b/Ical.Net/Serialization/DataTypes/EnumSerializer.cs @@ -1,6 +1,6 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.IO; -using Ical.Net.DataTypes; namespace Ical.Net.Serialization.DataTypes { @@ -62,7 +62,7 @@ public override object Deserialize(TextReader tr) // Remove "-" characters while parsing Enum values. return Enum.Parse(_mEnumType, value.Replace("-", ""), true); } - catch {} + catch { } return value; } diff --git a/Ical.Net/Serialization/DataTypes/FreeBusyEntrySerializer.cs b/Ical.Net/Serialization/DataTypes/FreeBusyEntrySerializer.cs index da2ac9c65..01522910e 100644 --- a/Ical.Net/Serialization/DataTypes/FreeBusyEntrySerializer.cs +++ b/Ical.Net/Serialization/DataTypes/FreeBusyEntrySerializer.cs @@ -1,6 +1,6 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.IO; -using Ical.Net.DataTypes; namespace Ical.Net.Serialization.DataTypes { @@ -10,7 +10,7 @@ public FreeBusyEntrySerializer() { } public FreeBusyEntrySerializer(SerializationContext ctx) : base(ctx) { } - public override Type TargetType => typeof (FreeBusyEntry); + public override Type TargetType => typeof(FreeBusyEntry); public override string SerializeToString(object obj) { diff --git a/Ical.Net/Serialization/DataTypes/GeographicLocationSerializer.cs b/Ical.Net/Serialization/DataTypes/GeographicLocationSerializer.cs index 73d998b13..b61325c75 100644 --- a/Ical.Net/Serialization/DataTypes/GeographicLocationSerializer.cs +++ b/Ical.Net/Serialization/DataTypes/GeographicLocationSerializer.cs @@ -1,7 +1,7 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.Globalization; using System.IO; -using Ical.Net.DataTypes; namespace Ical.Net.Serialization.DataTypes { @@ -11,7 +11,7 @@ public GeographicLocationSerializer() { } public GeographicLocationSerializer(SerializationContext ctx) : base(ctx) { } - public override Type TargetType => typeof (GeographicLocation); + public override Type TargetType => typeof(GeographicLocation); public override string SerializeToString(object obj) { @@ -42,7 +42,7 @@ public GeographicLocation Deserialize(string value) // Decode the value, if necessary! value = Decode(g, value); - var values = value.Split(new [] {';'}, StringSplitOptions.RemoveEmptyEntries); + var values = value.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (values.Length != 2) { return null; diff --git a/Ical.Net/Serialization/DataTypes/IntegerSerializer.cs b/Ical.Net/Serialization/DataTypes/IntegerSerializer.cs index 0e5df307b..9ff0e37ca 100644 --- a/Ical.Net/Serialization/DataTypes/IntegerSerializer.cs +++ b/Ical.Net/Serialization/DataTypes/IntegerSerializer.cs @@ -1,6 +1,6 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.IO; -using Ical.Net.DataTypes; namespace Ical.Net.Serialization.DataTypes { @@ -10,7 +10,7 @@ public IntegerSerializer() { } public IntegerSerializer(SerializationContext ctx) : base(ctx) { } - public override Type TargetType => typeof (int); + public override Type TargetType => typeof(int); public override string SerializeToString(object integer) { @@ -59,7 +59,7 @@ public override object Deserialize(TextReader tr) return i; } } - catch {} + catch { } return value; } diff --git a/Ical.Net/Serialization/DataTypes/OrganizerSerializer.cs b/Ical.Net/Serialization/DataTypes/OrganizerSerializer.cs index e4da28ab8..80107b560 100644 --- a/Ical.Net/Serialization/DataTypes/OrganizerSerializer.cs +++ b/Ical.Net/Serialization/DataTypes/OrganizerSerializer.cs @@ -1,6 +1,6 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.IO; -using Ical.Net.DataTypes; namespace Ical.Net.Serialization.DataTypes { @@ -10,7 +10,7 @@ public OrganizerSerializer() { } public OrganizerSerializer(SerializationContext ctx) : base(ctx) { } - public override Type TargetType => typeof (Organizer); + public override Type TargetType => typeof(Organizer); public override string SerializeToString(object obj) { @@ -48,7 +48,7 @@ public override object Deserialize(TextReader tr) o.Value = new Uri(uriString); } } - catch {} + catch { } return o; } diff --git a/Ical.Net/Serialization/DataTypes/PeriodListSerializer.cs b/Ical.Net/Serialization/DataTypes/PeriodListSerializer.cs index d4d4fca06..1f3c85903 100644 --- a/Ical.Net/Serialization/DataTypes/PeriodListSerializer.cs +++ b/Ical.Net/Serialization/DataTypes/PeriodListSerializer.cs @@ -1,7 +1,7 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.Collections.Generic; using System.IO; -using Ical.Net.DataTypes; namespace Ical.Net.Serialization.DataTypes { @@ -11,7 +11,7 @@ public PeriodListSerializer() { } public PeriodListSerializer(SerializationContext ctx) : base(ctx) { } - public override Type TargetType => typeof (PeriodList); + public override Type TargetType => typeof(PeriodList); public override string SerializeToString(object obj) { @@ -61,8 +61,8 @@ public override object Deserialize(TextReader tr) // Decode the value, if necessary value = Decode(rdt, value); - var dtSerializer = factory.Build(typeof (IDateTime), SerializationContext) as IStringSerializer; - var periodSerializer = factory.Build(typeof (Period), SerializationContext) as IStringSerializer; + var dtSerializer = factory.Build(typeof(IDateTime), SerializationContext) as IStringSerializer; + var periodSerializer = factory.Build(typeof(Period), SerializationContext) as IStringSerializer; if (dtSerializer == null || periodSerializer == null) { return null; diff --git a/Ical.Net/Serialization/DataTypes/PeriodSerializer.cs b/Ical.Net/Serialization/DataTypes/PeriodSerializer.cs index 24aabe281..3340a1a34 100644 --- a/Ical.Net/Serialization/DataTypes/PeriodSerializer.cs +++ b/Ical.Net/Serialization/DataTypes/PeriodSerializer.cs @@ -1,7 +1,7 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.IO; using System.Text; -using Ical.Net.DataTypes; namespace Ical.Net.Serialization.DataTypes { @@ -11,7 +11,7 @@ public PeriodSerializer() { } public PeriodSerializer(SerializationContext ctx) : base(ctx) { } - public override Type TargetType => typeof (Period); + public override Type TargetType => typeof(Period); public override string SerializeToString(object obj) { @@ -28,15 +28,15 @@ public override string SerializeToString(object obj) try { - var dtSerializer = factory.Build(typeof (IDateTime), SerializationContext) as IStringSerializer; - var timeSpanSerializer = factory.Build(typeof (TimeSpan), SerializationContext) as IStringSerializer; + var dtSerializer = factory.Build(typeof(IDateTime), SerializationContext) as IStringSerializer; + var timeSpanSerializer = factory.Build(typeof(TimeSpan), SerializationContext) as IStringSerializer; if (dtSerializer == null || timeSpanSerializer == null) { return null; } var sb = new StringBuilder(); - // Serialize the start time + // Serialize the start time sb.Append(dtSerializer.SerializeToString(p.StartTime)); // Serialize the duration or end time @@ -74,8 +74,8 @@ public override object Deserialize(TextReader tr) return null; } - var dtSerializer = factory.Build(typeof (IDateTime), SerializationContext) as IStringSerializer; - var durationSerializer = factory.Build(typeof (TimeSpan), SerializationContext) as IStringSerializer; + var dtSerializer = factory.Build(typeof(IDateTime), SerializationContext) as IStringSerializer; + var durationSerializer = factory.Build(typeof(TimeSpan), SerializationContext) as IStringSerializer; if (dtSerializer == null || durationSerializer == null) { return null; @@ -94,7 +94,7 @@ public override object Deserialize(TextReader tr) p.EndTime = dtSerializer.Deserialize(new StringReader(values[1])) as IDateTime; if (p.EndTime == null) { - p.Duration = (TimeSpan) durationSerializer.Deserialize(new StringReader(values[1])); + p.Duration = (TimeSpan)durationSerializer.Deserialize(new StringReader(values[1])); } // Only return an object if it has been deserialized correctly. diff --git a/Ical.Net/Serialization/DataTypes/RecurrencePatternSerializer.cs b/Ical.Net/Serialization/DataTypes/RecurrencePatternSerializer.cs index 5bb506f38..3bfd99fdd 100644 --- a/Ical.Net/Serialization/DataTypes/RecurrencePatternSerializer.cs +++ b/Ical.Net/Serialization/DataTypes/RecurrencePatternSerializer.cs @@ -1,10 +1,9 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.Collections.Generic; using System.IO; using System.Linq; -using System.Reflection; using System.Text.RegularExpressions; -using Ical.Net.DataTypes; namespace Ical.Net.Serialization.DataTypes { @@ -101,7 +100,7 @@ private void SerializeByValue(List aggregate, IList byValue, string } } - public override Type TargetType => typeof (RecurrencePattern); + public override Type TargetType => typeof(RecurrencePattern); public override string SerializeToString(object obj) { @@ -140,7 +139,7 @@ public override string SerializeToString(object obj) if (recur.Until != DateTime.MinValue) { - var serializer = factory.Build(typeof (IDateTime), SerializationContext) as IStringSerializer; + var serializer = factory.Build(typeof(IDateTime), SerializationContext) as IStringSerializer; if (serializer != null) { IDateTime until = new CalDateTime(recur.Until); @@ -151,7 +150,7 @@ public override string SerializeToString(object obj) if (recur.FirstDayOfWeek != DayOfWeek.Monday) { - values.Add("WKST=" + Enum.GetName(typeof (DayOfWeek), recur.FirstDayOfWeek).ToUpper().Substring(0, 2)); + values.Add("WKST=" + Enum.GetName(typeof(DayOfWeek), recur.FirstDayOfWeek).ToUpper().Substring(0, 2)); } if (recur.Count != int.MinValue) @@ -163,7 +162,7 @@ public override string SerializeToString(object obj) { var bydayValues = new List(recur.ByDay.Count); - var serializer = factory.Build(typeof (WeekDay), SerializationContext) as IStringSerializer; + var serializer = factory.Build(typeof(WeekDay), SerializationContext) as IStringSerializer; if (serializer != null) { bydayValues.AddRange(recur.ByDay.Select(byday => serializer.SerializeToString(byday))); @@ -230,7 +229,7 @@ public override object Deserialize(TextReader tr) if (match.Success) { // Parse the frequency type - r.Frequency = (FrequencyType) Enum.Parse(typeof (FrequencyType), match.Groups[1].Value, true); + r.Frequency = (FrequencyType)Enum.Parse(typeof(FrequencyType), match.Groups[1].Value, true); // NOTE: fixed a bug where the group 2 match // resulted in an empty string, which caused @@ -247,14 +246,14 @@ public override object Deserialize(TextReader tr) switch (keyword.ToUpper()) { case "UNTIL": - { - var serializer = factory.Build(typeof (IDateTime), SerializationContext) as IStringSerializer; - var dt = serializer?.Deserialize(new StringReader(keyValue)) as IDateTime; - if (dt != null) { - r.Until = dt.Value; + var serializer = factory.Build(typeof(IDateTime), SerializationContext) as IStringSerializer; + var dt = serializer?.Deserialize(new StringReader(keyValue)) as IDateTime; + if (dt != null) + { + r.Until = dt.Value; + } } - } break; case "COUNT": r.Count = Convert.ToInt32(keyValue); @@ -272,13 +271,13 @@ public override object Deserialize(TextReader tr) AddInt32Values(r.ByHour, keyValue); break; case "BYDAY": - { - var days = keyValue.Split(','); - foreach (var day in days) { - r.ByDay.Add(new WeekDay(day)); + var days = keyValue.Split(','); + foreach (var day in days) + { + r.ByDay.Add(new WeekDay(day)); + } } - } break; case "BYMONTHDAY": AddInt32Values(r.ByMonthDay, keyValue); @@ -413,8 +412,8 @@ public override object Deserialize(TextReader tr) } var dayOfWeekQuery = from Capture capture in match.Groups["Day"].Captures - select (DayOfWeek) Enum.Parse(typeof(DayOfWeek), capture.Value, true) into dayOfWeek - select new WeekDay(dayOfWeek) {Offset = num}; + select (DayOfWeek)Enum.Parse(typeof(DayOfWeek), capture.Value, true) into dayOfWeek + select new WeekDay(dayOfWeek) { Offset = num }; r.ByDay.AddRange(dayOfWeekQuery); } diff --git a/Ical.Net/Serialization/DataTypes/RequestStatusSerializer.cs b/Ical.Net/Serialization/DataTypes/RequestStatusSerializer.cs index 4c491ba83..c4b132733 100644 --- a/Ical.Net/Serialization/DataTypes/RequestStatusSerializer.cs +++ b/Ical.Net/Serialization/DataTypes/RequestStatusSerializer.cs @@ -1,8 +1,8 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.IO; using System.Text; using System.Text.RegularExpressions; -using Ical.Net.DataTypes; namespace Ical.Net.Serialization.DataTypes { @@ -12,7 +12,7 @@ public RequestStatusSerializer() { } public RequestStatusSerializer(SerializationContext ctx) : base(ctx) { } - public override Type TargetType => typeof (RequestStatus); + public override Type TargetType => typeof(RequestStatus); public override string SerializeToString(object obj) { @@ -30,7 +30,7 @@ public override string SerializeToString(object obj) try { var factory = GetService(); - var serializer = factory?.Build(typeof (StatusCode), SerializationContext) as IStringSerializer; + var serializer = factory?.Build(typeof(StatusCode), SerializationContext) as IStringSerializer; if (serializer == null) { return null; diff --git a/Ical.Net/Serialization/DataTypes/StatusCodeSerializer.cs b/Ical.Net/Serialization/DataTypes/StatusCodeSerializer.cs index 0604bea77..404bcc1d7 100644 --- a/Ical.Net/Serialization/DataTypes/StatusCodeSerializer.cs +++ b/Ical.Net/Serialization/DataTypes/StatusCodeSerializer.cs @@ -1,7 +1,7 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.IO; using System.Text.RegularExpressions; -using Ical.Net.DataTypes; namespace Ical.Net.Serialization.DataTypes { @@ -11,7 +11,7 @@ public StatusCodeSerializer() { } public StatusCodeSerializer(SerializationContext ctx) : base(ctx) { } - public override Type TargetType => typeof (StatusCode); + public override Type TargetType => typeof(StatusCode); public override string SerializeToString(object obj) { diff --git a/Ical.Net/Serialization/DataTypes/StringSerializer.cs b/Ical.Net/Serialization/DataTypes/StringSerializer.cs index 3e7c1a99e..42dc1dffb 100644 --- a/Ical.Net/Serialization/DataTypes/StringSerializer.cs +++ b/Ical.Net/Serialization/DataTypes/StringSerializer.cs @@ -1,18 +1,18 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text.RegularExpressions; -using Ical.Net.DataTypes; namespace Ical.Net.Serialization.DataTypes { public class StringSerializer : EncodableDataTypeSerializer { - public StringSerializer() {} + public StringSerializer() { } - public StringSerializer(SerializationContext ctx) : base(ctx) {} + public StringSerializer(SerializationContext ctx) : base(ctx) { } internal static readonly Regex SingleBackslashMatch = new Regex(@"(? typeof (string); + public override Type TargetType => typeof(string); public override string SerializeToString(object obj) { @@ -68,11 +68,11 @@ public override string SerializeToString(object obj) var values = new List(); if (obj is string) { - values.Add((string) obj); + values.Add((string)obj); } else if (obj is IEnumerable) { - values.AddRange(from object child in (IEnumerable) obj select child.ToString()); + values.AddRange(from object child in (IEnumerable)obj select child.ToString()); } var co = SerializationContext.Peek() as ICalendarObject; diff --git a/Ical.Net/Serialization/DataTypes/TimeSpanSerializer.cs b/Ical.Net/Serialization/DataTypes/TimeSpanSerializer.cs index 6253f5c91..4a53a7c3b 100644 --- a/Ical.Net/Serialization/DataTypes/TimeSpanSerializer.cs +++ b/Ical.Net/Serialization/DataTypes/TimeSpanSerializer.cs @@ -11,7 +11,7 @@ public TimeSpanSerializer() { } public TimeSpanSerializer(SerializationContext ctx) : base(ctx) { } - public override Type TargetType => typeof (TimeSpan); + public override Type TargetType => typeof(TimeSpan); public override string SerializeToString(object obj) { @@ -20,7 +20,7 @@ public override string SerializeToString(object obj) return null; } - var ts = (TimeSpan) obj; + var ts = (TimeSpan)obj; if (ts == TimeSpan.Zero) { @@ -37,7 +37,7 @@ public override string SerializeToString(object obj) sb.Append("P"); if (ts.Days > 7 && ts.Days % 7 == 0 && ts.Hours == 0 && ts.Minutes == 0 && ts.Seconds == 0) { - sb.Append(Math.Round(Math.Abs((double) ts.Days) / 7) + "W"); + sb.Append(Math.Round(Math.Abs((double)ts.Days) / 7) + "W"); } else { @@ -120,7 +120,7 @@ public override object Deserialize(TextReader tr) return new TimeSpan(days * mult, hours * mult, minutes * mult, seconds * mult); } } - catch {} + catch { } return value; } diff --git a/Ical.Net/Serialization/DataTypes/TriggerSerializer.cs b/Ical.Net/Serialization/DataTypes/TriggerSerializer.cs index 54e8d9136..8866ea024 100644 --- a/Ical.Net/Serialization/DataTypes/TriggerSerializer.cs +++ b/Ical.Net/Serialization/DataTypes/TriggerSerializer.cs @@ -1,6 +1,6 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.IO; -using Ical.Net.DataTypes; namespace Ical.Net.Serialization.DataTypes { @@ -10,7 +10,7 @@ public TriggerSerializer() { } public TriggerSerializer(SerializationContext ctx) : base(ctx) { } - public override Type TargetType => typeof (Trigger); + public override Type TargetType => typeof(Trigger); public override string SerializeToString(object obj) { @@ -39,7 +39,7 @@ public override string SerializeToString(object obj) var value = valueType == typeof(IDateTime) ? t.DateTime - : (object) t.Duration; + : (object)t.Duration; return serializer.SerializeToString(value); } finally @@ -90,10 +90,10 @@ public override object Deserialize(TextReader tr) case null: return null; case IDateTime _: - t.DateTime = (IDateTime) obj; + t.DateTime = (IDateTime)obj; break; default: - t.Duration = (TimeSpan) obj; + t.Duration = (TimeSpan)obj; break; } diff --git a/Ical.Net/Serialization/DataTypes/UriSerializer.cs b/Ical.Net/Serialization/DataTypes/UriSerializer.cs index 4c15786c3..9cba9e848 100644 --- a/Ical.Net/Serialization/DataTypes/UriSerializer.cs +++ b/Ical.Net/Serialization/DataTypes/UriSerializer.cs @@ -1,6 +1,6 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.IO; -using Ical.Net.DataTypes; namespace Ical.Net.Serialization.DataTypes { diff --git a/Ical.Net/Serialization/DataTypes/UtcOffsetSerializer.cs b/Ical.Net/Serialization/DataTypes/UtcOffsetSerializer.cs index 93ee52621..f02f73bef 100644 --- a/Ical.Net/Serialization/DataTypes/UtcOffsetSerializer.cs +++ b/Ical.Net/Serialization/DataTypes/UtcOffsetSerializer.cs @@ -1,8 +1,8 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.Globalization; using System.IO; using System.Text.RegularExpressions; -using Ical.Net.DataTypes; namespace Ical.Net.Serialization.DataTypes { @@ -12,7 +12,7 @@ public UtcOffsetSerializer() { } public UtcOffsetSerializer(SerializationContext ctx) : base(ctx) { } - public override Type TargetType => typeof (UtcOffset); + public override Type TargetType => typeof(UtcOffset); public override string SerializeToString(object obj) { diff --git a/Ical.Net/Serialization/DataTypes/WeekDaySerializer.cs b/Ical.Net/Serialization/DataTypes/WeekDaySerializer.cs index 8cd04dff8..db670a457 100644 --- a/Ical.Net/Serialization/DataTypes/WeekDaySerializer.cs +++ b/Ical.Net/Serialization/DataTypes/WeekDaySerializer.cs @@ -1,7 +1,7 @@ -using System; +using Ical.Net.DataTypes; +using System; using System.IO; using System.Text.RegularExpressions; -using Ical.Net.DataTypes; namespace Ical.Net.Serialization.DataTypes { @@ -11,7 +11,7 @@ public WeekDaySerializer() { } public WeekDaySerializer(SerializationContext ctx) : base(ctx) { } - public override Type TargetType => typeof (WeekDay); + public override Type TargetType => typeof(WeekDay); public override string SerializeToString(object obj) { @@ -25,7 +25,7 @@ public override string SerializeToString(object obj) { value += ds.Offset; } - value += Enum.GetName(typeof (DayOfWeek), ds.DayOfWeek).ToUpper().Substring(0, 2); + value += Enum.GetName(typeof(DayOfWeek), ds.DayOfWeek).ToUpper().Substring(0, 2); return Encode(ds, value); } diff --git a/Ical.Net/Serialization/EncodingProvider.cs b/Ical.Net/Serialization/EncodingProvider.cs index 9c27b7055..7ea5304b3 100644 --- a/Ical.Net/Serialization/EncodingProvider.cs +++ b/Ical.Net/Serialization/EncodingProvider.cs @@ -159,7 +159,7 @@ public string DecodeString(string encoding, string value) } // Decode the string into the current encoding - var encodingStack = _mSerializationContext.GetService(typeof (EncodingStack)) as EncodingStack; + var encodingStack = _mSerializationContext.GetService(typeof(EncodingStack)) as EncodingStack; return encodingStack.Current.GetString(data); } diff --git a/Ical.Net/Serialization/EventSerializer.cs b/Ical.Net/Serialization/EventSerializer.cs index 849cc07fe..29b3b2419 100644 --- a/Ical.Net/Serialization/EventSerializer.cs +++ b/Ical.Net/Serialization/EventSerializer.cs @@ -1,5 +1,5 @@ -using System; -using Ical.Net.CalendarComponents; +using Ical.Net.CalendarComponents; +using System; namespace Ical.Net.Serialization { @@ -9,7 +9,7 @@ public EventSerializer() { } public EventSerializer(SerializationContext ctx) : base(ctx) { } - public override Type TargetType => typeof (CalendarEvent); + public override Type TargetType => typeof(CalendarEvent); public override string SerializeToString(object obj) { diff --git a/Ical.Net/Serialization/GenericListSerializer.cs b/Ical.Net/Serialization/GenericListSerializer.cs index a417a0d4b..f49c03f87 100644 --- a/Ical.Net/Serialization/GenericListSerializer.cs +++ b/Ical.Net/Serialization/GenericListSerializer.cs @@ -15,8 +15,8 @@ public GenericListSerializer(Type objectType) { _innerType = objectType.GetGenericArguments()[0]; - var listDef = typeof (List<>); - _objectType = listDef.MakeGenericType(typeof (object)); + var listDef = typeof(List<>); + _objectType = listDef.MakeGenericType(typeof(object)); } public override Type TargetType => _objectType; @@ -66,13 +66,13 @@ public override object Deserialize(TextReader tr) //them individually to our list. foreach (var innerObj in add) { - _addMethodInfo.Invoke(listObj, new[] {innerObj}); + _addMethodInfo.Invoke(listObj, new[] { innerObj }); } } else { // Add the object to the list - _addMethodInfo.Invoke(listObj, new[] {objToAdd}); + _addMethodInfo.Invoke(listObj, new[] { objToAdd }); } return listObj; } diff --git a/Ical.Net/Serialization/ISerializer.cs b/Ical.Net/Serialization/ISerializer.cs index ef9f0db9a..562490bce 100644 --- a/Ical.Net/Serialization/ISerializer.cs +++ b/Ical.Net/Serialization/ISerializer.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.IO; using System.Text; diff --git a/Ical.Net/Serialization/ParameterSerializer.cs b/Ical.Net/Serialization/ParameterSerializer.cs index 842da5921..287f24c55 100644 --- a/Ical.Net/Serialization/ParameterSerializer.cs +++ b/Ical.Net/Serialization/ParameterSerializer.cs @@ -6,11 +6,11 @@ namespace Ical.Net.Serialization { public class ParameterSerializer : SerializerBase { - public ParameterSerializer() {} + public ParameterSerializer() { } - public ParameterSerializer(SerializationContext ctx) : base(ctx) {} + public ParameterSerializer(SerializationContext ctx) : base(ctx) { } - public override Type TargetType => typeof (CalendarParameter); + public override Type TargetType => typeof(CalendarParameter); public override string SerializeToString(object obj) { diff --git a/Ical.Net/Serialization/PropertySerializer.cs b/Ical.Net/Serialization/PropertySerializer.cs index 01b9da777..9faa7aee4 100644 --- a/Ical.Net/Serialization/PropertySerializer.cs +++ b/Ical.Net/Serialization/PropertySerializer.cs @@ -1,19 +1,19 @@ -using System; +using Ical.Net.DataTypes; +using Ical.Net.Utility; +using System; using System.IO; using System.Linq; using System.Text; -using Ical.Net.DataTypes; -using Ical.Net.Utility; namespace Ical.Net.Serialization { public class PropertySerializer : SerializerBase { - public PropertySerializer() {} + public PropertySerializer() { } - public PropertySerializer(SerializationContext ctx) : base(ctx) {} + public PropertySerializer(SerializationContext ctx) : base(ctx) { } - public override Type TargetType => typeof (CalendarProperty); + public override Type TargetType => typeof(CalendarProperty); public override string SerializeToString(object obj) { @@ -44,7 +44,7 @@ public override string SerializeToString(object obj) // same property. How should we fix this? // NOTE: - // We Serialize the property's value first, as during + // We Serialize the property's value first, as during // serialization it may modify our parameters. // FIXME: the "parameter modification" operation should // be separated from serialization. Perhaps something @@ -77,7 +77,7 @@ public override string SerializeToString(object obj) if (parameterList.Any()) { // Get a serializer for parameters - var parameterSerializer = sf.Build(typeof (CalendarParameter), SerializationContext) as IStringSerializer; + var parameterSerializer = sf.Build(typeof(CalendarParameter), SerializationContext) as IStringSerializer; if (parameterSerializer != null) { // Serialize each parameter diff --git a/Ical.Net/Serialization/SerializationUtil.cs b/Ical.Net/Serialization/SerializationUtil.cs index ea6326742..11de843e7 100644 --- a/Ical.Net/Serialization/SerializationUtil.cs +++ b/Ical.Net/Serialization/SerializationUtil.cs @@ -13,7 +13,7 @@ public static void OnDeserializing(object obj) { foreach (var mi in GetDeserializingMethods(obj.GetType())) { - mi.Invoke(obj, new object[] {new StreamingContext() }); + mi.Invoke(obj, new object[] { new StreamingContext() }); } } diff --git a/Ical.Net/Serialization/SerializerFactory.cs b/Ical.Net/Serialization/SerializerFactory.cs index a9df8edcf..8e69a5feb 100644 --- a/Ical.Net/Serialization/SerializerFactory.cs +++ b/Ical.Net/Serialization/SerializerFactory.cs @@ -1,8 +1,8 @@ -using System; -using System.Reflection; -using Ical.Net.CalendarComponents; +using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; using Ical.Net.Serialization.DataTypes; +using System; +using System.Reflection; namespace Ical.Net.Serialization { @@ -32,25 +32,25 @@ public virtual ISerializer Build(Type objectType, SerializationContext ctx) } ISerializer s; - if (typeof (Calendar).IsAssignableFrom(objectType)) + if (typeof(Calendar).IsAssignableFrom(objectType)) { s = new CalendarSerializer(ctx); } - else if (typeof (ICalendarComponent).IsAssignableFrom(objectType)) + else if (typeof(ICalendarComponent).IsAssignableFrom(objectType)) { - s = typeof (CalendarEvent).IsAssignableFrom(objectType) + s = typeof(CalendarEvent).IsAssignableFrom(objectType) ? new EventSerializer(ctx) : new ComponentSerializer(ctx); } - else if (typeof (ICalendarProperty).IsAssignableFrom(objectType)) + else if (typeof(ICalendarProperty).IsAssignableFrom(objectType)) { s = new PropertySerializer(ctx); } - else if (typeof (CalendarParameter).IsAssignableFrom(objectType)) + else if (typeof(CalendarParameter).IsAssignableFrom(objectType)) { s = new ParameterSerializer(ctx); } - else if (typeof (string).IsAssignableFrom(objectType)) + else if (typeof(string).IsAssignableFrom(objectType)) { s = new StringSerializer(ctx); } @@ -58,19 +58,19 @@ public virtual ISerializer Build(Type objectType, SerializationContext ctx) { s = new EnumSerializer(objectType, ctx); } - else if (typeof (TimeSpan).IsAssignableFrom(objectType)) + else if (typeof(TimeSpan).IsAssignableFrom(objectType)) { s = new TimeSpanSerializer(ctx); } - else if (typeof (int).IsAssignableFrom(objectType)) + else if (typeof(int).IsAssignableFrom(objectType)) { s = new IntegerSerializer(ctx); } - else if (typeof (Uri).IsAssignableFrom(objectType)) + else if (typeof(Uri).IsAssignableFrom(objectType)) { s = new UriSerializer(ctx); } - else if (typeof (ICalendarDataType).IsAssignableFrom(objectType)) + else if (typeof(ICalendarDataType).IsAssignableFrom(objectType)) { s = _mDataTypeSerializerFactory.Build(objectType, ctx); } diff --git a/Ical.Net/Serialization/SimpleDeserializer.cs b/Ical.Net/Serialization/SimpleDeserializer.cs index 30ff08bcc..466bca955 100644 --- a/Ical.Net/Serialization/SimpleDeserializer.cs +++ b/Ical.Net/Serialization/SimpleDeserializer.cs @@ -1,10 +1,10 @@ -using System; +using Ical.Net.CalendarComponents; +using System; using System.Collections.Generic; using System.IO; using System.Runtime.Serialization; using System.Text; using System.Text.RegularExpressions; -using Ical.Net.CalendarComponents; namespace Ical.Net.Serialization { diff --git a/Ical.Net/ServiceProvider.cs b/Ical.Net/ServiceProvider.cs index bd38a291d..188d7a277 100644 --- a/Ical.Net/ServiceProvider.cs +++ b/Ical.Net/ServiceProvider.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Reflection; namespace Ical.Net { @@ -26,10 +25,10 @@ public virtual object GetService(string name) public virtual T GetService() { - var service = GetService(typeof (T)); + var service = GetService(typeof(T)); if (service is T) { - return (T) service; + return (T)service; } return default(T); } @@ -39,7 +38,7 @@ public virtual T GetService(string name) var service = GetService(name); if (service is T) { - return (T) service; + return (T)service; } return default(T); } diff --git a/Ical.Net/Utility/DateUtil.cs b/Ical.Net/Utility/DateUtil.cs index c85972041..78c57ee91 100644 --- a/Ical.Net/Utility/DateUtil.cs +++ b/Ical.Net/Utility/DateUtil.cs @@ -1,10 +1,10 @@ +using Ical.Net.DataTypes; +using NodaTime; +using NodaTime.TimeZones; using System; using System.Collections.Generic; using System.Linq; using System.Threading; -using Ical.Net.DataTypes; -using NodaTime; -using NodaTime.TimeZones; namespace Ical.Net.Utility { @@ -217,7 +217,7 @@ public static int WeekOfMonth(DateTime d) var offset = isExact ? 0 : 1; - return (int) Math.Floor(d.Day / 7.0) + offset; + return (int)Math.Floor(d.Day / 7.0) + offset; } } } \ No newline at end of file diff --git a/Ical.Net/Utility/TextUtil.cs b/Ical.Net/Utility/TextUtil.cs index ccd0237b2..c3caedc0e 100644 --- a/Ical.Net/Utility/TextUtil.cs +++ b/Ical.Net/Utility/TextUtil.cs @@ -1,8 +1,8 @@ -using System; +using Ical.Net.Serialization; +using System; using System.Collections.Generic; using System.IO; using System.Text.RegularExpressions; -using Ical.Net.Serialization; namespace Ical.Net.Utility { @@ -50,7 +50,7 @@ public static string RemoveEmptyLines(string s) internal static readonly Regex NormalizeToCrLf = new Regex(@"((\r(?=[^\n]))|((?<=[^\r])\n))", RegexOptions.Compiled); /// - /// Normalizes line endings, converting "\r" into "\r\n" and "\n" into "\r\n". + /// Normalizes line endings, converting "\r" into "\r\n" and "\n" into "\r\n". /// public static TextReader Normalize(string s, SerializationContext ctx) { diff --git a/Ical.Net/VTimeZoneInfo.cs b/Ical.Net/VTimeZoneInfo.cs index 2c3cd34b2..b9c045eaf 100644 --- a/Ical.Net/VTimeZoneInfo.cs +++ b/Ical.Net/VTimeZoneInfo.cs @@ -1,15 +1,15 @@ -using System; -using System.Collections.Generic; -using System.Runtime.Serialization; -using Ical.Net.CalendarComponents; +using Ical.Net.CalendarComponents; using Ical.Net.DataTypes; using Ical.Net.Evaluation; +using System; +using System.Collections.Generic; +using System.Runtime.Serialization; namespace Ical.Net { public class VTimeZoneInfo : CalendarComponent, IRecurrable { - TimeZoneInfoEvaluator _evaluator; + private TimeZoneInfoEvaluator _evaluator; public VTimeZoneInfo() { @@ -25,7 +25,7 @@ public VTimeZoneInfo(string name) : this() Name = name; } - void Initialize() + private void Initialize() { _evaluator = new TimeZoneInfoEvaluator(this); SetService(_evaluator); From f8c9204c8d25f7c6f689ff707e13566adb010c1d Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Fri, 19 Jan 2024 15:01:07 +0100 Subject: [PATCH 22/52] Update(s) --- Ical.Net/Ical.Net.nuspec | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/Ical.Net/Ical.Net.nuspec b/Ical.Net/Ical.Net.nuspec index 8ec9e81d8..b97dcbb2b 100644 --- a/Ical.Net/Ical.Net.nuspec +++ b/Ical.Net/Ical.Net.nuspec @@ -14,9 +14,31 @@ https://github.com/laget-se/ical.net/raw/master/nuget_logo_150px.png iCal Calendar icalendar ics outlook events rfc-5545 rfc-2445 dday - - - + + + + + + + + + + + + + + + + + + + + + + + + + @@ -24,6 +46,7 @@ + From 99434c502f61383dc757e1826609f7cb20718e17 Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Fri, 19 Jan 2024 15:07:21 +0100 Subject: [PATCH 23/52] Update readme.md --- readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index b93cf2478..3bc62cb70 100644 --- a/readme.md +++ b/readme.md @@ -1,4 +1,4 @@ -# iCal.NET +# iCal.NET > **Note** > This repository has been forked from https://github.com/rianjs/ical.net and have been under a few changes, please read [Forking](#Forking)! @@ -42,7 +42,7 @@ ical.net uses [semantic versioning](http://semver.org/). In a nutshell: * [Ask a question](https://github.com/rianjs/ical.net/issues) ## Forking -This repository is a fork from https://github.com/rianjs/ical.net due to inactivity for merges of vital bug fixes and have been "re-written" to suit or code standard. +This repository is a fork from https://github.com/rianjs/ical.net due to inactivity and lack of merges of vital bug fixes and have been "re-written" to suit our code standard. ## Support From 52eddb0721afd551fd85ff67fbc14e8b8d1fe7b2 Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Fri, 19 Jan 2024 15:10:01 +0100 Subject: [PATCH 24/52] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 3bc62cb70..cdb26a4c4 100644 --- a/readme.md +++ b/readme.md @@ -8,7 +8,7 @@ iCal.NET is an iCalendar (RFC 5545) class library for .NET aimed at providing RF ## Getting iCal.NET -iCal.NET is available as [a nuget package](https://www.nuget.org/packages/Ical.Net). +iCal.NET is available as [a nuget package](https://www.nuget.org/packages/laget.Ical.Net). ## Migrating from dday.ical to ical.net From dd5000c741752492f8f26106706784b873d043c9 Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Fri, 19 Jan 2024 15:11:43 +0100 Subject: [PATCH 25/52] Update release-notes.md --- release-notes.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/release-notes.md b/release-notes.md index 1ba2394a6..b82862f51 100644 --- a/release-notes.md +++ b/release-notes.md @@ -6,8 +6,7 @@ A listing of what each [Nuget package](https://www.nuget.org/packages/laget.iCal * 4.3.0 - (2024-01-19) * Added target `net8.0`, `net6.0`, `netstandard2.1` * Merged a few pull requests from the original repository that fixes a few bugs - * #584, #579, #571, #528, #525, #471, #470, #443 - * Changed NUnit to xUnit + * #584, #579, #571, #528, #525, #471, #470, #443 * 4.2.0 - (2021-04-10) - Many bugbixes from the community * Fix infinite loop with MaxDate for GetOccurrences #364 * Deserializes STANDARD and DAYLIGHT timezone infos #420 From 1076f3de6eb45dc74c0820f5330bac68108d5afc Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Fri, 19 Jan 2024 15:18:30 +0100 Subject: [PATCH 26/52] Update readme.md --- readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/readme.md b/readme.md index cdb26a4c4..f4c2aac46 100644 --- a/readme.md +++ b/readme.md @@ -42,7 +42,7 @@ ical.net uses [semantic versioning](http://semver.org/). In a nutshell: * [Ask a question](https://github.com/rianjs/ical.net/issues) ## Forking -This repository is a fork from https://github.com/rianjs/ical.net due to inactivity and lack of merges of vital bug fixes and have been "re-written" to suit our code standard. +This repository was fork on 19:th February 20124 from https://github.com/rianjs/ical.net due to inactivity and lack of merges of vital bug fixes and have been "re-written" to suit our code standard. ## Support @@ -59,4 +59,4 @@ Please email me if paid support is something you require, and we can work out th iCal.NET logo adapted from [Love Calendar](https://thenounproject.com/term/love-calendar/116866/) By Sergey Demushkin, RU -## Benchmarks \ No newline at end of file +## Benchmarks From 4efeb1b533a5169973281338c78d8695a0ff28e2 Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Fri, 19 Jan 2024 15:19:23 +0100 Subject: [PATCH 27/52] Update readme.md --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index f4c2aac46..0e9a2de3b 100644 --- a/readme.md +++ b/readme.md @@ -42,7 +42,7 @@ ical.net uses [semantic versioning](http://semver.org/). In a nutshell: * [Ask a question](https://github.com/rianjs/ical.net/issues) ## Forking -This repository was fork on 19:th February 20124 from https://github.com/rianjs/ical.net due to inactivity and lack of merges of vital bug fixes and have been "re-written" to suit our code standard. +This repository was fork on 19:th February 2024 from https://github.com/rianjs/ical.net due to inactivity and lack of merges of vital bug fixes and have been "re-written" to suit our code standard. ## Support From c559125b1f181be197bf5d343321551325037555 Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Sat, 20 Jan 2024 07:52:36 +0100 Subject: [PATCH 28/52] Update(s) to .nuspec file --- Ical.Net/Ical.Net.nuspec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Ical.Net/Ical.Net.nuspec b/Ical.Net/Ical.Net.nuspec index b97dcbb2b..9ba2af759 100644 --- a/Ical.Net/Ical.Net.nuspec +++ b/Ical.Net/Ical.Net.nuspec @@ -11,8 +11,9 @@ https://github.com/laget-se/ical.net https://github.com/laget-se/ical.net/blob/master/license.md https://github.com/laget-se/ical.net/blob/master/release-notes.md - https://github.com/laget-se/ical.net/raw/master/nuget_logo_150px.png iCal Calendar icalendar ics outlook events rfc-5545 rfc-2445 dday + assets\icon.png + assets\readme.md @@ -42,7 +43,7 @@ - + From 7141b2d8c10bc08220ebabeb6d55c3e4dea37cf0 Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Sat, 20 Jan 2024 08:06:45 +0100 Subject: [PATCH 29/52] Update(s) to .nuspec file --- Ical.Net/Ical.Net.nuspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ical.Net/Ical.Net.nuspec b/Ical.Net/Ical.Net.nuspec index 9ba2af759..6bd26246b 100644 --- a/Ical.Net/Ical.Net.nuspec +++ b/Ical.Net/Ical.Net.nuspec @@ -12,7 +12,7 @@ https://github.com/laget-se/ical.net/blob/master/license.md https://github.com/laget-se/ical.net/blob/master/release-notes.md iCal Calendar icalendar ics outlook events rfc-5545 rfc-2445 dday - assets\icon.png + assets\logo.png assets\readme.md From d079539980c3ce55cbbc25072eded9edffd63e92 Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Sat, 20 Jan 2024 08:36:08 +0100 Subject: [PATCH 30/52] Fixed type in .nuspec file --- Ical.Net/Ical.Net.nuspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ical.Net/Ical.Net.nuspec b/Ical.Net/Ical.Net.nuspec index 6bd26246b..2d943a009 100644 --- a/Ical.Net/Ical.Net.nuspec +++ b/Ical.Net/Ical.Net.nuspec @@ -35,7 +35,7 @@ - + From 248ac0c8c0aed3e1b1ab89acfebcce5a88a925fd Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Sat, 20 Jan 2024 08:37:12 +0100 Subject: [PATCH 31/52] Updated icon in laget.iCal.Net --- Ical.Net/Ical.Net.nuspec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ical.Net/Ical.Net.nuspec b/Ical.Net/Ical.Net.nuspec index 2d943a009..a6a1a60dd 100644 --- a/Ical.Net/Ical.Net.nuspec +++ b/Ical.Net/Ical.Net.nuspec @@ -12,7 +12,7 @@ https://github.com/laget-se/ical.net/blob/master/license.md https://github.com/laget-se/ical.net/blob/master/release-notes.md iCal Calendar icalendar ics outlook events rfc-5545 rfc-2445 dday - assets\logo.png + assets\icon.png assets\readme.md @@ -44,7 +44,7 @@ - + From 51719d4cd8f8e4ca4189e002fa6878db27649244 Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Sat, 20 Jan 2024 11:25:09 +0100 Subject: [PATCH 32/52] Updated github workflow publish.yml to set -p:Version on dotnet build --- .github/workflows/publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 1e0c8f266..d8391067f 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -35,6 +35,6 @@ jobs: with: dotnet-version: 8.0.x - run: dotnet restore - - run: dotnet build --configuration Release Ical.Net/Ical.Net.csproj + - run: dotnet build --configuration Release Ical.Net/Ical.Net.csproj -p:Version=${{vars.VERSION}}.${{github.run_number}} - run: dotnet pack --configuration Release Ical.Net/Ical.Net.csproj --no-build -p:Version=${{vars.VERSION}}.${{github.run_number}} -p:PackageVersion=${{vars.VERSION}}.${{github.run_number}} -p:IncludeSymbols=true -p:SymbolPackageFormat=snupkg -p:NuspecFile=Ical.Net.nuspec - run: dotnet nuget push Ical.Net/bin/Release/laget.Ical.Net.${{vars.VERSION}}.${{github.run_number}}.nupkg --api-key ${{secrets.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json --skip-duplicate From 912f778c025729a06a87d66f851d86bf0b7f50c9 Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Mon, 4 Mar 2024 07:51:16 +0100 Subject: [PATCH 33/52] Updated nuget(s) --- Ical.Net.Tests/Ical.Net.Tests.csproj | 2 +- Ical.Net/Ical.Net.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Ical.Net.Tests/Ical.Net.Tests.csproj b/Ical.Net.Tests/Ical.Net.Tests.csproj index 524fe2930..e989b212c 100644 --- a/Ical.Net.Tests/Ical.Net.Tests.csproj +++ b/Ical.Net.Tests/Ical.Net.Tests.csproj @@ -4,7 +4,7 @@ - + diff --git a/Ical.Net/Ical.Net.csproj b/Ical.Net/Ical.Net.csproj index 9bf915d1c..fad46665b 100644 --- a/Ical.Net/Ical.Net.csproj +++ b/Ical.Net/Ical.Net.csproj @@ -5,6 +5,6 @@ - + \ No newline at end of file From 394cd214b3cfe1fd558555e9c119cadc62af45df Mon Sep 17 00:00:00 2001 From: Erik Hennerfors Date: Tue, 3 Sep 2024 08:14:57 +0200 Subject: [PATCH 34/52] Updated nuget(s) --- Ical.Net.Benchmarks/Ical.Net.Benchmarks.csproj | 2 +- Ical.Net.Tests/Ical.Net.Tests.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Ical.Net.Benchmarks/Ical.Net.Benchmarks.csproj b/Ical.Net.Benchmarks/Ical.Net.Benchmarks.csproj index ca9e4a02c..427b99c2b 100644 --- a/Ical.Net.Benchmarks/Ical.Net.Benchmarks.csproj +++ b/Ical.Net.Benchmarks/Ical.Net.Benchmarks.csproj @@ -6,7 +6,7 @@ - + diff --git a/Ical.Net.Tests/Ical.Net.Tests.csproj b/Ical.Net.Tests/Ical.Net.Tests.csproj index e989b212c..eb224291b 100644 --- a/Ical.Net.Tests/Ical.Net.Tests.csproj +++ b/Ical.Net.Tests/Ical.Net.Tests.csproj @@ -4,7 +4,7 @@ - + From 02c05666b90b967191319e5f6b4fcd44f3589981 Mon Sep 17 00:00:00 2001 From: axunonb Date: Wed, 9 Oct 2024 14:03:58 +0200 Subject: [PATCH 35/52] Remove net5.0 target framework from all projects --- Ical.Net.Benchmarks/Ical.Net.Benchmarks.csproj | 2 +- Ical.Net.Tests/Ical.Net.Tests.csproj | 2 +- Ical.Net/Ical.Net.csproj | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Ical.Net.Benchmarks/Ical.Net.Benchmarks.csproj b/Ical.Net.Benchmarks/Ical.Net.Benchmarks.csproj index 427b99c2b..46ba15709 100644 --- a/Ical.Net.Benchmarks/Ical.Net.Benchmarks.csproj +++ b/Ical.Net.Benchmarks/Ical.Net.Benchmarks.csproj @@ -1,7 +1,7 @@  - net8.0;net6.0;net5.0;netcoreapp3.1;net48 + net8.0;net6.0;netcoreapp3.1;net48 Exe diff --git a/Ical.Net.Tests/Ical.Net.Tests.csproj b/Ical.Net.Tests/Ical.Net.Tests.csproj index eb224291b..4737b3a4b 100644 --- a/Ical.Net.Tests/Ical.Net.Tests.csproj +++ b/Ical.Net.Tests/Ical.Net.Tests.csproj @@ -1,6 +1,6 @@  - net8.0;net6.0;net5.0;net48 + net8.0;net6.0;net48 diff --git a/Ical.Net/Ical.Net.csproj b/Ical.Net/Ical.Net.csproj index fad46665b..abcbc24a6 100644 --- a/Ical.Net/Ical.Net.csproj +++ b/Ical.Net/Ical.Net.csproj @@ -1,6 +1,6 @@  - net8.0;net6.0;net5.0;netstandard2.1;netstandard2.0 + net8.0;net6.0;netstandard2.1;netstandard2.0 version=$(Version) From 7632dde3e15683fb12943693fba0a3418c5bcb23 Mon Sep 17 00:00:00 2001 From: axunonb Date: Wed, 9 Oct 2024 23:13:45 +0200 Subject: [PATCH 36/52] Update nuget-specific settings * Update icon.png file used in Ical.Net.nuspec * Update package metadata * Remove net5.0 package target framework * Update README.md to reflect the current project state with ical-org * Fix: Update publish.yml to create deterministic builds for packages, update action versions --- .github/workflows/publish.yml | 14 ++++----- Ical.Net/Ical.Net.nuspec | 22 +++++--------- assets/icon.png | Bin 4666 -> 8918 bytes readme.md | 53 +++++++++++++++++----------------- 4 files changed, 40 insertions(+), 49 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d8391067f..a3c8daafb 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -8,15 +8,13 @@ jobs: runs-on: windows-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup .NET - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 with: dotnet-version: | 8.0.x - 7.0.x 6.0.x - 5.0.x 3.1.x - name: Restore dependencies run: dotnet restore @@ -30,11 +28,11 @@ jobs: needs: tests steps: - - uses: actions/checkout@v3 - - uses: actions/setup-dotnet@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-dotnet@v4 with: dotnet-version: 8.0.x - run: dotnet restore - - run: dotnet build --configuration Release Ical.Net/Ical.Net.csproj -p:Version=${{vars.VERSION}}.${{github.run_number}} + - run: dotnet build --configuration Release Ical.Net/Ical.Net.csproj -p:Version=${{vars.VERSION}}.${{github.run_number}} -p:IncludeSymbols=true -p:SymbolPackageFormat=snupkg -p:ContinuousIntegrationBuild=true - run: dotnet pack --configuration Release Ical.Net/Ical.Net.csproj --no-build -p:Version=${{vars.VERSION}}.${{github.run_number}} -p:PackageVersion=${{vars.VERSION}}.${{github.run_number}} -p:IncludeSymbols=true -p:SymbolPackageFormat=snupkg -p:NuspecFile=Ical.Net.nuspec - - run: dotnet nuget push Ical.Net/bin/Release/laget.Ical.Net.${{vars.VERSION}}.${{github.run_number}}.nupkg --api-key ${{secrets.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json --skip-duplicate + - run: dotnet nuget push Ical.Net/bin/Release/Ical.Net.${{vars.VERSION}}.${{github.run_number}}.nupkg --api-key ${{secrets.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json --skip-duplicate diff --git a/Ical.Net/Ical.Net.nuspec b/Ical.Net/Ical.Net.nuspec index a6a1a60dd..c0dc0e0fb 100644 --- a/Ical.Net/Ical.Net.nuspec +++ b/Ical.Net/Ical.Net.nuspec @@ -1,19 +1,19 @@  - laget.Ical.Net + Ical.Net Ical.Net $version$ - laget.se, Rian Stockbower, Douglas Day - laget.se + ical-org maintainers and contributors + ical-org false - An iCalendar (RFC 5545) control library for .NET. - https://github.com/laget-se/ical.net - https://github.com/laget-se/ical.net/blob/master/license.md - https://github.com/laget-se/ical.net/blob/master/release-notes.md + The most popular iCalendar (RFC 5545) class library for .NET. + https://github.com/ical-org/ical.net + MIT + https://github.com/ical-org/ical.net/blob/main/release-notes.md iCal Calendar icalendar ics outlook events rfc-5545 rfc-2445 dday assets\icon.png - assets\readme.md + readme.md @@ -25,11 +25,6 @@ - - - - - @@ -47,7 +42,6 @@ - diff --git a/assets/icon.png b/assets/icon.png index 252b3ec6091d2810a17c0ae395fa55da14b1b87b..04ec50aacc775cfdd68c34ff75444a86c67669c6 100644 GIT binary patch literal 8918 zcmb_i2T)U6w+10p5u~bAK}3N-=u$$L-h_amCy)d}3%yB)fGA3nCLKgTTIjums)Eu4 zq$+Tgj#McMyrB2q|Nd|OH}mGrOXlR9z4y1*x4yO3-sjAjL>uU-(@Avootq1d0CV4$&;{wbsvzyr8vgD`BY!=Jt-qtK zG=f_}o=eVGhG4)M=?UlZb#`*`knsg`|FSDXxIXU|=H~hZ@pJ@pE1eT^L3ItdR50#H zE@>eU&=v#&aY;!FiAagqib|mbxkN#tqQam%!XlDDkvlRVQ5kVDu0KEA1Uh#FO2$xC z?N2g73(Rfr>FFvXEbQasBjh6{gmJeM7Lk^g76yq5i;4mX2%v|biznO{=;FcimjzX% zhpju>)f0_z;X1bnx50RMg1HH<{?_2^`nOpZk3Zu?h?uZ1+*Mda2z0LL7tj-p`j-R$ zhCCnnHz?8<{Xam@NB#|pu>G6e)yv)Kmn4L(FwzO>jCAqzAYeuQ_Q2I1i*5~Z+`!!(AoKK3J=e_-h|-%8Rq|p_JH`gB83f+9vCloTjX7Df}1?& zF>;mB#URiqKUKIV63k6VtvFBw1O(lIh=|LGNXbat5g;TO1o{nCaYw>EG42oy#tF=A zfc8Z?IiI(=#DpaN0YLsoTLdfO|Foq`s5}JR6aF8;|0F)olZ*<++0`BC;Xx<|FgJnh zSEs%^njiyyUL#;`kv}`nB|3SX_ZhpO2|*F%<~mOw!GaUU-H5P$2r>!SUwywMKvmI% zr2V!mDNa!OuOZWa42hf%A#7z(71wgemhViiM*+KNj{+X6*FASCb(^4uDdU|j6Z9R$eM1|@~K zBlVXxLd*zT2i)nOR?odc5G;y`+rSZ$qS6Gf#HE1Jw&G$yX}GuqP{am>5&;nc078kM zug_n_DWie*AmrZf&lPWkbo=wl3C;DZ9%bORzcb?j_eLVP|LjEnhiLq-c>kR5V~->x z`@hwxn2ZGIuiE;}?SVmg`oP_hN_K?E{k5$b{IwFfM8$5=r~U-m$x5d;l6B#UAFtCTOBzZ>jmV_yk zN~tkN@Ow3)5}3m_K1gpsyjB=-BSjOcuxqNY`|-@KclvT9yoer|nR5`HMcPVq%sI4} za}ahdp{P?$iIW^m?SFYsZkakKah-+x>P01MQt-v5-eW(eJvw`b>JTijgB%)n8WQBX zcWpT;N0!0Dlz)h6XizbDVSATpsGk0w8yhR>3Ewi3gYy&V3ESRX16!GJ?7O`s#R)&E zP+D9R{Rg0T^$_U#GGC4dW!UPSX&LMSUmdK@6R;+Bomn~OROo$D0a>7w4regA%r!d& zpXxHyouE^q56@j-t+E=ZGYbD0c58q@+^AbAPJIHM#$j2=`yh>7s<&%ZNr7ge&j+dy zUW+)x>pdU2P%2c{zJ#LxaZ2fpo4YvGgUYD5TNE9hZ5IaVjZzdECm-m)JyhXW{zEOJ z;vTxr*&c??K#>-}j#w7P>(;?&)*stOoIDEYz9Yxp6!Xt= zKJ9vDN*7a^a10K7!P0dx??m)Gu&!)KbXq9JMJZpL?qm2KdL?P8RSvyDA+oOS+j;3F zKU767t&vXckaj!b+tbkO0PNglwL`}YoUf6nHjHySXl^&d(~62GfPHx|W9uyL73_r9 z^Z{Rke9V?)7F9bBS&-Et`f69@!Omgv6a0yU%e8~3t9{0Lht|D$ z+;MQmoi;99?6fccdKbKRxSyeqGV~2Fr`Wpl?YEy{_hT;FJq1_@lA5n1b_ zr(u?CmRNUEX9;`1O;kyXxM*bOw_r*!9A&U4oy8gzN%8X!`Nr)B#DS_OVGL(Hmk%Ev zEzD7zI#8e;Cz}T8=mjkp9>lS$20zZM3Q{0Fi6Ey42>I3s>Z#W{Q+_BPk$3;iR3R|y zv7+$q#qxIHoQA~k``mlGGJ`DW{F;g?ud^%tod|K*zKDs5 zNng12cJ7+{M_)~=Qq#nVSDmXbcB{oJ0-j{o7U;TZvaYeM1v%=WK@C>48QUKCxASYK zJ2#GWroRiJ)Vo~18ca}CfAENxMmF%=NOGgf&r^JxA!&61ql4fII!s zL-%5`iNnU`eOHT-UYWiob+Rb|&kj{39H%2?rfK$ZXSid&&M27_hx3q!||gsc|&ybhwuT) zK*V;BmPEl5$DeW^8=pbsIVLP&Rbthcol3d(3-XUKrrgx8RohYI$Ot2sLul*`x>6Sx z{HwZg(ZaoY^)KB@%czFveyT5;#_(H$H(X9>L|ISjZYE~$BY}=TXC|xYwpkReU1wcQ zkZCi~W~CT^-aKvlgJUSgL5|`yUMlJb%wg0gg_0#dVPuYpWB&>Ws|>Di3jL%ypq zRw&(%Qcv_p-+4H8ybV)kElf(5o6W79YU>?z_G20dSSpS`-80EMpwXo#BcMg5z*5t{$4ob&&*r}VtpO|j z=Kaj#7%PPNbwgXgZ6VlEx+^-@Mi>5BP~D{HMOjLPH+ODQBvWPK#w~U-*Au~zP4ecq zR*mGnOg~myGb4^Dk$=pmIp=G+zg-Tz8RZZnO%&IYFULT|92D;QJs~r#%be?@|2(X* zz#@IfjpcX+LQ87d_WI2L)}{5?O2uUSkO_64r0$oE7Wsu#f%^%4&r}W?>YYVe@p+?0 z_IXijcBwk=*B_SzZuBusIm|ZJ%M|mT;5)Um=XqkJKKT&4iiN`v8F2>&&AZf(jOP zIzA#|z+D}mq^m?FFT_-Xn;J+XlAbSX$-WVSU!2faNg2g60tOr^We@Dt5^N$HY+7{s zDul-9^5@Ldn-$x$3mT_WEz6=L$)T98eW9k;vZDcULO=HS+KLyqjk?-kJlv-vxshKs^^#Zsw?K#6 zO>RyzfA9?({3(5Ca@^mxtNN>t7)yu39s^vvt{`h{e2sp8BkT*u)-FdAG~;_ct7<`o zDo!;T7EO<*=M5u#wMey}Q6%5GTuO)UO)eycDyO1y=N@y|;ssQi= zI6u|zc}X{6t(`9GyjmaB{3Y0MTP@6Kx9(kEmYok_s#qLW)ed|h%7)9L>({QK+qivM zaF{^IfY;LMPhyMpcym}_&SBrkdsPUK1cs(E6BZCedT#Tn>pB z7@~UPVOsR1#J1~ox<}^NC1SVLac)8r>kXDdOmB|4^{)}G6 zRuqnclDSUC1bOBV;QB;mjMnzX`m2nZ9k-T0LYVIsRw)Tk0%KaT*PTr17zNqLZRRc} zc}unnjZ|6c6KXrIHmUC3WPvyT`pW@PpP7y-{#iOy+{KPV@@D=BQiWI+XvtA61Bqv4 zQLj5NiNYje95SN%B~GRYmvApP%-G!Frhjn(S+7u{cfkR3q5l@U_kKr}@o@bhm&Xq``PouhGPd2jI8x8^{_}b&fJuFgPr9~5fW!T@Tyk$o&eMx8yqHG2 zYwic$`Obe#YM>x8CikPbGP3o+JgKc!2942x9U;Ri*|lh_<)2ZQ(2X*pi!4C>%5I@% zw53n^#V#$}zsX7)aDjgZIU`F|uVW@MM|oz2N~TF!A-h`Aq~n7&jT~gI5onN}+)w*@ z6dXb*CKnBE*NxwchE=}21u5TudNhg-j^7+i_IJ29hvcg)UGN(-3FZ|d&PRr!Q%c&Ze=57Hb_d*Y# z#2m#vmoR_V9v-xUp-~RKor(*qWSacsc7fmL`=feqn<;}i2FB7$*!V*SKJTXz1E&Hm z*CXKiBeU+@+MI!Xav2{!g@&A!wj-A9?>9;#a19~GjIWC&X`s`)bw*ff2p9C2-<)iq zYEHUP_HOg@{gBRgF#W11n#_y2On67Sgv>JPnEMi*BRA@q-0)#86(206n!+Yv)J$3} zaAGpQsZXulzR&WP{1M~0j)e<#!1hP{&UpU*+xd?eZ?*4@dABqN$+|qOv%;2h2zrtO zFl`=bX=@fuZ8>0eQPPhR>|>d>WUDvjos7Ou9O0{O2R;e+8l@HV&Musw05DopKYH*- zSIl;1{?!$i*b4+YMyylk=dK}WK}4QAym+IJ}< zb|X%026Cu$&OjYs4E$rgH8+M%WHn-6kX=5JWPn45&wfNKi ziGARyyIQ468u*oLJ8^V>BlfXagGIuY<{xt3XlymbvF9hz%rtI zkxgv2%9XG^4!jd*j{u$AP)|_Di$1&dP-ULi8+%}LgGopK0mX<`FG+cHZ=kSJ5S7`q znMRER2BYtc+lr^Zo|9)tGt+8?=N!!pW@swqt8uVPGak++1~OZYcGXH2G1}Y`Q_7lLMce7zOIh``m+(3X_859$J^=Yy2EA|AgE<&T;X6sCxE$we-$FTe4JrC zsh*&>Nka3BB{htx9I%gM`SBRzr>6b)q=@dme@RZw66`iCWu~OP+qURA&35XR zRDs&jcG+L9i$BhM!Jz1QE1L4G9gJ8dx))5!(=;c)q8 z`*iMhf_>5mY%=W0VBG@V4>`1Nx!P6`A%jTM}%q z7i$8&B7ImB-@@Qm2gHFtuVs5aF)=F^@xrefH(=waX?Yg}mcyrvVvIJ%Wyd%cUhUEu z)uzk8u#0b0Kd503{O&q2$=X+1AZidQ^Rl@^(b1`gS^C-}WbOmN5$7%Hu#Z+N-+I^U zx} zGvM`ayqK?}Rd~uUHa}Q0_I?xvQ5;;FrOvjRIWK4LDu2|raALi%9C!~xg>NWD1 zec>puGuqW{4Lq2qrDgMzT*!k;KdkUxeH6Fm{f0j^0yJx!EJzovcAGMp1{I-(P+HEmh6YVZlDuvlq+8rh(r-|4_Vft>6aqu#1>@PXia0iB3EF6y1A5cz$rR&UWbY z3z&jcD`I!-y#ttoW3N0hq!;8ISSB4}z*8}2|D2iiCnc|%h~2l)=)d~eKdkCVt>#O5 z0*q$tJw>jar2nnh_eA?FQcRGd+~bu(rQb}fa>RSH@5pqPVebN1v-@KSvY1_5uZOhV zR_?9{or=bUXozdQ!#AUJC@e2uU$}4mZn^z)MM?fWt*|c!mquE1^FCN|tNyGiX-PTv z{VR=OK@^m++#We|QA&=-?=9Y9V`P4u=v@BWL4Gb27Hp>ZRVI0k9^Pb1E~D3iOqdeW zZP3(W)SA3&f4$d~$E!Jug)r7d(;PH(Ura5}_-z<=FhgCSq$-$qu02K*1vlN}KTek1 z7^SgqFij)k4|{1HvAW?BC-RmJ%SHbr<1PLJfZC_Mdf}<(y|?)sCoLZx%IZuw-Ys_> z_UGI40-qHML0^@5b(e451!~t8QU-IhPvSeBQwFH?Nj7_!$_!7*OByDc=yt}Q26Aw! z&()MM{n2VIcB)a4mrarTjJ*GqJ2iK8XKvP-TL#PA&{#)Q*hw2G6YJ+)ME0%E`Z{IqOXtjDS`%}$KqVv<5RYz-*OB532oeK7 z!1`r|$~jKXq9Wotk{g_3oQ&%p9(0*iZ$Iw@->I-{YrEQ{I>7UFEYJ0bdzSOD0N4|Y zCP^;0;JX5C9jf(*@NimvC^*Z1ovL1s+6$LNa$cq?{jOzn9D=pOQ;?f*hSef#;0FgI zel1wP>0#WDSLWa*0Lvcsf&kgl&JFJpjogkZ$ihu0PoBExlXbQg1p?4iDFPwWt{`Nx zr-PoFnZx%6n+3{7?e=k`Yw)mV_$t>Q#rIb@I^@iXB5q5ueo&eU#qvF;A|HR{DJolu zj?@z*JF4~6dRoFIoXQvIRq^=?Q@#K58v#ItEqpn%|yE2azh&W#2vSw97ddG(C(dP(NtEfYQdxk$zAVV{BUdtYz$ z%2CoVCkIZ2VVU1?e8YEiCUVEPKbTaU{lI5LBcuRXmi@P;mE(nR^JfFQfZH zsnub9;gp%Ah15wb^j@*6Pu6Dl#kRab0`@vH44zg9hAP*YS>Oh!q(n3x^sB9U2h#hr zX@AvK9+KL-9C$Z-_y8Khv^dV+*wMMTXaiu*diAQL21PTb7rd@QoDCOFtad4HMuIHD~#cGj;8G4M)L&cn?aUO@X<>)V`55bQ5hpo%qs{Q~s-EY>_ z#>P%W>^{^jg3ZUfq8c9@I89e_vPThn$PIRzg72(eC_g!&2voF=AnUhwIdzYz<~@Ti z9{SQyO)#mLnqMRroDsLKz}4$Zz5_?Ge(ha?HjIVmgLHLR0}1cVf~Al8flA3gVMttX zBo&FVu>2d``?o<2u&YUWBXzT;au9{x!@SL(tZu$pt28>)gojt`g??+HQ}>;ebc%7Z zn{VO_(k2V9M39ysn;E3o1>B1x6>vG0eqxadWBv@I9W@}`>-e3N$L$&PPQ@h2pWH<~ zio(2}#D|PEQ88EE4!FyV_3_o89$r(PE9h$g>BX=T=9mEp9G6brHR-j%xC@+(N^Tf^ zRTAdSc5Lh{;RQ?0rLm2Go#b07p(b5c2#`<=!(y*^1W|uBCRqALT7eKWNZ`HD%T9Gg zgW)jj{K`ACeOJqD|Gn`OOTJ~A0oP5R`PwUFT{di2SbC$~)TxsdvQGo}iVNhSp|PKG zN?#G%R9ua|COETeAzZ6@Oidoycg?P1o_H}=5HK&{3yj3$u0#c&?b&y9%1w@)NbRKk zkt`28DwAt}^o&Jg1x}Lne7LBilYMi&`w^ey6*7my%}i%=gh`Cgj(6-KM^NO%=il_h zAy_}x5_NRe+g$<8N6_QYFH)xQ2^x@LpehBlwtk zwrrqkduMglgRZUjU`woptfB{WMbZ#AWVgq@%LRnQF;?#Z`Z15nuH^}i)1|nleniYY z#CMX!+)V$zIA>vbLNj`>jt1|@%q^?VI|k4yn78&ai9nZmjvvYAf4l9VPgqhxMi^(V zS9xYO!u5%>Wl?W5x;7tnbdH*(CowOW(7YS;5j+D>SuZ{~G`#`K6<%gIj+D=s>V4oBq;?A8hvKJGWRkwiOj}uZ}=df)+j6# z>y`_j5vS3h9@VjBz%Q7YW3x^jBgT99zwvM!?vCq3&@lhXQoJ+Z#0_(S0dF?gR5H*_ z8r-m5a(5md*sw*6&wwrE{rt@@Ek2&5zB$`8EU`^Hh zWZ)ZKzk~q8R7)Lf#Wr|YxjA+pwA8iKy+aRFZSI9HX>mbm-Q|CRzf;(xMc3U6zvQ3U z^*%flR^}?N+SudH;7qc+?OM%7VZty7ux9Ajt)W?W<8XO?0k7Qr)?*l5xvolWW9R4V z$E@%W z!K@MStSWr+xaUg30Lq8Q%**{b!Vjk){?E#Oz$|{IvKNvAsGaHe^1Zk(^YR-gAfoOe zcyL2oip_S4m}meW|HC<(t1FA0)f`a!L&zCP4vS(%G~o85v2W0ur)1p^PQR(aj%di& zeL~wV_;c)WPZvI#lJk!*dw}?CDafEicnI7wjT59RZ($DMS2VnruEpduyHq8Jh`2C* aMq)SN(NQG!bN>9FCz^NlRLhlNVgCiz90kw- literal 4666 zcmZ8lc{r5c`+jGdn6dABmcfiHk!`YNFt%)yeM!h#XzWU2WS4|2*+Ph9&7NhXh%DJc zj5XPnER)@De189Zuj@VUInVW+=Xvk@y3TpddGA=Pp*AfQ7Zm^iw7NPNV{+eq-k=oZ zw=vO!lH9?(bgX;iF`e1U?_O74#ch<+%6V{{V*`Au^jTfKpfO;oI3149FbtY870-XuiAh+xM@ZyJ zF>X1@nWpFH&CyH~YIepwr;~3i{b)Ln^zXOVz|1Rc28i1KJ{TW{zdnWe7TR17{eRI( zj-R27xE{DhX)V`$OYO*#tiK*)7ZB3%r=wdrQAX|es6?-@YVn5QVZzMyQ~b_}$Zo+X zz3$~3E-}mx-iH+)Pjet%`x)K;B{;ru<235FN~nG3-O#2dlknz%4{G>&q!i~~0f$0y z?tXtucwrmr@=wXpWgk>>=m`}f*C33zy2qWfjcebqcqJE7g-pUvZUwOPrz^zp9PTD;?PYn(Y>~wsE$S#-V(O z6!-b%G6gWpgQhOZYt=8vz?7nT7VqpUxNp-Yx(4I*T$|PKj14jw#NZ2y8G-;8i#}aN zPZ+$p%{v_MOmLKL;s_a-)Wd%{UDDc459!9hL2!O_jUqf8$MDdxq&q5=#57m;<)w}g z8UiWd*)(M1{BF6}`WHTh`k{e8wU9~D!E->jS|@+=#rUZhIdwe#@VKKn@FGqW!3<*% z1BrI2`0qihHVhDqusnT$N9|sI3H6H@2o}*!914Q0{8c)4=;C>j`g7NX&c^NHWRC^T z{X*zv2XF?92i<%QTrzS6CjoH~w_U-|OKrBu15`T2 z5&d~GEkHKU-C;lnK~Mf7{<7^JRBFTgKLd!t-p&6$q|eKQP6GPr*nYIyAP-b+`aTPQ zQeXhcTB2oJggN>gTf7<>+oOyBZ%jV-Pv(=z3_Oj9)c}hy&CUGW3pr8E>?u4ClX~CA z3%b41{-3cma7_j5*NoRap9ieDPsy(coh3+wnF^j~5^TRf7&_X^RSkoY{mgSs@<9-e z>4^Uf`<{0}5Vzdk2mufaY;gYzT!}EOd;08MhWI&q-h-N%%Cj;DI^{v0q-HwmU@9-0 z6Q>JF)q#|@zCW#Fl^;DPM0iL@FBv9jZZLo3KKm2443-P*pGT%hi*U$_9nC?CT!}8Se9o&1o*Lj19 z?g!V?pNeO{);_#fhYft%@-Mib5#k#K;FK%=4f37nDbp9^)e}D7MQk5vFF%wiiaL=bz*0RG9eTU}9k0%!S+A*0uD&m21~NdS7Zp zK3q{};!jpvC^4e``RCbh%yPIzp%$oL-O(ly=(><~MM8PsW{3OMEo{@B(;T`bWk&IJ z9YABR6{rlE!pj4V$^)}FZYt)nX?=ylZXGkd+~sV4FRt4>w_Y^cjnIa1v^jX zRjW!Eo%@dno_-}s|e z9*k^Nmp5n%u-LjcYv1--9u@7oVq+9bLy)-jb;cU3d@9)*En8%>*3g`J$M%ZDa>Cpf z+E`BHSTI9kluCn>NY$pPY3;?0bx^BBM$Y|-falL8YVjlua4A^bN z;G~xlbQAIrl3q}z_ROMA<}(B3>)ljLLTD$*{)2=WCp1#V!^41{DoqyxV}OD3wBOd% zN3j{b{@XecPTsf}9dZp^HTb-H8f(T=Tliz-V%#A%BQ7&21!VuwYE;u{I~*<(9n+#} z_U(Qeqy#Q~`FTIfNhKZMRG&JEcV)XF9A!ozAnatGf3-LcO+h+Mb-pr#h)4`&K*XD? z+UVWAsuiwEg=E`Lhng=1N?AsAM49_arlmq+J}Ar6^v=-maeuD%fTTHDPGY`affhAn z&dl1=f}+l}aZHG5K4Zz-Vu>d;w23Ag!CEw0JVz8=5q3Bv2rdjnq|`DX_Eh#Mj(8{I z!~W{U5FfR4YvU4uAqIYJr(WwE82av&ji^%YEQ1^O_gM{Vt)5R7dVLgPYQF|jTwXP3 z@8}U2Mo?1rGs^?pQd0fce~6uQ3{KSm%pnY9)6@aq%GbK&HfGbZw>L=XcgCj#kJ;H>l8@qWRzbR+x-WPs)+3Rg;4oD7)4 zq_(VEB~NegDg6<~OA9-HA+pUE>4OV(@SNehZP&hre!8V6%UF-9R;c|P{|zJ7Pfkz04LGcTs5_u(J9v)cM zG4&ol)C)r2;3Ab0l)>eG!V({`^d~KdJ+IB;c8LZcYwI>2Nk=+N&i5QL1J4b--j*z* zFusby-8vG#1a4P1p?2Gaa!-Bu733H$k@60Lo)|>Gh-+$!Q&x<7TRR#S=%H&rmtEl6 zXAyw%uAPFsRJnyZXzeegE{ftW#3DUBIm{6Wq;Xig zd&o8*N4pjD|IE+Bd;G!ec52kCFSEWF;w#8&Ww6X4pxI>M&Y(XS?VzzqY8V88<6AUv zPoj=xn!qX&a}i(t!F{~>sL=mn0L#RC`JIeCmrdO=?IKd$8X2t9V^%ZC*#L=0ec!2* zb6H-ByMz42DiEp(UUk+&BUi}?0hU-f05@6qj%(IJd}L+i3W#4SFEXXSzYdyLbR|kq z%k&}X_;Dix8@SWd+VVKL8NxAZj+;4WC)mE-bXW(s^Q6ueaR@X`y-dnZisPOye{1_| zibaZZ2wl3gR0wcT?R{94%O#tFqt5$na*jy+8>qQi$&H6<&8?DUucpTa zP2=>&h(s!|n+3Hw#i9}E1I;Jf6DlQphd(UqBlj04%@0C0~FSBfPfd@W6AY~2S$<^toEe55o=x4m6YaY5G zM3afR>=)fcqBYolye;6Zt4?1)Z2GR3i{QJU7rZOt zCjY@S60@{4#td9tQB*=O!&|>UtDf$;BaAhhIvrhk!Pk3bD(xNmWmA(3M8ub!vr;vK z|MfFrVl2RDxl7;vt^1 zD1eVd3=lS5*vWu$;OK|Qq_L%Yoh^%o<>vkDNPLa=sLgyW!Xeb#Q0iX+7bSs|HP-m| z(kJp{A@oB7Si<1~#fQ(yoU?fM&kA#!6m<&Fq}HSC?iSZ4lbk{fwcGgxt8nZa!= zhwK_GEH1FHtq3D_$>rg;BNTg6OXX|B$Hug`&)@cYAF`GHpc$cfV$PiR`X9^vQ+>f{ zaEx5Ltsl^Ql1J;qQAAUL z4EKd#3XjV)y=)N~S+1-gQLP;fOw=r!Tf!Tk2*m|b-x(<}>t%{JoT^o58HW9C3%2GN z8clERw9JOoc_Qh+5E zChfGlhj-Dv$emj7ntsyefrk6~GNBc$`M4h>G7bSaD<0JX{i(uKahSanf6;4a;FSUX z9v{__7ZWt+GE@8O_Dwlco|t`nLY*J?qAnf^zWBI)SIL$7gB=EJ$vVMN@FOaQmqAL; zLI@9uF*cY7k``k12TPJFR5@S_+WQ23BNRQ?1Z)TICzO^gg#QI%ro7e8=#q3dR0_u6 z$g;tgV(9kt>zEMv{|z>GYfk!$dAUG3aKLsuLV+g|HMyLM<*bL!n^VlZMzGZA0-Me^ zJ(F%;B=yj%$FOGw8hl%n>f`D%j^Sc0!L5eYoeo2bMF;6baVoWcX(L~Gn3N|8;fo$c zyq*5pYS3lu>f$iCYF@qGuZ8YO==8Gk3#JlYG@3>I>5BPw^uW+wc6uSE^^CNFAPK8F z-L<64DGCdTB44Ii{9%Xr)ylfRbXd)?gV!Rh6qG6Kp}eGjOGZ^<2SdI|I^8cJ-S6?w zM3rgs*5XZscePc&OHH&Vl<~;|ADt?HuD-RZkS`H_|F}k_=Q-0#J@UOk6k`FXUap5Q zFw36PnINSVAI63e6IHR$UXRcKOO@_?$+yO;NZ(;W~KKOWUUGvQz&8`JIfd>l1 zS*{YUvc-z$u#RpKMwJF#OTXqRk2yM3Rw#gFch{s~9EOp(HA_(b+X-j+McI~7f;Z!` z_w+l?2GtG4KP8Fm>VG;L3_c%rqm1z9sskmvuMcOM_En$nPr;{MuX&L#9S)WnUaQ3(D(4?vns8pPA}$4URIu#hzuj6v5KNRN_+V&^p2fGh?9 Nx|)WV3U&J@{|E7de~$nF diff --git a/readme.md b/readme.md index 0e9a2de3b..242944448 100644 --- a/readme.md +++ b/readme.md @@ -1,29 +1,27 @@ -# iCal.NET -> **Note** -> This repository has been forked from https://github.com/rianjs/ical.net and have been under a few changes, please read [Forking](#Forking)! - -![iCal.NET for .NET](assets/logo.png) +# iCal.NET iCal.NET is an iCalendar (RFC 5545) class library for .NET aimed at providing RFC 5545 compliance, while providing full compatibility with popular calendaring applications and libraries. +![iCal.NET for .NET](assets/logo.png) + ## Getting iCal.NET -iCal.NET is available as [a nuget package](https://www.nuget.org/packages/laget.Ical.Net). +iCal.NET is available as [a nuget package](https://www.nuget.org/packages/Ical.Net). ## Migrating from dday.ical to ical.net -There's a guide just for you: **[Migrating from dday.ical](https://github.com/rianjs/ical.net/wiki/Migrating-from-dday.ical)** +There's a guide just for you: **[Migrating from dday.ical](https://github.com/ical-org/ical.net/wiki/Migrating-from-dday.ical)** ## Examples The wiki contains several pages of examples of common ical.net usage scenarios. -* [Simple event with a recurrence](https://github.com/rianjs/ical.net/wiki) -* [Deserializing an ics file](https://github.com/rianjs/ical.net/wiki/Deserialize-an-ics-file) -* [Working with attachments](https://github.com/rianjs/ical.net/wiki/Working-with-attachments) -* [Working with recurring elements](https://github.com/rianjs/ical.net/wiki/Working-with-recurring-elements) -* [Concurrency scenarios and PLINQ](https://github.com/rianjs/ical.net/wiki/Concurrency-scenarios-and-PLINQ) -* [Migrating from dday.ical](https://github.com/rianjs/ical.net/wiki/Migrating-from-dday.ical) +* [Simple event with a recurrence](https://github.com/ical-org/ical.net/wiki) +* [Deserializing an ics file](https://github.com/ical-org/ical.net/wiki/Deserialize-an-ics-file) +* [Working with attachments](https://github.com/ical-org/ical.net/wiki/Working-with-attachments) +* [Working with recurring elements](https://github.com/ical-org/ical.net/wiki/Working-with-recurring-elements) +* [Concurrency scenarios and PLINQ](https://github.com/ical-org/ical.net/wiki/Concurrency-scenarios-and-PLINQ) +* [Migrating from dday.ical](https://github.com/ical-org/ical.net/wiki/Migrating-from-dday.ical) ## Versioning @@ -37,26 +35,27 @@ ical.net uses [semantic versioning](http://semver.org/). In a nutshell: ## Contributing -* [Submit a bug report or issue](https://github.com/rianjs/ical.net/wiki/Filing-a-(good)-bug-report) -* [Contribute code by submitting a pull request](https://github.com/rianjs/ical.net/wiki/Contributing-a-(good)-pull-request) -* [Ask a question](https://github.com/rianjs/ical.net/issues) - -## Forking -This repository was fork on 19:th February 2024 from https://github.com/rianjs/ical.net due to inactivity and lack of merges of vital bug fixes and have been "re-written" to suit our code standard. +* [Submit a bug report or issue](https://github.com/ical-org/ical.net/wiki/Filing-a-(good)-bug-report) +* [Contribute code by submitting a pull request](https://github.com/ical-org/ical.net/wiki/Contributing-a-(good)-pull-request). **Always open an issue first**, so we can discuss necessary changes. +* [Ask a question](https://github.com/ical-org/ical.net/discussions). **Please never use the issue tracker for questions.** ## Support -ical.net is a something I do in my spare time around my family, day job, friends, and other hobbies. That means support is "when I get to it". I recognize that sometimes this isn't good enough, especially if you have a production issue. To that end, I [offer paid support and bugfixes](http://rianjs.net/consulting). A few basic rules before you contact me: +* We ask and encourage you to contribute back to the project. This is especially true if you are using the library in a commercial product. -* Changes made to the ical.net library are open source. -* You do not own the changes I make to the library. -* Congruence with my vision for the future for ical.net is required. That means I won't do things like add Exchange interop, or take dependencies on third-party libraries that benefit only your use case. -* New versions of the library that result from changes made will be published on nuget for others to consume. +* Questions asked in the discussion area are open to the community or experienced users to answer. Give maintainers a helping hand by answering questions whenever you can. -Please email me if paid support is something you require, and we can work out the details via email. +* Remember that keeping ical.net up is something ical.net maintainers and many contributors do in their spare time. + +### Paid support + +In case you need it, [Rian Stockbower may offer paid support and bugfixes](http://rianjs.net/consulting). + A few basic rules to consider when asking for this kind of support: + +* Any changes made to the ical.net library are open source, and will always be published on nuget for others to consume. +* You do not own the changes made to the library even if you paid for them. +* Congruence with the ical-org vision for the future of ical.net is required. That means we step back from things like "add Exchange interop", or take dependencies on third-party libraries that benefit only your one or very few use cases. ## Creative Commons iCal.NET logo adapted from [Love Calendar](https://thenounproject.com/term/love-calendar/116866/) By Sergey Demushkin, RU - -## Benchmarks From e0b72c196e4308e3a1ff35bb841d3a38d15b6b4b Mon Sep 17 00:00:00 2001 From: axunonb Date: Thu, 10 Oct 2024 13:49:52 +0200 Subject: [PATCH 37/52] Update GitHub actions to reflect the changed main branch name --- .github/workflows/publish.yml | 17 +++++++++++++---- .github/workflows/tests.yml | 12 +++++------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index a3c8daafb..c04572eca 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -32,7 +32,16 @@ jobs: - uses: actions/setup-dotnet@v4 with: dotnet-version: 8.0.x - - run: dotnet restore - - run: dotnet build --configuration Release Ical.Net/Ical.Net.csproj -p:Version=${{vars.VERSION}}.${{github.run_number}} -p:IncludeSymbols=true -p:SymbolPackageFormat=snupkg -p:ContinuousIntegrationBuild=true - - run: dotnet pack --configuration Release Ical.Net/Ical.Net.csproj --no-build -p:Version=${{vars.VERSION}}.${{github.run_number}} -p:PackageVersion=${{vars.VERSION}}.${{github.run_number}} -p:IncludeSymbols=true -p:SymbolPackageFormat=snupkg -p:NuspecFile=Ical.Net.nuspec - - run: dotnet nuget push Ical.Net/bin/Release/Ical.Net.${{vars.VERSION}}.${{github.run_number}}.nupkg --api-key ${{secrets.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json --skip-duplicate + - name: Build and pack for publishing + run: | + dotnet restore + dotnet build --configuration Release Ical.Net/Ical.Net.csproj -p:Version=${{vars.VERSION}}.${{github.run_number}} -p:IncludeSymbols=true -p:SymbolPackageFormat=snupkg -p:ContinuousIntegrationBuild=true + dotnet pack --configuration Release Ical.Net/Ical.Net.csproj --no-build -p:Version=${{vars.VERSION}}.${{github.run_number}} -p:PackageVersion=${{vars.VERSION}}.${{github.run_number}} -p:IncludeSymbols=true -p:SymbolPackageFormat=snupkg -p:NuspecFile=Ical.Net.nuspec + - name: Store artifacts + uses: actions/upload-artifact@v4 + with: + name: nuget-package_${{vars.VERSION}} + path: Ical.Net/bin/Release/ + - name: Push package to NuGet + run: dotnet nuget push Ical.Net/bin/Release/Ical.Net.${{vars.VERSION}}.${{github.run_number}}.nupkg --api-key ${{secrets.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json --skip-duplicate + diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 28e2c7081..ec02daf1d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,29 +1,27 @@ -name: Tests +name: Tests on: # Trigger the workflow on push or pull request, # but only for the main branch pull_request: branches: - - master + - main push: branches: - - master + - main jobs: tests: runs-on: windows-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup .NET - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 with: dotnet-version: | 8.0.x - 7.0.x 6.0.x - 5.0.x 3.1.x - name: Restore dependencies run: dotnet restore From f2fe55d30236dd1dfdad3828b45bbdb627be7f33 Mon Sep 17 00:00:00 2001 From: Rian Stockbower Date: Thu, 10 Oct 2024 08:53:07 -0400 Subject: [PATCH 38/52] Update readme.md Updated rianjs consulting link --- readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/readme.md b/readme.md index 242944448..547539bea 100644 --- a/readme.md +++ b/readme.md @@ -49,7 +49,7 @@ ical.net uses [semantic versioning](http://semver.org/). In a nutshell: ### Paid support -In case you need it, [Rian Stockbower may offer paid support and bugfixes](http://rianjs.net/consulting). +In case you need it, [Rian Stockbower may offer paid support and bugfixes](https://rianjs.net/consulting). A few basic rules to consider when asking for this kind of support: * Any changes made to the ical.net library are open source, and will always be published on nuget for others to consume. From 1d018ddb9663fb78b69644a2c5666d0e370e6e4f Mon Sep 17 00:00:00 2001 From: axunonb Date: Fri, 11 Oct 2024 16:37:03 +0200 Subject: [PATCH 39/52] Update CI workflows - Changed `runs-on` to `ubuntu-latest` in `publish.yml` and `tests.yml`. - Added `fetch-depth: 0` to `actions/checkout@v4` in both workflows. - Added `Get version tag` step in `publish.yml`. - Included `-p:nowarn=1591` in `Build` steps to suppress warnings. - Changed `Test` verbosity to `quiet` in both workflows. - Updated `Build and pack for publishing` in `publish.yml` to use `VERSION`. - Updated `Store artifacts` step in `publish.yml` for new naming convention. - Updated `Push package to NuGet` step in `publish.yml` to use `VERSION`. --- .github/workflows/publish.yml | 35 +++++++++++++++++++++++++---------- .github/workflows/tests.yml | 11 +++++++---- 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index c04572eca..5691bbd89 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,14 +1,18 @@ name: Publish - +# This job builds and and publishes the package to NuGet. +# It depends on the included tests job to complete successfully. +# The version number is determined by the latest tag for the 'main' branch selected with workflow dispatch. on: workflow_dispatch: {} jobs: tests: - runs-on: windows-latest + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 # Fetch all history for all tags and branches - name: Setup .NET uses: actions/setup-dotnet@v4 with: @@ -19,9 +23,9 @@ jobs: - name: Restore dependencies run: dotnet restore - name: Build - run: dotnet build --no-restore --configuration Release + run: dotnet build --no-restore --configuration Release -p:nowarn=1591 - name: Test - run: dotnet test --no-build --configuration Release --verbosity normal + run: dotnet test --no-build --configuration Release --verbosity quiet publish: runs-on: ubuntu-latest @@ -29,19 +33,30 @@ jobs: steps: - uses: actions/checkout@v4 + with: + fetch-depth: 0 # Fetch all history for all tags and branches - uses: actions/setup-dotnet@v4 with: dotnet-version: 8.0.x + - name: Get version tag + # The latest tag for the selected branch. + # Get it and strip off any leading 'v' from the version tag + run: | + Version=$(git describe --tags --abbrev=0 | sed 's/^v//') + echo "VERSION=$Version" >> $GITHUB_ENV + echo "Version: $Version" - name: Build and pack for publishing run: | dotnet restore - dotnet build --configuration Release Ical.Net/Ical.Net.csproj -p:Version=${{vars.VERSION}}.${{github.run_number}} -p:IncludeSymbols=true -p:SymbolPackageFormat=snupkg -p:ContinuousIntegrationBuild=true - dotnet pack --configuration Release Ical.Net/Ical.Net.csproj --no-build -p:Version=${{vars.VERSION}}.${{github.run_number}} -p:PackageVersion=${{vars.VERSION}}.${{github.run_number}} -p:IncludeSymbols=true -p:SymbolPackageFormat=snupkg -p:NuspecFile=Ical.Net.nuspec + dotnet build --configuration Release Ical.Net/Ical.Net.csproj -p:Version=${{env.VERSION}} -p:FileVersion=${{env.VERSION}}.${{github.run_number}} -p:IncludeSymbols=true -p:SymbolPackageFormat=snupkg -p:ContinuousIntegrationBuild=true + dotnet pack --configuration Release Ical.Net/Ical.Net.csproj -p:Version=${{env.VERSION}} -p:IncludeSymbols=true -p:SymbolPackageFormat=snupkg --no-build -p:PackageVersion=${{env.VERSION}}.${{github.run_number}} -p:NuspecFile=Ical.Net.nuspec - name: Store artifacts uses: actions/upload-artifact@v4 with: - name: nuget-package_${{vars.VERSION}} - path: Ical.Net/bin/Release/ + name: ICal.Net_pkg_${{env.VERSION}}.${{github.run_number}} + path: | + Ical.Net/bin/Release/**/*.nupkg + Ical.Net/bin/Release/**/*.snupkg - name: Push package to NuGet - run: dotnet nuget push Ical.Net/bin/Release/Ical.Net.${{vars.VERSION}}.${{github.run_number}}.nupkg --api-key ${{secrets.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json --skip-duplicate - + # Does not fail, if the package already exists + run: dotnet nuget push Ical.Net/bin/Release/Ical.Net.${{env.VERSION}}.nupkg --api-key ${{secrets.NUGET_API_KEY}} --source https://api.nuget.org/v3/index.json --skip-duplicate diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ec02daf1d..137a393e7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -12,10 +12,13 @@ on: jobs: tests: - runs-on: windows-latest + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Fetch all history for all tags and branches - name: Setup .NET uses: actions/setup-dotnet@v4 with: @@ -26,6 +29,6 @@ jobs: - name: Restore dependencies run: dotnet restore - name: Build - run: dotnet build --no-restore --configuration Release + run: dotnet build --no-restore --configuration Release -p:nowarn=1591 - name: Test - run: dotnet test --no-build --configuration Release --verbosity normal + run: dotnet test --no-build --configuration Release --verbosity quiet From 9a95a7972cafce7ad2260c5705b79d81fb41cd0d Mon Sep 17 00:00:00 2001 From: axunonb Date: Sat, 12 Oct 2024 09:24:57 +0200 Subject: [PATCH 40/52] Update ProdId constant and NodaTime package version Updated the `ProdId` constant in `LibraryMetadata` class within `Constants.cs` to reflect a new GitHub organization. Changed the value from `"-//github.com/rianjs/ical.net//NONSGML ical.net 4.0//EN"` to `"-//github.com/ical-org/ical.net//NONSGML ical.net 4.0//EN"`. Modified the `NodaTime` package reference in `Ical.Net.csproj` to use a wildcard for the patch version, changing from `"3.1.11"` to `"3.1.*"` to allow for automatic updates to any 3.1.x version. --- Ical.Net/Constants.cs | 2 +- Ical.Net/Ical.Net.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Ical.Net/Constants.cs b/Ical.Net/Constants.cs index 67a991f4d..59177c914 100644 --- a/Ical.Net/Constants.cs +++ b/Ical.Net/Constants.cs @@ -282,7 +282,7 @@ public static class TransparencyType public static class LibraryMetadata { public const string Version = "2.0"; - public static readonly string ProdId = "-//github.com/rianjs/ical.net//NONSGML ical.net 4.0//EN"; + public static readonly string ProdId = "-//github.com/ical-org/ical.net//NONSGML ical.net 4.0//EN"; } public static class CalendarScales diff --git a/Ical.Net/Ical.Net.csproj b/Ical.Net/Ical.Net.csproj index abcbc24a6..884d026e1 100644 --- a/Ical.Net/Ical.Net.csproj +++ b/Ical.Net/Ical.Net.csproj @@ -5,6 +5,6 @@ - + \ No newline at end of file From 6ffc6fc4c62b110831982dd6e823d065b84d962c Mon Sep 17 00:00:00 2001 From: axunonb Date: Sat, 12 Oct 2024 10:35:56 +0200 Subject: [PATCH 41/52] Move InternalsVisibleTo from AssemblyInfo.cs to project file --- Ical.Net/Ical.Net.csproj | 18 +++++++++++------- Ical.Net/Properties/AssemblyInfo.cs | 3 --- 2 files changed, 11 insertions(+), 10 deletions(-) delete mode 100644 Ical.Net/Properties/AssemblyInfo.cs diff --git a/Ical.Net/Ical.Net.csproj b/Ical.Net/Ical.Net.csproj index 884d026e1..63216bac2 100644 --- a/Ical.Net/Ical.Net.csproj +++ b/Ical.Net/Ical.Net.csproj @@ -1,10 +1,14 @@  - - net8.0;net6.0;netstandard2.1;netstandard2.0 - version=$(Version) - + + net8.0;net6.0;netstandard2.1;netstandard2.0 + version=$(Version) + - - - + + + + + + + \ No newline at end of file diff --git a/Ical.Net/Properties/AssemblyInfo.cs b/Ical.Net/Properties/AssemblyInfo.cs deleted file mode 100644 index 3630ed283..000000000 --- a/Ical.Net/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,3 +0,0 @@ -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("Ical.Net.Tests")] \ No newline at end of file From aef28f1a3bbfc1a3bf0aa8459c3fe5d2fa5820be Mon Sep 17 00:00:00 2001 From: axunonb Date: Sun, 13 Oct 2024 17:00:40 +0200 Subject: [PATCH 42/52] Add back assembly signing to projects and include strong name key * Update `Ical.Net.Tests.csproj` and `Ical.Net.csproj` to include assembly signing by adding `SignAssembly` and `AssemblyOriginatorKeyFile` properties. * Replace `InternalsVisibleTo` with `AssemblyAttribute` including a public key in `Ical.Net.csproj`. * Add `IcalNetStrongnameKey.snk` for strong name key. --- Ical.Net.Tests/Ical.Net.Tests.csproj | 39 ++++++++++++++------------- Ical.Net/Ical.Net.csproj | 8 +++--- IcalNetStrongnameKey.snk | Bin 0 -> 596 bytes 3 files changed, 25 insertions(+), 22 deletions(-) create mode 100644 IcalNetStrongnameKey.snk diff --git a/Ical.Net.Tests/Ical.Net.Tests.csproj b/Ical.Net.Tests/Ical.Net.Tests.csproj index 4737b3a4b..0972a4908 100644 --- a/Ical.Net.Tests/Ical.Net.Tests.csproj +++ b/Ical.Net.Tests/Ical.Net.Tests.csproj @@ -1,20 +1,21 @@  - - net8.0;net6.0;net48 - - - - - - - - - - - - - - - - - \ No newline at end of file + + net8.0;net6.0;net48 + true + ..\IcalNetStrongnameKey.snk + + + + + + + + + + + + + + + + diff --git a/Ical.Net/Ical.Net.csproj b/Ical.Net/Ical.Net.csproj index 63216bac2..cfa21ce25 100644 --- a/Ical.Net/Ical.Net.csproj +++ b/Ical.Net/Ical.Net.csproj @@ -2,13 +2,15 @@ net8.0;net6.0;netstandard2.1;netstandard2.0 version=$(Version) + true + ..\IcalNetStrongnameKey.snk - - - + + <_Parameter1>Ical.Net.Tests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a1f790f70176d52efbd248577bdb292be2d0acc62f3227c523e267d64767f207f81536c77bb91d17031a5afbc2d69cd3b5b3b9c98fa8df2cd363ec90a08639a1213ad70079eff666bcc14cf6574b899f4ad0eac672c8f763291cb1e0a2304d371053158cb398b2e6f9eeb45db7d1b4d2bbba1f985676c5ca4602fab3671d34bf + \ No newline at end of file diff --git a/IcalNetStrongnameKey.snk b/IcalNetStrongnameKey.snk new file mode 100644 index 0000000000000000000000000000000000000000..2bdd316bf1fc89e3be8a96c27c6e59628a73d31e GIT binary patch literal 596 zcmV-a0;~N80ssI2Bme+XQ$aES1ONa50097@_mKAicGWKX(nwc(+bJvJ(5%KUGAG3& z;%C-JXYvR56*k9vxg8e+8e03p)|}I|v$@HSsNXEpW9*QihB=`jI@bVs@AhWA!A$m7 zONpOK(CWr=$oFF@9I@b{FikfQQx%M}n6l>i?zCOE(X`ULx*wQUcE!p@0{XLO9W=k& z4Iq8 z<2{+Pq+%9kC7vh5`VKdXPo{KRAS`wfRcT@Z1`Gyg&)~Jo|IevG^c8 z34BFH<_#6LEnXj9aLfwXg@>bFV>|j)*@cx!|EdGIIt?%?QX(1PIm2+KWx< z9O@5kRTZ4oI`wBH`p$ODelm)E#B9CuTZ#q-+x&99l--O3?_`RSKY>4xI8C~pM@t$O iIuPqz>re8xiDD-@ag|waSYr0yMkUB;_SI45HF5|UT_er_ literal 0 HcmV?d00001 From 11995877aca766d3a6f9b01e491844dd315c1bf6 Mon Sep 17 00:00:00 2001 From: axunonb Date: Sun, 13 Oct 2024 18:41:23 +0200 Subject: [PATCH 43/52] Make field CalendarDataType._associatedObject private Avoid mixing up with public virtual property AssociatedObject --- Ical.Net/DataTypes/CalendarDataType.cs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Ical.Net/DataTypes/CalendarDataType.cs b/Ical.Net/DataTypes/CalendarDataType.cs index c8ba900a4..90a8ec077 100644 --- a/Ical.Net/DataTypes/CalendarDataType.cs +++ b/Ical.Net/DataTypes/CalendarDataType.cs @@ -1,4 +1,4 @@ -using Ical.Net.Proxies; +using Ical.Net.Proxies; using System; using System.Runtime.Serialization; @@ -13,7 +13,7 @@ public abstract class CalendarDataType : ICalendarDataType private ParameterCollectionProxy _proxy; private ServiceProvider _serviceProvider; - protected ICalendarObject _AssociatedObject; + private ICalendarObject _associatedObject; protected CalendarDataType() { @@ -96,21 +96,21 @@ public virtual void SetValueType(string type) public virtual ICalendarObject AssociatedObject { - get => _AssociatedObject; + get => _associatedObject; set { - if (Equals(_AssociatedObject, value)) + if (Equals(_associatedObject, value)) { return; } - _AssociatedObject = value; - if (_AssociatedObject != null) + _associatedObject = value; + if (_associatedObject != null) { - _proxy.SetParent(_AssociatedObject); - if (_AssociatedObject is ICalendarParameterCollectionContainer) + _proxy.SetParent(_associatedObject); + if (_associatedObject is ICalendarParameterCollectionContainer) { - _proxy.SetProxiedObject(((ICalendarParameterCollectionContainer)_AssociatedObject).Parameters); + _proxy.SetProxiedObject(((ICalendarParameterCollectionContainer)_associatedObject).Parameters); } } else @@ -121,7 +121,7 @@ public virtual ICalendarObject AssociatedObject } } - public virtual Calendar Calendar => _AssociatedObject?.Calendar; + public virtual Calendar Calendar => _associatedObject?.Calendar; public virtual string Language { @@ -141,8 +141,8 @@ public virtual void CopyFrom(ICopyable obj) } var dt = (ICalendarDataType)obj; - _AssociatedObject = dt.AssociatedObject; - _proxy.SetParent(_AssociatedObject); + _associatedObject = dt.AssociatedObject; + _proxy.SetParent(_associatedObject); _proxy.SetProxiedObject(dt.Parameters); } From 132e1e11ef15fc235dba556416130610ce818b09 Mon Sep 17 00:00:00 2001 From: axunonb Date: Sun, 13 Oct 2024 19:05:31 +0200 Subject: [PATCH 44/52] Refactor ListForIndex method for efficiency Refactored the ListForIndex method in GroupedList.cs to use the FirstOrDefault LINQ method instead of a foreach loop with a Where clause. This change simplifies the code and improves performance. Added a null check to handle cases where no matching list is found, ensuring the method returns null and sets relativeIndex to -1. --- Ical.Net/Collections/GroupedList.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Ical.Net/Collections/GroupedList.cs b/Ical.Net/Collections/GroupedList.cs index 47fc9cac7..65c1df033 100644 --- a/Ical.Net/Collections/GroupedList.cs +++ b/Ical.Net/Collections/GroupedList.cs @@ -36,7 +36,8 @@ private IMultiLinkedList EnsureList(TGroup group) private IMultiLinkedList ListForIndex(int index, out int relativeIndex) { - foreach (var list in _lists.Where(list => list.StartIndex <= index && list.ExclusiveEnd > index)) + var list = _lists.FirstOrDefault(l => l.StartIndex <= index && l.ExclusiveEnd > index); + if (list != null) { relativeIndex = index - list.StartIndex; return list; From 151aeb5d11b7dcd4cd4ca5d6025302d2fe21f861 Mon Sep 17 00:00:00 2001 From: axunonb Date: Sun, 13 Oct 2024 20:03:04 +0200 Subject: [PATCH 45/52] Refactor GetZone method and update using directives * Refactored `GetZone` method to use `FirstOrDefault` for finding matching time zone IDs, simplifying the code by removing `foreach` loops. * Reused and reassigned `providerId` variable. Streamlined condition checks and retrieval of time zones. --- Ical.Net/Utility/DateUtil.cs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Ical.Net/Utility/DateUtil.cs b/Ical.Net/Utility/DateUtil.cs index 78c57ee91..5f7cb00fc 100644 --- a/Ical.Net/Utility/DateUtil.cs +++ b/Ical.Net/Utility/DateUtil.cs @@ -1,4 +1,4 @@ -using Ical.Net.DataTypes; +using Ical.Net.DataTypes; using NodaTime; using NodaTime.TimeZones; using System; @@ -128,7 +128,7 @@ public static DateTimeZone GetZone(string tzId, bool useLocalIfNotFound = true) return zone; } - //US/Eastern is commonly represented as US-Eastern + // US/Eastern is commonly represented as US-Eastern var newTzId = tzId.Replace("-", "/"); zone = NodaTime.Xml.XmlSerializationSettings.DateTimeZoneProvider.GetZoneOrNull(newTzId); if (zone != null) @@ -136,20 +136,22 @@ public static DateTimeZone GetZone(string tzId, bool useLocalIfNotFound = true) return zone; } - foreach (var providerId in DateTimeZoneProviders.Tzdb.Ids.Where(tzId.Contains)) + var providerId = DateTimeZoneProviders.Tzdb.Ids.FirstOrDefault(tzId.Contains); + if (providerId != null) { return DateTimeZoneProviders.Tzdb.GetZoneOrNull(providerId); } if (_windowsMapping.Value.Keys .Where(tzId.Contains) - .Any(providerId => _windowsMapping.Value.TryGetValue(providerId, out ianaZone)) + .Any(pId => _windowsMapping.Value.TryGetValue(pId, out ianaZone)) ) { return DateTimeZoneProviders.Tzdb.GetZoneOrNull(ianaZone); } - foreach (var providerId in NodaTime.Xml.XmlSerializationSettings.DateTimeZoneProvider.Ids.Where(tzId.Contains)) + providerId = NodaTime.Xml.XmlSerializationSettings.DateTimeZoneProvider.Ids.FirstOrDefault(tzId.Contains); + if (providerId != null) { return NodaTime.Xml.XmlSerializationSettings.DateTimeZoneProvider.GetZoneOrNull(providerId); } From b3f51cc8babfe9fd155e665dd3ff2fa91bbaa5a6 Mon Sep 17 00:00:00 2001 From: axunonb Date: Sun, 13 Oct 2024 20:19:23 +0200 Subject: [PATCH 46/52] SerializationPerfTests: Refactor calendar serialization and event handling * Replaced `SimpleCalendar` static field with `CreateSimpleCalendar` method. `CreateSimpleCalendar` now creates a `CalendarEvent` and adds it to the `Calendar`. * Removed `_aTzid`, `SimpleCalendar`, and `_e` static fields, integrating their functionality into `CreateSimpleCalendar`. --- Ical.Net.Benchmarks/SerializationPerfTests.cs | 35 ++++++++++--------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/Ical.Net.Benchmarks/SerializationPerfTests.cs b/Ical.Net.Benchmarks/SerializationPerfTests.cs index 6a5e8d5e6..16fcc4963 100644 --- a/Ical.Net.Benchmarks/SerializationPerfTests.cs +++ b/Ical.Net.Benchmarks/SerializationPerfTests.cs @@ -10,7 +10,7 @@ namespace Ical.Net.Benchmarks { public class SerializationPerfTests { - private const string _sampleEvent = @"BEGIN:VCALENDAR + private const string SampleEvent = @"BEGIN:VCALENDAR PRODID:-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN VERSION:2.0 METHOD:PUBLISH @@ -63,29 +63,32 @@ rsion 08.00.0681.000"">\n\n\n\n