Update componente taskScheduler x ricalcolo + corretto
This commit is contained in:
@@ -28,49 +28,56 @@ namespace MP.TaskMan.Controllers
|
||||
public DateTime CalcNextExe(TaskListModel taskRec)
|
||||
{
|
||||
DateTime dtNext = DateTime.Today;
|
||||
DateTime adesso = DateTime.Now;
|
||||
int maxIter = 1000;
|
||||
try
|
||||
{
|
||||
// prendo come partenza la DATA di fine a cui aggiungo l'ora/minuti schedulata precedentemente
|
||||
TimeSpan oraSched = taskRec.DtNextExec.Subtract(taskRec.DtNextExec.Date);
|
||||
DateTime baseDT = taskRec.DtLastExec.Date.Add(oraSched);
|
||||
// calcolo next exec da tipo...
|
||||
switch (taskRec.Freq)
|
||||
// calcolo next exec da tipo... con ciclo fino a quando supero dataora attuale...
|
||||
while (dtNext < adesso && maxIter > 0)
|
||||
{
|
||||
case TaskFreqType.ND:
|
||||
dtNext = baseDT.AddDays(taskRec.Cad);
|
||||
break;
|
||||
switch (taskRec.Freq)
|
||||
{
|
||||
case TaskFreqType.ND:
|
||||
dtNext = baseDT.AddDays(taskRec.Cad);
|
||||
break;
|
||||
|
||||
case TaskFreqType.Sec:
|
||||
dtNext = baseDT.AddSeconds(taskRec.Cad);
|
||||
break;
|
||||
case TaskFreqType.Sec:
|
||||
dtNext = baseDT.AddSeconds(taskRec.Cad);
|
||||
break;
|
||||
|
||||
case TaskFreqType.Min:
|
||||
dtNext = baseDT.AddMinutes(taskRec.Cad);
|
||||
break;
|
||||
case TaskFreqType.Min:
|
||||
dtNext = baseDT.AddMinutes(taskRec.Cad);
|
||||
break;
|
||||
|
||||
case TaskFreqType.Hour:
|
||||
dtNext = baseDT.AddHours(taskRec.Cad);
|
||||
break;
|
||||
case TaskFreqType.Hour:
|
||||
dtNext = baseDT.AddHours(taskRec.Cad);
|
||||
break;
|
||||
|
||||
case TaskFreqType.Day:
|
||||
dtNext = baseDT.AddDays(taskRec.Cad);
|
||||
break;
|
||||
case TaskFreqType.Day:
|
||||
dtNext = baseDT.AddDays(taskRec.Cad);
|
||||
break;
|
||||
|
||||
case TaskFreqType.Week:
|
||||
dtNext = baseDT.AddDays(7 * taskRec.Cad);
|
||||
break;
|
||||
case TaskFreqType.Week:
|
||||
dtNext = baseDT.AddDays(7 * taskRec.Cad);
|
||||
break;
|
||||
|
||||
case TaskFreqType.Month:
|
||||
dtNext = baseDT.AddMonths(taskRec.Cad);
|
||||
break;
|
||||
case TaskFreqType.Month:
|
||||
dtNext = baseDT.AddMonths(taskRec.Cad);
|
||||
break;
|
||||
|
||||
case TaskFreqType.Year:
|
||||
dtNext = baseDT.AddYears(taskRec.Cad);
|
||||
break;
|
||||
case TaskFreqType.Year:
|
||||
dtNext = baseDT.AddYears(taskRec.Cad);
|
||||
break;
|
||||
|
||||
default:
|
||||
dtNext = baseDT.AddDays(taskRec.Cad);
|
||||
break;
|
||||
default:
|
||||
dtNext = baseDT.AddDays(taskRec.Cad);
|
||||
break;
|
||||
}
|
||||
baseDT = dtNext;
|
||||
maxIter--;
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
|
||||
Reference in New Issue
Block a user