Рефакторинг + DI

This commit is contained in:
Danil Kislov
2019-03-15 17:49:58 +03:00
parent fd02201b42
commit d56094febb
19 changed files with 288 additions and 105 deletions
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace JiraTimeBotForm.TasksProcessors
{
public interface ITasksProcessors
{
WorkLogTasksProcessor WorkLogTasksProcessor { get; }
MeetingProcessor MeetingProcessor { get; }
}
}
@@ -8,24 +8,24 @@ using JiraTimeBotForm.TaskTime;
namespace JiraTimeBotForm.TasksProcessors
{
class MeetingProcessor : ITasksProcessor
public class MeetingProcessor : ITasksProcessor
{
private readonly ILog _log;
private readonly JiraApi _jiraApi;
public MeetingProcessor(ILog log)
public MeetingProcessor(ILog log, JiraApi jiraApi)
{
_log = log;
_jiraApi = jiraApi;
}
public void Process(DateTime date, List<TaskTimeItem> taskTimes, Settings settings)
{
var jira = new JiraApi(settings, _log);
_log.Trace($"На реальную дату {date:dd.MM.yyyy} распределение по задачам:");
foreach (var taskTime in taskTimes.OrderByDescending(f => f.Time))
{
var taskName = jira.GetTaskName(taskTime.Branch);
var taskName = _jiraApi.GetTaskName(taskTime.Branch, settings);
_log.Trace($" - [{taskTime.Branch}, коммитов {taskTime.Commits}]: {taskName} - {taskTime.Time}");
}
}
@@ -7,13 +7,15 @@ using JiraTimeBotForm.TaskTime;
namespace JiraTimeBotForm.TasksProcessors
{
class WorkLogTasksProcessor : ITasksProcessor
public class WorkLogTasksProcessor : ITasksProcessor
{
private readonly ILog _log;
private readonly JiraApi _jiraApi;
public WorkLogTasksProcessor(ILog log)
public WorkLogTasksProcessor(ILog log, JiraApi jiraApi)
{
_log = log;
_jiraApi = jiraApi;
}
public void Process(DateTime date, List<TaskTimeItem> taskTimes, Settings settings)
@@ -24,8 +26,7 @@ namespace JiraTimeBotForm.TasksProcessors
_log.Trace($"- {taskTime.Branch} (коммитов {taskTime.Commits}): {taskTime.Time}");
}
var jira = new JiraApi(settings, _log);
jira.SetTodayWorklog(taskTimes, dummy: settings.DummyMode, addCommentsToWorklog: settings.AddCommentsToWorklog);
_jiraApi.SetTodayWorklog(taskTimes, settings, dummy: settings.DummyMode, addCommentsToWorklog: settings.AddCommentsToWorklog);
}
}
}