Добавлен отчет по митингу
This commit is contained in:
@@ -19,7 +19,13 @@ namespace JiraTimeBotForm.JiraIntegration
|
||||
_log = log;
|
||||
_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)
|
||||
{
|
||||
if (date == null)
|
||||
@@ -50,7 +56,7 @@ namespace JiraTimeBotForm.JiraIntegration
|
||||
_log.Trace($"Время отличается на {timeDiff} минут, удаляю worklog: {taskTimeItem.Branch} {workLog.Author} {workLog.CreateDate}: {workLog.TimeSpent}");
|
||||
if (!dummy)
|
||||
{
|
||||
issue.DeleteWorklogAsync(workLog, WorklogStrategy.RetainRemainingEstimate);
|
||||
issue.DeleteWorklogAsync(workLog);
|
||||
}
|
||||
hasTodayWorklog = false;
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace JiraTimeBotForm.TaskTime
|
||||
}
|
||||
|
||||
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,
|
||||
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.tmrStart = new System.Windows.Forms.Timer(this.components);
|
||||
this.txtDummyMode = new System.Windows.Forms.CheckBox();
|
||||
this.btnMeeting = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// actTime
|
||||
@@ -151,7 +152,7 @@ namespace JiraTimeBotForm
|
||||
//
|
||||
// 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.Size = new System.Drawing.Size(103, 23);
|
||||
this.btnStart.TabIndex = 12;
|
||||
@@ -173,18 +174,29 @@ namespace JiraTimeBotForm
|
||||
// txtDummyMode
|
||||
//
|
||||
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.Size = new System.Drawing.Size(114, 17);
|
||||
this.txtDummyMode.TabIndex = 13;
|
||||
this.txtDummyMode.Text = "Òåñòîâûé ïðîãîí";
|
||||
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
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(740, 292);
|
||||
this.Controls.Add(this.btnMeeting);
|
||||
this.Controls.Add(this.txtDummyMode);
|
||||
this.Controls.Add(this.btnStart);
|
||||
this.Controls.Add(this.txtLog);
|
||||
@@ -229,6 +241,7 @@ namespace JiraTimeBotForm
|
||||
private System.Windows.Forms.NotifyIcon ntfyIcon;
|
||||
private System.Windows.Forms.Timer tmrStart;
|
||||
private System.Windows.Forms.CheckBox txtDummyMode;
|
||||
private System.Windows.Forms.Button btnMeeting;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -185,5 +185,56 @@ namespace JiraTimeBotForm
|
||||
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