Добавлен отчет по митингу

This commit is contained in:
Danil Kislov
2019-03-06 12:14:37 +03:00
parent 83340c3ef5
commit 9f3a913acb
4 changed files with 76 additions and 6 deletions
+8 -2
View File
@@ -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(),
});
}
+15 -2
View File
@@ -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;
}
}
+51
View File
@@ -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;
}
}
}
}