jamesstill / ScheduleWidget

ScheduleWidget handles recurring events for calendars
MIT License
42 stars 39 forks source link

Every n days months years support #10

Closed jerryjoseph closed 11 years ago

jerryjoseph commented 11 years ago

Hello James Still,

I am a .NET developer. I had forked your repository and added few more features to the ScheduleWidget by creating a branch from your AnniversaryEvents branch. Now the widget supports following options for each frequency except Quarterly.

Daily

  1. Every n days

    Monthly

  2. Every n months, selected week(s)/every week (1st week to last week), selected week day(s) (Sun to Sat)
  3. Every n months, selected day of month, selected week day(s) (Sun to Sat)

    Yearly

  4. Every n years, selected month, selected day

These features were initially considered as the requirements given by Mr. Dan Sargeant (https://github.com/danspam) to complete the scheduling functionality for his product. He suggested me to use your ScheduleWidget as it has most of the options that we require and advised me to extend it for meeting our requirements. I added the new code and it works great for us. Then we decided to let you know about these changes and add these options to your original ScheduleWidget version if you think it is useful.

I have reused the property 'FirstDateTime' of Event class to complete the above features. I think it has been added to provide every n weeks feature for ScheduleWidget by Dajo Hein (https://github.com/dajohein).

I had also seen one issue raised 8 months ago in your repository to support specific day of month (https://github.com/jamesstill/ScheduleWidget/issues/2). This option is also available with the new code.

shakinghand commented 11 years ago

Hi Jerry - Kurt Mang here, I am a contributor to the project.

You must have been working on an older branch, as James merged in my Quarterly event contributions and his own Annual / Anniversary contributions as well recently. Check out the latest master branch, you can see the enhancements.

Your enhancements sound great as well, hopefully James can get them all merged with latest and the ScheduleWidget will be even more flexible and powerful. I am using it for a project right now and it has been great.

Kurt Mang


From: "Jerry" notifications@github.com Sent: Thursday, May 09, 2013 1:14 AM To: "jamesstill/ScheduleWidget" ScheduleWidget@noreply.github.com Subject: [ScheduleWidget] Every n days months years support (#10)

Hello James Still,

I am a .NET developer. I had forked your repository and added few more features to the ScheduleWidget by creating a branch from your AnniversayEvents branch. Now the widget supports following options for each frequency except Quarterly. Daily Every n days Monthly Every n months, selected week(s)/every week (1st week to last week), selected week day(s) (Sun to Sat) Every n months, selected day of month, selected week day(s) (Sun to Sat) Yearly Every n years, selected month, selected day

These features were initially considered as the requirements given by Mr. Dan Sargeant https://github.com/danspam) to complete the scheduling functionality for his product. He suggested me to use your ScheduleWidget as it has most of the options that we require and advised me to extend it for meeting our requirements. I added the new code and it works great for us. Then we decided to let you know about these changes and add these options to your original ScheduleWidget version if you think it is useful.

I have reused the property 'FirstDateTime' of Event class to complete the above features. I think it has been added to provide every n weeks feature for ScheduleWidget by Dajo Hein (https://github.com/dajohein).

I had also seen one issue raised 8 months ago in your repository to support specific day of month (#2). This option is also available with the new

code.

You can merge this Pull Request by running git pull https://github.com/jerryjoseph/ScheduleWidget EveryNDaysMonthsYearsSupport

Or view, comment on, or merge it at:

https://github.com/jamesstill/ScheduleWidget/pull/10 Commit Summary
Support of every n days, every n months and every n years New way to find date range for next and previous occurrences as it was giving wrong values for some events. Added unit tests for month and year. Updated unit tests for DailyTests. Added missing reference for YearTests.cs
Refactored method 'DateRange'. additional refactoring of daterange method File Changes M
ScheduleWidget/ScheduleWidget.UnitTest/DailyTests.cs (43)
A ScheduleWidget/ScheduleWidget.UnitTest/MonthTests.cs (200)
M
ScheduleWidget/ScheduleWidget.UnitTest/ScheduleWidget.UnitTest.csproj
(2) A ScheduleWidget/ScheduleWidget.UnitTest/YearTests.cs (90) M
ScheduleWidget/ScheduleWidget/Enums/MonthlyIntervalEnum.cs (3)
M ScheduleWidget/ScheduleWidget/ScheduleWidget.csproj (3)
M ScheduleWidget/ScheduleWidget/ScheduledEvents/Event.cs
(24) M
ScheduleWidget/ScheduleWidget/ScheduledEvents/FrequencyBuilder/ConcreteBuild ers/DailyEventBuilder.cs (29) M
ScheduleWidget/ScheduleWidget/ScheduledEvents/FrequencyBuilder/ConcreteBuild ers/MonthlyEventBuilder.cs (34) M
ScheduleWidget/ScheduleWidget/ScheduledEvents/FrequencyBuilder/ConcreteBuild ers/YearlyEventBuilder.cs (6) M
ScheduleWidget/ScheduleWidget/ScheduledEvents/FrequencyBuilder/EventFrequenc yBuilder.cs (2) M
ScheduleWidget/ScheduleWidget/ScheduledEvents/Schedule.cs (73)
M
ScheduleWidget/ScheduleWidget/TemporalExpressions/AnniversaryTE.cs (21) M
ScheduleWidget/ScheduleWidget/TemporalExpressions/DayInMonthTE.cs (46)
M
ScheduleWidget/ScheduleWidget/TemporalExpressions/DayInQuarterTE.cs (2) A
ScheduleWidget/ScheduleWidget/TemporalExpressions/DayIntervalTE.cs (27) M
ScheduleWidget/ScheduleWidget/TemporalExpressions/FloatingHolidayTE.cs
(2) A
ScheduleWidget/ScheduleWidget/TemporalExpressions/MonthTE.cs (113)
M
ScheduleWidget/ScheduleWidget/TemporalExpressions/TEHelpers.cs (15)
A ScheduleWidget/ScheduleWidget/TemporalExpressions/YearTE.cs (45) Patch Links:
https://github.com/jamesstill/ScheduleWidget/pull/10.patch
https://github.com/jamesstill/ScheduleWidget/pull/10.diff

jerryjoseph commented 11 years ago

Hi Kurt,

Thank you for the information. I started working on AnniversaryEvents branch after I confirmed that the master branch here in this repository doesn't have the latest copy. This branch doesn't have Anniversary class and some other files which are there inside AnniversaryEvents branch. I know the latest release available includes all these options but it is not there in the master branch. Please let me know if James maintains any other place to keep the latest code so that I could push these changes there. Jerry

jamesstill commented 11 years ago

Sorry everyone. I completely forgot to merge Jerry's pull request back into the master. It was on my to-do list but...