Skip to content

Commit

Permalink
v 0.7.0
Browse files Browse the repository at this point in the history
  • Loading branch information
pt-icg committed Aug 25, 2020
1 parent a17b759 commit 2c50e1e
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ public void JavaRRuleParser()
RRuleTextBuilderTestHelper.ToStringTest("FREQ=DAILY;INTERVAL=1;COUNT=2", "every day for 2 times");
RRuleTextBuilderTestHelper.ToStringTest("FREQ=WEEKLY;INTERVAL=1;COUNT=1", "every week"); //jakubroztocil liefert: every week for 1 time
RRuleTextBuilderTestHelper.ToStringTest("FREQ=MONTHLY;INTERVAL=1;UNTIL=20181023T220000Z", "every month until October 23, 2018");
//Assert.Pass();
}

[TestMethod]
Expand Down Expand Up @@ -86,7 +85,6 @@ public void JavaRRuleParserG()
RRuleTextBuilderTestHelper.ToStringTestG("FREQ=WEEKLY;INTERVAL=1;COUNT=1", "jede Woche"); //jakubroztocil liefert: every week for 1 time
RRuleTextBuilderTestHelper.ToStringTestG("FREQ=MONTHLY;INTERVAL=1;UNTIL=20181023T220000Z", "jeden Monat bis zum 23. Oktober 2018");

//Assert.Pass();
}


Expand All @@ -96,7 +94,6 @@ public void Custom1()
RRuleTextBuilderTestHelper.ToStringTest("FREQ=WEEKLY;COUNT=30;INTERVAL=1;WKST=MO;BYDAY=FR,TH,MO,TU,WE", "every weekday for 30 times");
RRuleTextBuilderTestHelper.ToStringTest("FREQ=WEEKLY;COUNT=30;INTERVAL=1;WKST=MO;BYDAY=FR,TU,WE,TH", "every week on Tuesday, Wednesday, Thursday, Friday for 30 times");
RRuleTextBuilderTestHelper.ToStringTest("FREQ=WEEKLY;COUNT=30;INTERVAL=1;WKST=SU;BYDAY=FR,TU,WE,TH,SU", "every week on Sunday, Tuesday, Wednesday, Thursday, Friday for 30 times"); //jakubroztocil liefert (keine Beachtung von Wochenanfang): every week on Tuesday, Wednesday, Thursday, Friday, Sunday for 30 times
//Assert.Pass();
}


Expand All @@ -107,7 +104,6 @@ public void Custom1G()
RRuleTextBuilderTestHelper.ToStringTestG("FREQ=WEEKLY;COUNT=30;INTERVAL=1;WKST=MO;BYDAY=FR,TH,MO,TU,WE", "jeden Wochentag 30 Mal");
RRuleTextBuilderTestHelper.ToStringTestG("FREQ=WEEKLY;COUNT=30;INTERVAL=1;WKST=MO;BYDAY=FR,TU,WE,TH", "jede Woche am Dienstag, Mittwoch, Donnerstag, Freitag 30 Mal");
RRuleTextBuilderTestHelper.ToStringTestG("FREQ=WEEKLY;COUNT=30;INTERVAL=1;WKST=SU;BYDAY=FR,TU,WE,TH,SU", "jede Woche am Sonntag, Dienstag, Mittwoch, Donnerstag, Freitag 30 Mal");
//Assert.Pass();
}


Expand Down Expand Up @@ -139,7 +135,6 @@ public void Jakubroztocil()
RRuleTextBuilderTestHelper.ToStringTest("FREQ=WEEKLY;BYDAY=SU,SA,MO,TU,WE,TH,FR", "every day");
RRuleTextBuilderTestHelper.ToStringTest("RRULE:FREQ=WEEKLY;INTERVAL=2;BYDAY=TU", "every 2 weeks on Tuesday");

//Assert.Pass();
}

[TestMethod]
Expand Down Expand Up @@ -169,12 +164,8 @@ public void JakubroztocilG()
RRuleTextBuilderTestHelper.ToStringTestG("FREQ=MONTHLY;BYDAY=2FR;COUNT=7", "jeden Monat am 2. Freitag 7 Mal");
RRuleTextBuilderTestHelper.ToStringTestG("FREQ=WEEKLY;BYDAY=SU,SA,MO,TU,WE,TH,FR", "jeden Tag");
RRuleTextBuilderTestHelper.ToStringTestG("RRULE:FREQ=WEEKLY;INTERVAL=2;BYDAY=TU", "alle 2 Wochen am Dienstag");

//Assert.Pass();
}


//
private class RRuleTextBuilderTestHelper
{
private RecurrencePattern recurrencePattern;
Expand All @@ -185,12 +176,9 @@ private class RRuleTextBuilderTestHelper

public RRuleTextBuilderTestHelper(string rRuleString, string readableString)
{

RRuleString = rRuleString;
ReadableString = readableString;
string rRuleStringC = RRuleTextBuilder.GetRRuleStringCorrection(rRuleString);
//if (rRuleStringC != rRuleString)
// Console.WriteLine(rRuleStringC);
recurrencePattern = new RecurrencePattern(rRuleStringC);
RecreatedRRuleString = recurrencePattern.ToString();
ReadableResult = recurrencePattern.ToText();
Expand All @@ -202,13 +190,9 @@ public RRuleTextBuilderTestHelper(string rRuleString, string readableString, str
RRuleString = rRuleString;
ReadableString = readableString;
string rRuleStringC = RRuleTextBuilder.GetRRuleStringCorrection(rRuleString);
//if (rRuleStringC != rRuleString)
// Console.WriteLine(rRuleStringC);
recurrencePattern = new RecurrencePattern(rRuleStringC);
RecreatedRRuleString = recurrencePattern.ToString();
//if (culture == "de-DE")
if (culture == "de")
//ReadableResult = recurrencePattern.ToText(new LanguagePackageFragmentTranslator(new GermanTranslation()));
ReadableResult = recurrencePattern.ToText(new CultureInfo(culture));
else
ReadableResult = recurrencePattern.ToText();
Expand All @@ -225,7 +209,6 @@ public static void ToStringTest(string rRuleString, string readableString)

public static void ToStringTestG(string rRuleString, string readableString)
{
//var rRuleTextBuilderTest = new RRuleTextBuilderTestHelper(rRuleString, readableString, "de-DE");
var rRuleTextBuilderTest = new RRuleTextBuilderTestHelper(rRuleString, readableString, "de");
Assert.IsTrue(rRuleTextBuilderTest.Result, rRuleTextBuilderTest.ResultMessage);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ public IActionResult Index()
list.Add(new RRuleHumanReadableSample() { RRule = sample, HumanReadable = recurrencePattern.ToText(cultureInfo) });
}
}

return View(list);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@

<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<Version>0.7.0</Version>
<Authors>pt</Authors>
<Company>IcgSoftware</Company>
<Description>Human readable extension for https://github.com/rianjs/ical.net</Description>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/pt-icg/IcalNetHumanReadableExtension</PackageProjectUrl>
<RepositoryUrl>https://github.com/pt-icg/IcalNetHumanReadableExtension</RepositoryUrl>
<PackageTags>rrule human-readable ical csharp</PackageTags>
</PropertyGroup>

<ItemGroup>
Expand Down
22 changes: 22 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,24 @@
# IcalNetHumanReadableExtension
Human readable extension for https://github.com/rianjs/ical.net

Supported languages:

| Language | Culture |
| ---------- | ------- |
| English | en |
| German | de |

### Usage example
```csharp
var recurrencePattern = new RecurrencePattern("FREQ=WEEKLY;INTERVAL=1;BYDAY=MO,TU");
recurrencePattern.ToText(); //every week on Monday, Tuesday
recurrencePattern = new RecurrencePattern("FREQ=YEARLY;BYDAY=WE;BYSETPOS=-1;BYMONTH=4");
recurrencePattern.ToText(); //every year on last Wednesday of April
var cultureInfo = new CultureInfo("de");
recurrencePattern.ToText(cultureInfo); //jedes Jahr am letzten Mittwoch im April
```

Thanks to [casaucao / OrdinalNumbers](https://github.com/casaucao/OrdinalNumbers).

0 comments on commit 2c50e1e

Please sign in to comment.