Добавлен отчет по митингу
This commit is contained in:
@@ -20,6 +20,12 @@ namespace JiraTimeBotForm.JiraIntegration
|
|||||||
_jira = Jira.CreateRestClient(_settings.JiraUrl, _settings.JiraUserName, _settings.JiraPassword);
|
_jira = Jira.CreateRestClient(_settings.JiraUrl, _settings.JiraUserName, _settings.JiraPassword);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string GetTaskName(string branch)
|
||||||
|
{
|
||||||
|
var issue = _jira.Issues.Queryable.FirstOrDefault(f => f.Key == branch);
|
||||||
|
return issue?.Summary;
|
||||||
|
}
|
||||||
|
|
||||||
public void SetTodayWorklog(List<TaskTimeItem> taskTimeItems, DateTime? date = null, bool dummy = false)
|
public void SetTodayWorklog(List<TaskTimeItem> taskTimeItems, DateTime? date = null, bool dummy = false)
|
||||||
{
|
{
|
||||||
if (date == null)
|
if (date == null)
|
||||||
@@ -50,7 +56,7 @@ namespace JiraTimeBotForm.JiraIntegration
|
|||||||
_log.Trace($"Время отличается на {timeDiff} минут, удаляю worklog: {taskTimeItem.Branch} {workLog.Author} {workLog.CreateDate}: {workLog.TimeSpent}");
|
_log.Trace($"Время отличается на {timeDiff} минут, удаляю worklog: {taskTimeItem.Branch} {workLog.Author} {workLog.CreateDate}: {workLog.TimeSpent}");
|
||||||
if (!dummy)
|
if (!dummy)
|
||||||
{
|
{
|
||||||
issue.DeleteWorklogAsync(workLog, WorklogStrategy.RetainRemainingEstimate);
|
issue.DeleteWorklogAsync(workLog);
|
||||||
}
|
}
|
||||||
hasTodayWorklog = false;
|
hasTodayWorklog = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ namespace JiraTimeBotForm.TaskTime
|
|||||||
}
|
}
|
||||||
|
|
||||||
workTasks.Add(changeset.Branch);
|
workTasks.Add(changeset.Branch);
|
||||||
_log.Trace($" - Найден changeset: {changeset.Timestamp} - {changeset.Branch} - {changeset.AuthorEmailAddress}");
|
_log?.Trace($" - Найден changeset: {changeset.Timestamp} - {changeset.Branch} - {changeset.AuthorEmailAddress}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -63,7 +63,7 @@ namespace JiraTimeBotForm.TaskTime
|
|||||||
{
|
{
|
||||||
Branch = taskGroup.Key,
|
Branch = taskGroup.Key,
|
||||||
Time = TimeSpan.FromMinutes(minutesForCurrentTaskGroup),
|
Time = TimeSpan.FromMinutes(minutesForCurrentTaskGroup),
|
||||||
Commits = taskGroup.Count()
|
Commits = taskGroup.Count(),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Generated
+15
-2
@@ -46,6 +46,7 @@ namespace JiraTimeBotForm
|
|||||||
this.ntfyIcon = new System.Windows.Forms.NotifyIcon(this.components);
|
this.ntfyIcon = new System.Windows.Forms.NotifyIcon(this.components);
|
||||||
this.tmrStart = new System.Windows.Forms.Timer(this.components);
|
this.tmrStart = new System.Windows.Forms.Timer(this.components);
|
||||||
this.txtDummyMode = new System.Windows.Forms.CheckBox();
|
this.txtDummyMode = new System.Windows.Forms.CheckBox();
|
||||||
|
this.btnMeeting = new System.Windows.Forms.Button();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
// actTime
|
// actTime
|
||||||
@@ -151,7 +152,7 @@ namespace JiraTimeBotForm
|
|||||||
//
|
//
|
||||||
// btnStart
|
// btnStart
|
||||||
//
|
//
|
||||||
this.btnStart.Location = new System.Drawing.Point(48, 257);
|
this.btnStart.Location = new System.Drawing.Point(34, 257);
|
||||||
this.btnStart.Name = "btnStart";
|
this.btnStart.Name = "btnStart";
|
||||||
this.btnStart.Size = new System.Drawing.Size(103, 23);
|
this.btnStart.Size = new System.Drawing.Size(103, 23);
|
||||||
this.btnStart.TabIndex = 12;
|
this.btnStart.TabIndex = 12;
|
||||||
@@ -173,18 +174,29 @@ namespace JiraTimeBotForm
|
|||||||
// txtDummyMode
|
// txtDummyMode
|
||||||
//
|
//
|
||||||
this.txtDummyMode.AutoSize = true;
|
this.txtDummyMode.AutoSize = true;
|
||||||
this.txtDummyMode.Location = new System.Drawing.Point(48, 234);
|
this.txtDummyMode.Location = new System.Drawing.Point(31, 234);
|
||||||
this.txtDummyMode.Name = "txtDummyMode";
|
this.txtDummyMode.Name = "txtDummyMode";
|
||||||
this.txtDummyMode.Size = new System.Drawing.Size(114, 17);
|
this.txtDummyMode.Size = new System.Drawing.Size(114, 17);
|
||||||
this.txtDummyMode.TabIndex = 13;
|
this.txtDummyMode.TabIndex = 13;
|
||||||
this.txtDummyMode.Text = "Òåñòîâûé ïðîãîí";
|
this.txtDummyMode.Text = "Òåñòîâûé ïðîãîí";
|
||||||
this.txtDummyMode.UseVisualStyleBackColor = true;
|
this.txtDummyMode.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
|
// btnMeeting
|
||||||
|
//
|
||||||
|
this.btnMeeting.Location = new System.Drawing.Point(160, 257);
|
||||||
|
this.btnMeeting.Name = "btnMeeting";
|
||||||
|
this.btnMeeting.Size = new System.Drawing.Size(52, 23);
|
||||||
|
this.btnMeeting.TabIndex = 14;
|
||||||
|
this.btnMeeting.Text = "Ìèòèíã";
|
||||||
|
this.btnMeeting.UseVisualStyleBackColor = true;
|
||||||
|
this.btnMeeting.Click += new System.EventHandler(this.btnMeeting_Click);
|
||||||
|
//
|
||||||
// frmMain
|
// frmMain
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.ClientSize = new System.Drawing.Size(740, 292);
|
this.ClientSize = new System.Drawing.Size(740, 292);
|
||||||
|
this.Controls.Add(this.btnMeeting);
|
||||||
this.Controls.Add(this.txtDummyMode);
|
this.Controls.Add(this.txtDummyMode);
|
||||||
this.Controls.Add(this.btnStart);
|
this.Controls.Add(this.btnStart);
|
||||||
this.Controls.Add(this.txtLog);
|
this.Controls.Add(this.txtLog);
|
||||||
@@ -229,6 +241,7 @@ namespace JiraTimeBotForm
|
|||||||
private System.Windows.Forms.NotifyIcon ntfyIcon;
|
private System.Windows.Forms.NotifyIcon ntfyIcon;
|
||||||
private System.Windows.Forms.Timer tmrStart;
|
private System.Windows.Forms.Timer tmrStart;
|
||||||
private System.Windows.Forms.CheckBox txtDummyMode;
|
private System.Windows.Forms.CheckBox txtDummyMode;
|
||||||
|
private System.Windows.Forms.Button btnMeeting;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -185,5 +185,56 @@ namespace JiraTimeBotForm
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void btnMeeting_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!Directory.Exists(txtRepoPath.Text))
|
||||||
|
{
|
||||||
|
MessageBox.Show("Ïàïêà ñ ðåïî íå ñóøåñòâóåò.", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
txtLog.Text = "";
|
||||||
|
var settings = new Settings
|
||||||
|
{
|
||||||
|
JiraUserName = txtJiraLogin.Text,
|
||||||
|
JiraPassword = txtJiraPassword.Text,
|
||||||
|
MercurialAuthorEmail = txtMercurialEmail.Text,
|
||||||
|
ActivationTime = TimeSpan.Parse(actTime.Text),
|
||||||
|
RepositoryPath = txtRepoPath.Text
|
||||||
|
};
|
||||||
|
|
||||||
|
var jira = new JiraApi(settings, _log);
|
||||||
|
var taskDiscoverer = new TaskTimeDiscoverer();
|
||||||
|
|
||||||
|
int daysDiff = -1;
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
var date = DateTime.Now.Date.AddDays(daysDiff);
|
||||||
|
var taskTimes = taskDiscoverer.GetTaskTimes(settings, date);
|
||||||
|
if (!taskTimes.Any())
|
||||||
|
{
|
||||||
|
_log.Warn($"{date:dd.MM.yyyy} âû íå ñäåëàëè íè÷åãî ïîëåçíîãî =) Èñïîëüçóþ ïðåäûäóùèé äåíü.");
|
||||||
|
daysDiff--;
|
||||||
|
if (daysDiff < -7)
|
||||||
|
{
|
||||||
|
_log.Error("Íå íàøëè íè îäíîãî êîììèòà çà ïðåäûäóùèå 7 äíåé. Âîçìîæíî âû â îòïóñêå? Âûõîæó.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
_log.Trace($"Íà ðåàëüíóþ äàòó {date:dd.MM.yyyy} ðàñïðåäåëåíèå ïî çàäà÷àì:");
|
||||||
|
foreach (var taskTime in taskTimes.OrderByDescending(f=>f.Time))
|
||||||
|
{
|
||||||
|
var taskName = jira.GetTaskName(taskTime.Branch);
|
||||||
|
_log.Trace($"- {taskTime.Branch}: {taskName} - {taskTime.Time}");
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user