[Feature Request] IntervalPicker
Example Scenario
A user should be able to define intervals in which he gets reports.
The possibilities would look something like this:
- Every monday on 9am
- First working day a month 10am
- Every day on 5pm
- Every 2 years/months/weeks/days/hours/minutes/seconds (in a range from x to y o'clock)
I didn't came up with a good idea how to build a component. I was playing arround with the MudDatePicker but that didn't work well. So i thought maybe someone here in the community has an idea and is motivated to build a component that is able to solve this.
I would also offer to build it but at the moment i don't really have a good idea how to design the component so that the user would understand how to use it.
Would much appreciate ideas/drawings or any other kind of input here.
My thoughts: I have an idea how to make two different masks depending on wether it's a continous interval (with limits) or a specific interval.
What i want a user to be able to select is f.ex.:
- Every 2 hours from 8am to 4pm
- Every first day of a work week at 10am
- Every two days at 3pm
- ...
I'd like to find a way where you can do this all in one mask.
So how do others for example make this, let's have a look at Outlook:
This has to take care of holiday days i guess, so internally use something like this: https://www.nuget.org/packages/PublicHoliday
We need to have something like a DataObject, JsonSerializable so that interval can be saved in databases and that you can schedule tasks timers by the user defined interval.
I'm thinking about something like the binded Value of the component is something like a MudIntervalSettings-Object and for Timer and Tasks we make an extension like timer.WithMudIntervalSettings(settings).
This would work for small intervals like do something every minute or hour but this also has to be "restart safe" so for longer intervals like once a week it doesn't make sense to use a timer instead you would check like every 5 minutes if any user's condition is satisfied and work has to be done.
For this i'm thinking about something like DateTime.Now.IsMudIntervalSatisfied(settings).