Compare commits

...
7 Commits
9 changed files with 64 additions and 40 deletions
+1 -1
View File
@@ -1 +1 @@
1.0.50
1.0.55
+3 -1
View File
@@ -17,7 +17,9 @@
- JQL (Режим Jira) - можно задать свой JQL для поиска задач. Возможные замены: %USER% - Логин Jira, %DATE% дата на которую формируем список. Значнеие по умолчанию: status changed by '%USER%' during ("%DATE%","%DATE%")
- Задача "учёта времени" - задача, куда будет списываться по 30 минут в день на "затраты на учет времени". Должна содержать знак '-'.
- Время запуска - время автоматического запуска бота. Если была установлена галочка "тестовый прогон" - она будет снята.
- Минут в рабочем дне - количество распределяемых минут (оыбчно 8 * 60).
- Рандомных минут - если > 0, то будет прибавлено рандомное количество минут к рабочему времени (но кратное значению округления).
- Добавлять описание (Режим Mercurial) - добавлять ли в описание CommitMessage, если не установлено - добавляются стандартные фразы программистов (типа "написание кода").
- Автозагрузка - загружать ли программу при старте ОС.
# Скачать
Скачать актуальную версию можно тут: https://github.com/monster1025/JiraTimeBot/releases/latest
+2 -2
View File
@@ -146,7 +146,7 @@ namespace JiraTimeBot.JiraIntegration
{
try
{
issue.DeleteWorklogAsync(workLog, token: cancellationToken);
issue.DeleteWorklogAsync(workLog, WorklogStrategy.RetainRemainingEstimate, token: cancellationToken);
}
catch (Exception ex)
{
@@ -172,7 +172,7 @@ namespace JiraTimeBot.JiraIntegration
{
try
{
workLogToAdd = issue.AddWorklogAsync(workLogToAdd, token: cancellationToken).Result;
workLogToAdd = issue.AddWorklogAsync(workLogToAdd, WorklogStrategy.RetainRemainingEstimate, token: cancellationToken).Result;
}
catch (Exception ex)
{
@@ -12,8 +12,8 @@ namespace JiraTimeBot.Mercurial.Modifiers
}
//Пропускаем Close и Merge коммиты
if (commitMessage.StartsWith($"Close {branch} ", StringComparison.InvariantCultureIgnoreCase) ||
commitMessage.StartsWith($"Merge with ", StringComparison.InvariantCultureIgnoreCase))
if (commitMessage.StartsWith($"Close {branch}", StringComparison.InvariantCultureIgnoreCase) ||
commitMessage.StartsWith($"Merge with", StringComparison.InvariantCultureIgnoreCase))
{
return true;
}
+3 -3
View File
@@ -26,6 +26,6 @@ using System.Runtime.InteropServices;
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.50")]
[assembly: AssemblyFileVersion("1.0.50")]
[assembly: AssemblyInformationalVersion("1.0.50")]
[assembly: AssemblyVersion("1.0.55")]
[assembly: AssemblyFileVersion("1.0.55")]
[assembly: AssemblyInformationalVersion("1.0.55")]
@@ -65,7 +65,7 @@ namespace JiraTimeBot.TaskTime
}
int currentTaskCommits = taskGroup.Count();
int currentTaskTime = (int)RoundTo(minutesPerWorkDay / totalCommitsCount * currentTaskCommits, settings.RoundToMinutes);
int currentTaskTime = (int)RoundTo(minutesPerWorkDay / totalCommitsCount * currentTaskCommits, settings.RoundToMinutes, false);
remainMinutes = remainMinutes - currentTaskTime;
var orderedTasks = taskGroup.OrderBy(f => f.Time).ToArray();
@@ -99,7 +99,7 @@ namespace JiraTimeBot.TaskTime
_log.Trace($"Погрешность распределения времени: {remainMinutes}. Добавляю к первой задаче.");
}
if (workTimeItems.First().Time.TotalMinutes > Math.Abs(remainMinutes) && remainMinutes < 0)
if ((workTimeItems.First().Time.TotalMinutes > Math.Abs(remainMinutes) && remainMinutes < 0) || remainMinutes > 0)
{
//если переборщили или не достаточно добавили до 8 часов - скореектируем остаток в первой задаче (она самая трудозатратная).
workTimeItems.First().Time += TimeSpan.FromMinutes(remainMinutes);
+8
View File
@@ -222,6 +222,14 @@ namespace JiraTimeBot.UI
{
//если обновились - отключаем до рестарта
tmrUpdate.Enabled = false;
var result = MessageBox.Show($"Приложение обновлено до новой версии. Перезапустить сейчас?",
"Обновление",
MessageBoxButtons.YesNo,
MessageBoxIcon.Warning);
if (result == DialogResult.Yes)
{
updater.SelfRestart();
}
}
}
catch (Exception ex)
+1
View File
@@ -5,5 +5,6 @@ namespace JiraTimeBot.Update
internal interface IUpdater
{
bool UpdateToNewVersion(bool firstTime);
void SelfRestart();
}
}
+13
View File
@@ -1,4 +1,5 @@
using System;
using System.Diagnostics;
using System.IO;
using System.IO.Compression;
using System.Linq;
@@ -124,6 +125,18 @@ namespace JiraTimeBot.Update
return false;
}
}
public void SelfRestart()
{
var name = Application.ExecutablePath;
ProcessStartInfo startInfo = new ProcessStartInfo {
Arguments = "/C choice /C Y /N /D Y /T 1 & \"" + name + "\"",
WindowStyle = ProcessWindowStyle.Hidden,
CreateNoWindow = true,
FileName = "cmd.exe"
};
Process.Start(startInfo);
Application.Exit();
}
private bool DownloadFile(string url, string to)