Рефакторинг - переход на один класс с временем.
This commit is contained in:
@@ -79,20 +79,23 @@ namespace JiraTimeBot.TaskTime
|
|||||||
FixTooBigInterval(settings, workHours, totalCommitsCount);
|
FixTooBigInterval(settings, workHours, totalCommitsCount);
|
||||||
|
|
||||||
int remainMinutes = minutesPerWorkDay;
|
int remainMinutes = minutesPerWorkDay;
|
||||||
var timeControlTask = GetTimeControlTask(settings, ref remainMinutes);
|
|
||||||
var workTimeItems = SpreadTime(commits, remainMinutes, settings.RoundToMinutes);
|
|
||||||
|
|
||||||
|
var workTimeItems = new List<TaskTimeItem>();
|
||||||
|
var timeControlTask = GetTimeControlTask(settings.TimeControlTask);
|
||||||
if (timeControlTask != null)
|
if (timeControlTask != null)
|
||||||
{
|
{
|
||||||
workTimeItems.Add(timeControlTask);
|
workTimeItems.Add(timeControlTask);
|
||||||
|
remainMinutes -= (int)timeControlTask.TimeSpent.TotalMinutes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var workTasks = SpreadTime(commits, remainMinutes, settings.RoundToMinutes);
|
||||||
|
workTimeItems.AddRange(workTasks);
|
||||||
|
|
||||||
remainMinutes = minutesPerWorkDay - (int) workTimeItems.Sum(f => f.TimeSpent.TotalMinutes);
|
remainMinutes = minutesPerWorkDay - (int) workTimeItems.Sum(f => f.TimeSpent.TotalMinutes);
|
||||||
if (remainMinutes != 0)
|
if (remainMinutes != 0)
|
||||||
{
|
{
|
||||||
_log.Trace($"Погрешность распределения времени: {remainMinutes}. Добавляю к первой задаче.");
|
_log.Trace($"Погрешность распределения времени: {remainMinutes}. Добавляю к первой задаче.");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((workTimeItems.First().TimeSpent.TotalMinutes > Math.Abs(remainMinutes) && remainMinutes < 0) || remainMinutes > 0)
|
if ((workTimeItems.First().TimeSpent.TotalMinutes > Math.Abs(remainMinutes) && remainMinutes < 0) || remainMinutes > 0)
|
||||||
{
|
{
|
||||||
//если переборщили или не достаточно добавили до 8 часов - скореектируем остаток в первой задаче (она самая трудозатратная).
|
//если переборщили или не достаточно добавили до 8 часов - скореектируем остаток в первой задаче (она самая трудозатратная).
|
||||||
@@ -101,19 +104,18 @@ namespace JiraTimeBot.TaskTime
|
|||||||
|
|
||||||
PrintTotal(workTimeItems);
|
PrintTotal(workTimeItems);
|
||||||
|
|
||||||
return workTimeItems;
|
return workTimeItems.OrderByDescending(f=>f.TimeSpent).ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private TaskTimeItem GetTimeControlTask(Settings settings, ref int minutesPerWorkDay)
|
private TaskTimeItem GetTimeControlTask(string timeControlTask, int minutes = 30)
|
||||||
{
|
{
|
||||||
//Если указана задача контроля времени - то спишем туда 30 минут и вычеркнем их из общего рабочего времени.
|
//Если указана задача контроля времени - то спишем туда 30 минут и вычеркнем их из общего рабочего времени.
|
||||||
if (!string.IsNullOrEmpty(settings.TimeControlTask))
|
if (!string.IsNullOrEmpty(timeControlTask))
|
||||||
{
|
{
|
||||||
minutesPerWorkDay = minutesPerWorkDay - 30;
|
|
||||||
return new TaskTimeItem
|
return new TaskTimeItem
|
||||||
{
|
{
|
||||||
TimeSpent = TimeSpan.FromMinutes(30),
|
TimeSpent = TimeSpan.FromMinutes(minutes),
|
||||||
Branch = settings.TimeControlTask,
|
Branch = timeControlTask,
|
||||||
Commits = 1,
|
Commits = 1,
|
||||||
Description = "Ведение учета времени"
|
Description = "Ведение учета времени"
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user