diff --git a/JiraTimeBotForm/App.config b/JiraTimeBotForm/App.config
index be09118..4abcc95 100644
--- a/JiraTimeBotForm/App.config
+++ b/JiraTimeBotForm/App.config
@@ -13,6 +13,10 @@
+
+
+
+
diff --git a/JiraTimeBotForm/Passwords/EncryptionClass.cs b/JiraTimeBotForm/Configuration/PasswordEncryptionClass.cs
similarity index 93%
rename from JiraTimeBotForm/Passwords/EncryptionClass.cs
rename to JiraTimeBotForm/Configuration/PasswordEncryptionClass.cs
index cef64da..7f1cf30 100644
--- a/JiraTimeBotForm/Passwords/EncryptionClass.cs
+++ b/JiraTimeBotForm/Configuration/PasswordEncryptionClass.cs
@@ -1,10 +1,10 @@
using System;
-using System.Text;
using System.Security.Cryptography;
+using System.Text;
-namespace JiraTimeBotForm.Passwords
+namespace JiraTimeBotForm.Configuration
{
- public class EncryptionClass
+ public class PasswordEncryptionClass
{
private byte[] GetEntropy(string EntropyString)
{
diff --git a/JiraTimeBotForm/Configuration/Settings.cs b/JiraTimeBotForm/Configuration/Settings.cs
index 6505967..9c609ed 100644
--- a/JiraTimeBotForm/Configuration/Settings.cs
+++ b/JiraTimeBotForm/Configuration/Settings.cs
@@ -1,4 +1,7 @@
using System;
+using System.IO;
+using System.Windows.Forms;
+using Newtonsoft.Json;
namespace JiraTimeBotForm.Configuration
{
@@ -14,5 +17,34 @@ namespace JiraTimeBotForm.Configuration
public TimeSpan ActivationTime { get; set; }
public bool DummyMode { get; set; }
public bool AddCommentsToWorklog { get; set; }
+
+
+ public static Settings Load()
+ {
+ var settingsPath = Path.Combine(Application.UserAppDataPath, _settingsFileName);
+ if (!File.Exists(settingsPath))
+ {
+ return null;
+ }
+
+ var settingsText = File.ReadAllText(settingsPath);
+ var settings = JsonConvert.DeserializeObject(settingsText);
+
+ var password = new PasswordEncryptionClass().Decrypt(settings.JiraUserName, settings.JiraPassword, settings.JiraUrl);
+ settings.JiraPassword = password;
+ return settings;
+ }
+
+ public void Save()
+ {
+ var password = new PasswordEncryptionClass().Encrypt(this.JiraUserName, this.JiraPassword, this.JiraUrl);
+ this.JiraPassword = password;
+
+ var settingsPath = Path.Combine(Application.UserAppDataPath, _settingsFileName);
+ var settingsString = JsonConvert.SerializeObject(this);
+ File.WriteAllText(settingsPath, settingsString);
+ }
+
+ private static string _settingsFileName = "settings.json";
}
}
diff --git a/JiraTimeBotForm/DI/ContainerBuilder.cs b/JiraTimeBotForm/DI/ContainerBuilder.cs
new file mode 100644
index 0000000..77dba65
--- /dev/null
+++ b/JiraTimeBotForm/DI/ContainerBuilder.cs
@@ -0,0 +1,42 @@
+using System.Windows.Forms;
+using Autofac;
+using Autofac.Extras.AggregateService;
+using JiraTimeBotForm.JiraIntegration;
+using JiraTimeBotForm.Mercurial;
+using JiraTimeBotForm.TaskProcessors;
+using JiraTimeBotForm.TasksProcessors;
+using JiraTimeBotForm.TaskTime;
+using JiraTimeBotForm.UI;
+
+namespace JiraTimeBotForm.DI
+{
+ public class Bootstrapper
+ {
+ private readonly ContainerBuilder _builder;
+ public Bootstrapper()
+ {
+ _builder = new ContainerBuilder();
+ }
+
+ public IContainer Build(TextBox logTextBox)
+ {
+ _builder.Register(f => new Logger(logTextBox)).As().AsSelf();
+
+ _builder.Register(f => new TrayMenu()).As().AsSelf();
+ _builder.Register(c => new CommitSkipper()).As();
+
+ _builder.Register(c => new MercurialLog(c.Resolve(), c.Resolve())).As().AsSelf();
+ _builder.Register(c => new TaskTimeDiscoverer(c.Resolve())).As().AsSelf();
+
+ _builder.RegisterType().AsSelf().As();
+ _builder.RegisterType().AsSelf().As();
+ _builder.RegisterAggregateService();
+
+ _builder.Register(c => new JiraApi(c.Resolve())).AsSelf().AsImplementedInterfaces();
+
+ _builder.Register(c => new Job(c.Resolve(), c.Resolve(), c.Resolve())).AsSelf();
+
+ return _builder.Build();
+ }
+ }
+}
diff --git a/JiraTimeBotForm/JiraIntegration/JiraApi.cs b/JiraTimeBotForm/JiraIntegration/JiraApi.cs
index 5066279..4a76445 100644
--- a/JiraTimeBotForm/JiraIntegration/JiraApi.cs
+++ b/JiraTimeBotForm/JiraIntegration/JiraApi.cs
@@ -9,9 +9,7 @@ namespace JiraTimeBotForm.JiraIntegration
{
public class JiraApi
{
- private readonly Settings _settings;
private readonly ILog _log;
- private Jira _jira;
private readonly List _dummyComments = new List
{
@@ -19,18 +17,17 @@ namespace JiraTimeBotForm.JiraIntegration
"кодинг", "написание кода и тестов"
};
- public JiraApi(Settings settings, ILog log = null)
+ public JiraApi(ILog log = null)
{
- _settings = settings;
_log = log;
- _jira = Jira.CreateRestClient(_settings.JiraUrl, _settings.JiraUserName, _settings.JiraPassword);
}
- public string GetTaskName(string branch)
+ public string GetTaskName(string branch, Settings settings)
{
+ var jira = Jira.CreateRestClient(settings.JiraUrl, settings.JiraUserName, settings.JiraPassword);
try
{
- var issue = _jira.Issues.Queryable.FirstOrDefault(f => f.Key == branch);
+ var issue = jira.Issues.Queryable.FirstOrDefault(f => f.Key == branch);
return issue?.Summary;
}
catch (Exception)
@@ -39,8 +36,10 @@ namespace JiraTimeBotForm.JiraIntegration
}
}
- public void SetTodayWorklog(List taskTimeItems, DateTime? date = null, bool dummy = false, bool addCommentsToWorklog = false)
+ public void SetTodayWorklog(List taskTimeItems, Settings settings, DateTime? date = null, bool dummy = false, bool addCommentsToWorklog = false)
{
+ var jira = Jira.CreateRestClient(settings.JiraUrl, settings.JiraUserName, settings.JiraPassword);
+
if (date == null)
{
date = DateTime.Now.Date;
@@ -52,7 +51,7 @@ namespace JiraTimeBotForm.JiraIntegration
Issue issue = null;
try
{
- issue = _jira.Issues.Queryable.FirstOrDefault(f => f.Key == taskTimeItem.Branch);
+ issue = jira.Issues.Queryable.FirstOrDefault(f => f.Key == taskTimeItem.Branch);
}
catch (Exception)
{
@@ -69,7 +68,7 @@ namespace JiraTimeBotForm.JiraIntegration
foreach (var workLog in workLogs)
{
var timeSpent = TimeSpan.FromSeconds(workLog.TimeSpentInSeconds);
- if (workLog.CreateDate.GetValueOrDefault().Date == date && workLog.Author == _settings.JiraUserName)
+ if (workLog.CreateDate.GetValueOrDefault().Date == date && workLog.Author == settings.JiraUserName)
{
var timeDiff = Math.Abs((timeSpent - taskTimeItem.Time).TotalMinutes);
if (timeDiff > 1)
diff --git a/JiraTimeBotForm/JiraTimeBotForm.csproj b/JiraTimeBotForm/JiraTimeBotForm.csproj
index fc9fa84..c5d1598 100644
--- a/JiraTimeBotForm/JiraTimeBotForm.csproj
+++ b/JiraTimeBotForm/JiraTimeBotForm.csproj
@@ -38,6 +38,15 @@
..\packages\Atlassian.SDK.10.4.0\lib\net452\Atlassian.Jira.dll
+
+ ..\packages\Autofac.4.9.1\lib\net45\Autofac.dll
+
+
+ ..\packages\Autofac.Extras.AggregateService.4.1.0\lib\net45\Autofac.Extras.AggregateService.dll
+
+
+ ..\packages\Castle.Core.4.0.0\lib\net45\Castle.Core.dll
+
..\packages\Mercurial.Net.1.1.1.607\lib\net35-Client\Mercurial.Net.dll
@@ -71,20 +80,25 @@
+
-
+
+
+
+
+
Form
-
+
frmMain.cs
-
+
@@ -93,7 +107,8 @@
-
+
+
frmMain.cs
diff --git a/JiraTimeBotForm/Job.cs b/JiraTimeBotForm/Job.cs
index fcc507a..f0ed5c0 100644
--- a/JiraTimeBotForm/Job.cs
+++ b/JiraTimeBotForm/Job.cs
@@ -13,11 +13,11 @@ namespace JiraTimeBotForm
{
class Job
{
- private readonly MercurialLog _mercurialLog;
- private readonly TaskTimeDiscoverer _taskTimeDiscoverer;
+ private readonly IMercurialLog _mercurialLog;
+ private readonly ITaskTimeDiscoverer _taskTimeDiscoverer;
private readonly ILog _log;
- public Job(MercurialLog mercurialLog, TaskTimeDiscoverer taskTimeDiscoverer, ILog log)
+ public Job(IMercurialLog mercurialLog, ITaskTimeDiscoverer taskTimeDiscoverer, ILog log)
{
_mercurialLog = mercurialLog;
_taskTimeDiscoverer = taskTimeDiscoverer;
diff --git a/JiraTimeBotForm/Mercurial/CommitSkipper.cs b/JiraTimeBotForm/Mercurial/CommitSkipper.cs
new file mode 100644
index 0000000..cee2ca4
--- /dev/null
+++ b/JiraTimeBotForm/Mercurial/CommitSkipper.cs
@@ -0,0 +1,24 @@
+using System;
+
+namespace JiraTimeBotForm.Mercurial
+{
+ public class CommitSkipper : ICommitSkipper
+ {
+ public bool IsNeedToSkip(string branch, string commitMessage)
+ {
+ if (!branch.Contains("-"))
+ {
+ return true;
+ }
+
+ //Пропускаем Close и Merge коммиты
+ if (commitMessage.StartsWith($"Close {branch} ", StringComparison.InvariantCultureIgnoreCase) ||
+ commitMessage.StartsWith($"Merge with ", StringComparison.InvariantCultureIgnoreCase))
+ {
+ return true;
+ }
+
+ return false;
+ }
+ }
+}
\ No newline at end of file
diff --git a/JiraTimeBotForm/Mercurial/ICommitSkipper.cs b/JiraTimeBotForm/Mercurial/ICommitSkipper.cs
new file mode 100644
index 0000000..198f6d3
--- /dev/null
+++ b/JiraTimeBotForm/Mercurial/ICommitSkipper.cs
@@ -0,0 +1,12 @@
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace JiraTimeBotForm.Mercurial
+{
+ public interface ICommitSkipper
+ {
+ bool IsNeedToSkip(string branch, string commitMessage);
+ }
+}
diff --git a/JiraTimeBotForm/Mercurial/IMercurialLog.cs b/JiraTimeBotForm/Mercurial/IMercurialLog.cs
new file mode 100644
index 0000000..130d395
--- /dev/null
+++ b/JiraTimeBotForm/Mercurial/IMercurialLog.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Threading;
+using JiraTimeBotForm.Configuration;
+
+namespace JiraTimeBotForm.Mercurial
+{
+ public interface IMercurialLog
+ {
+ List GetMercurialLog(Settings settings, DateTime? date = null, CancellationToken cancellationToken = default(CancellationToken));
+ }
+}
\ No newline at end of file
diff --git a/JiraTimeBotForm/Mercurial/MercurialLog.cs b/JiraTimeBotForm/Mercurial/MercurialLog.cs
index 576547d..48f0979 100644
--- a/JiraTimeBotForm/Mercurial/MercurialLog.cs
+++ b/JiraTimeBotForm/Mercurial/MercurialLog.cs
@@ -9,13 +9,15 @@ using Mercurial;
namespace JiraTimeBotForm.Mercurial
{
- public class MercurialLog
+ public class MercurialLog: IMercurialLog
{
private readonly ILog _log;
+ private readonly ICommitSkipper _commitSkipper;
- public MercurialLog(ILog log)
+ public MercurialLog(ILog log, ICommitSkipper commitSkipper)
{
_log = log;
+ _commitSkipper = commitSkipper;
}
public List GetMercurialLog(Settings settings, DateTime? date = null, CancellationToken cancellationToken = default(CancellationToken))
@@ -54,7 +56,7 @@ namespace JiraTimeBotForm.Mercurial
}
var commitMessage = FixEncoding(changeset.CommitMessage);
- if (IsNeedToSkip(changeset.Branch, commitMessage))
+ if (_commitSkipper.IsNeedToSkip(changeset.Branch, commitMessage))
{
continue;
}
@@ -113,23 +115,6 @@ namespace JiraTimeBotForm.Mercurial
return message;
}
- private bool IsNeedToSkip(string branch, string commitMessage)
- {
- if (!branch.Contains("-"))
- {
- return true;
- }
-
- //Пропускаем Close и Merge коммиты
- if (commitMessage.StartsWith($"Close {branch} ", StringComparison.InvariantCultureIgnoreCase) ||
- commitMessage.StartsWith($"Merge with ", StringComparison.InvariantCultureIgnoreCase))
- {
- return true;
- }
-
- return false;
- }
-
private string FixEncoding(string source)
{
//перекодируем сообщение - ибо оно криво забирается в 1252
diff --git a/JiraTimeBotForm/TasksProcessors/ITasksProcessors.cs b/JiraTimeBotForm/TasksProcessors/ITasksProcessors.cs
new file mode 100644
index 0000000..8ff5dcd
--- /dev/null
+++ b/JiraTimeBotForm/TasksProcessors/ITasksProcessors.cs
@@ -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; }
+ }
+}
diff --git a/JiraTimeBotForm/TasksProcessors/MeetingProcessor.cs b/JiraTimeBotForm/TasksProcessors/MeetingProcessor.cs
index b337f2d..ee5c992 100644
--- a/JiraTimeBotForm/TasksProcessors/MeetingProcessor.cs
+++ b/JiraTimeBotForm/TasksProcessors/MeetingProcessor.cs
@@ -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 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}");
}
}
diff --git a/JiraTimeBotForm/TasksProcessors/WorkLogTasksProcessor.cs b/JiraTimeBotForm/TasksProcessors/WorkLogTasksProcessor.cs
index 93cc81d..bf88a54 100644
--- a/JiraTimeBotForm/TasksProcessors/WorkLogTasksProcessor.cs
+++ b/JiraTimeBotForm/TasksProcessors/WorkLogTasksProcessor.cs
@@ -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 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);
}
}
}
diff --git a/JiraTimeBotForm/UI/TrayMenu.cs b/JiraTimeBotForm/UI/TrayMenu.cs
new file mode 100644
index 0000000..e5753f6
--- /dev/null
+++ b/JiraTimeBotForm/UI/TrayMenu.cs
@@ -0,0 +1,65 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace JiraTimeBotForm.UI
+{
+ public class TrayMenu: ITrayMenu
+ {
+ private NotifyIcon _trayIcon;
+
+ public NotifyIcon Create(frmMain form)
+ {
+ var trayMenu = new ContextMenu();
+ trayMenu.MenuItems.Add("Exit", OnExit);
+
+ _trayIcon = new NotifyIcon
+ {
+ Text = "JiraTimeBot",
+ Icon = form.Icon,
+ ContextMenu = trayMenu,
+ Visible = false,
+ Tag = form
+ };
+ _trayIcon.Click += btnTray_Click;
+ _trayIcon.DoubleClick += btnTray_Click;
+
+ return _trayIcon;
+ }
+
+ public void Show()
+ {
+ _trayIcon.Visible = true;
+ }
+
+ public void Hide()
+ {
+ _trayIcon.Visible = false;
+ }
+
+ private void OnExit(object sender, EventArgs e)
+ {
+ Application.Exit();
+ }
+
+ private void btnTray_Click(object sender, EventArgs e)
+ {
+ var icon = (NotifyIcon) sender;
+ var form = (frmMain) icon.Tag;
+ form.Visible = true;
+ form.Activate();
+ form.BringToFront();
+ Extensions.Extensions.Restore(form);
+ }
+ }
+
+ public interface ITrayMenu
+ {
+ NotifyIcon Create(frmMain form);
+ void Show();
+ void Hide();
+ }
+}
diff --git a/JiraTimeBotForm/frmMain.Designer.cs b/JiraTimeBotForm/UI/frmMain.Designer.cs
similarity index 100%
rename from JiraTimeBotForm/frmMain.Designer.cs
rename to JiraTimeBotForm/UI/frmMain.Designer.cs
diff --git a/JiraTimeBotForm/frmMain.cs b/JiraTimeBotForm/UI/frmMain.cs
similarity index 69%
rename from JiraTimeBotForm/frmMain.cs
rename to JiraTimeBotForm/UI/frmMain.cs
index c8f4526..0574fd0 100644
--- a/JiraTimeBotForm/frmMain.cs
+++ b/JiraTimeBotForm/UI/frmMain.cs
@@ -4,11 +4,13 @@ using System.IO;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
+using Autofac;
using JiraTimeBotForm.Configuration;
+using JiraTimeBotForm.DI;
using JiraTimeBotForm.Mercurial;
-using JiraTimeBotForm.Passwords;
using JiraTimeBotForm.TasksProcessors;
using JiraTimeBotForm.TaskTime;
+using JiraTimeBotForm.UI;
using Newtonsoft.Json;
// This is the code for your desktop app.
@@ -18,11 +20,12 @@ namespace JiraTimeBotForm
{
public partial class frmMain : Form
{
- private readonly string _settingsPath;
private readonly ILog _log;
- private readonly NotifyIcon _trayIcon;
- private Job _job;
+ private readonly Job _job;
private readonly IReadOnlyList _controls;
+ private readonly IContainer _container;
+ private readonly ITasksProcessors _tasksProcessors;
+ private readonly ITrayMenu _trayIcon;
private CancellationTokenSource _tokenSource;
private CancellationTokenSource GetTokenSource()
@@ -40,46 +43,21 @@ namespace JiraTimeBotForm
public frmMain()
{
InitializeComponent();
- _settingsPath = Path.Combine(Application.UserAppDataPath, "settings.json");
- _log = new Logger(txtLog);
+ _container = new Bootstrapper().Build(txtLog);
- var trayMenu = new ContextMenu();
- trayMenu.MenuItems.Add("Exit", OnExit);
+ _trayIcon = _container.Resolve();
+ _trayIcon.Create(this);
- _trayIcon = new NotifyIcon
- {
- Text = "JiraTimeBot",
- Icon = this.Icon,
- ContextMenu = trayMenu,
- Visible = false,
-
- };
- _trayIcon.Click += btnTray_Click;
- _trayIcon.DoubleClick += btnTray_Click;
-
- var mercurialLog = new MercurialLog(_log);
- var taskTimeDiscoverer = new TaskTimeDiscoverer(_log);
- _job = new Job(mercurialLog, taskTimeDiscoverer, _log);
+ _job = _container.Resolve();
+ _log = _container.Resolve();
+ _tasksProcessors = _container.Resolve();
_controls = new Control[] { txtJiraLogin, txtJiraPassword, txtMercurialEmail, actTime, txtRepoPath, txtDummyMode, btnSave, btnStart, btnMeeting, chkAddComments };
}
private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
{
- _trayIcon.Visible = false;
- }
-
- private void OnExit(object sender, EventArgs e)
- {
- Application.Exit();
- }
-
- private void btnTray_Click(object sender, EventArgs e)
- {
- this.Visible = true;
- this.Activate();
- this.BringToFront();
- Extensions.Extensions.Restore(this);
+ _trayIcon.Hide();
}
public Settings ReadSettingsAndLock()
@@ -116,33 +94,29 @@ namespace JiraTimeBotForm
var settings = ReadSettingsAndLock();
LockUnlock(true);
- var password = new EncryptionClass().Encrypt(settings.JiraUserName, settings.JiraPassword, settings.JiraUrl);
- settings.JiraPassword = password;
-
- var settingsString = JsonConvert.SerializeObject(settings);
- File.WriteAllText(_settingsPath, settingsString);
+ settings.Save();
MessageBox.Show("Settings saved.");
- LoadSettings();
+ settings = Settings.Load();
+ if (settings != null)
+ {
+ SetSettings(settings);
+ }
}
private void Form1_Load(object sender, EventArgs e)
{
- if (File.Exists(_settingsPath))
+ var settings = Settings.Load();
+ if (settings != null)
{
- LoadSettings();
+ SetSettings(settings);
}
}
- private void LoadSettings()
+ private void SetSettings(Settings settings)
{
- var settingsText = File.ReadAllText(_settingsPath);
- var settings = JsonConvert.DeserializeObject(settingsText);
-
- var password = new EncryptionClass().Decrypt(settings.JiraUserName, settings.JiraPassword, settings.JiraUrl);
-
txtJiraLogin.Text = settings.JiraUserName;
- txtJiraPassword.Text = password;
+ txtJiraPassword.Text = settings.JiraPassword;
txtMercurialEmail.Text = settings.MercurialAuthorEmail;
txtRepoPath.Text = settings.RepositoryPath;
actTime.Text = settings.ActivationTime.ToString("hh\\:mm\\:ss");
@@ -162,7 +136,7 @@ namespace JiraTimeBotForm
using (_tokenSource = GetTokenSource())
{
- await _job.DoTheJob(settings, new WorkLogTasksProcessor(_log), _tokenSource.Token);
+ await _job.DoTheJob(settings, _tasksProcessors.WorkLogTasksProcessor, _tokenSource.Token);
}
LockUnlock(true);
@@ -172,13 +146,13 @@ namespace JiraTimeBotForm
{
if (FormWindowState.Minimized == this.WindowState)
{
- _trayIcon.Visible = true;
+ _trayIcon.Show();
this.Hide();
}
else if (FormWindowState.Normal == this.WindowState)
{
- _trayIcon.Visible = false;
+ _trayIcon.Hide();
}
}
@@ -208,7 +182,7 @@ namespace JiraTimeBotForm
using (var tokenSource = GetTokenSource())
{
- await _job.DoTheJob(settings, new WorkLogTasksProcessor(_log), tokenSource.Token);
+ await _job.DoTheJob(settings, _tasksProcessors.WorkLogTasksProcessor, tokenSource.Token);
}
LockUnlock(true);
@@ -227,7 +201,7 @@ namespace JiraTimeBotForm
using (_tokenSource = GetTokenSource())
{
- await _job.DoTheJob(settings, new MeetingProcessor(_log), _tokenSource.Token);
+ await _job.DoTheJob(settings, _tasksProcessors.MeetingProcessor, _tokenSource.Token);
}
LockUnlock(true);
diff --git a/JiraTimeBotForm/frmMain.resx b/JiraTimeBotForm/UI/frmMain.resx
similarity index 100%
rename from JiraTimeBotForm/frmMain.resx
rename to JiraTimeBotForm/UI/frmMain.resx
diff --git a/JiraTimeBotForm/packages.config b/JiraTimeBotForm/packages.config
index 5f9a3fa..d5d27db 100644
--- a/JiraTimeBotForm/packages.config
+++ b/JiraTimeBotForm/packages.config
@@ -1,6 +1,9 @@
+
+
+