diff --git a/Google-Noto-Emoji-Smileys-10103-robot-face.ico b/Google-Noto-Emoji-Smileys-10103-robot-face.ico deleted file mode 100644 index 910d597..0000000 Binary files a/Google-Noto-Emoji-Smileys-10103-robot-face.ico and /dev/null differ diff --git a/JiraTimeBotForm/TaskTime/TaskTimeDiscoverer.cs b/JiraTimeBotForm/TaskTime/TaskTimeDiscoverer.cs index be91472..10e219d 100644 --- a/JiraTimeBotForm/TaskTime/TaskTimeDiscoverer.cs +++ b/JiraTimeBotForm/TaskTime/TaskTimeDiscoverer.cs @@ -62,24 +62,43 @@ namespace JiraTimeBotForm.TaskTime _log?.Trace($" - Найден changeset: {changeset.Timestamp} - {changeset.Branch} - {changeset.AuthorEmailAddress}"); } } + if (!workTasks.Any()) + { + return new List(); + } + + int remainMinutes = settings.MinuterPerWorkDay; //Нам нужно раскидать 480 минут в день. foreach (var taskGroup in workTasks.GroupBy(f => f)) { - var minutesPerTime = settings.MinuterPerWorkDay / workTasks.Count; - var minutesForCurrentTaskGroup = minutesPerTime * taskGroup.Count(); + int currentTaskCommits = taskGroup.Count(); + int currentTaskTime = (int)RoundTo15(settings.MinuterPerWorkDay / workTasks.Count * currentTaskCommits); + remainMinutes = remainMinutes - currentTaskTime; var taskTimeItem = new TaskTimeItem { Branch = taskGroup.Key, - Time = TimeSpan.FromMinutes(minutesForCurrentTaskGroup), + Time = TimeSpan.FromMinutes(currentTaskTime), Commits = taskGroup.Count(), }; workTimeItems.Add(taskTimeItem); } + workTimeItems.First().Time += TimeSpan.FromMinutes(remainMinutes); return workTimeItems; } + + private decimal RoundTo15(decimal value, bool up = true) + { + if ((value % 15) == 0) + return value; + if (up) + return (value - (value % 15) + 15); + + return (value - (value % 15)); + } + } } diff --git a/JiraTimeBotForm/frmMain.Designer.cs b/JiraTimeBotForm/frmMain.Designer.cs index 96b1143..3fc5abc 100644 --- a/JiraTimeBotForm/frmMain.Designer.cs +++ b/JiraTimeBotForm/frmMain.Designer.cs @@ -171,7 +171,7 @@ // tmrStart // this.tmrStart.Enabled = true; - this.tmrStart.Interval = 1000; + this.tmrStart.Interval = 1500; this.tmrStart.Tick += new System.EventHandler(this.tmrStart_Tick); // // txtDummyMode diff --git a/README.md b/README.md index ff79482..e0d48a0 100644 --- a/README.md +++ b/README.md @@ -1 +1,7 @@ -# JiraTimeBot \ No newline at end of file +# JiraTimeBot +Приложение для автоматического добавления Jira Worklog'ов исходя из количества коммитов в ветку. + +# Предположения + - Предполагается что все Ваши репозитории находятся в одной папке (к которой вы указываете путь в настройках). + - Предполагается что ветки в JIRA имеют название эквивалентное имени бранча в Mercurial. +