Еще рефакторинга

This commit is contained in:
Danil Kislov
2019-03-15 18:15:34 +03:00
parent 25b39a45f8
commit b67ff9b079
26 changed files with 105 additions and 72 deletions
+7 -4
View File
@@ -2,11 +2,13 @@
using Autofac;
using Autofac.Extras.AggregateService;
using JiraTimeBotForm.JiraIntegration;
using JiraTimeBotForm.JiraIntegration.Comments;
using JiraTimeBotForm.Mercurial;
using JiraTimeBotForm.TaskProcessors;
using JiraTimeBotForm.Mercurial.Modifiers;
using JiraTimeBotForm.TasksProcessors;
using JiraTimeBotForm.TaskTime;
using JiraTimeBotForm.UI;
using JiraTimeBotForm.UI.Tray;
namespace JiraTimeBotForm.DI
{
@@ -25,12 +27,13 @@ namespace JiraTimeBotForm.DI
_builder.Register(f => new TrayMenu()).As<ITrayMenu>().AsSelf();
_builder.Register(c => new CommitSkipper()).As<ICommitSkipper>();
_builder.Register(c => new MercurialLog(c.Resolve<ILog>(), c.Resolve<ICommitSkipper>())).As<IMercurialLog>().AsSelf();
_builder.Register(c => new TaskTimeDiscoverer(c.Resolve<ILog>())).As<ITaskTimeDiscoverer>().AsSelf();
_builder.RegisterType<TechnicalInfoSkipper>().As<ITechnicalInfoSkipper>().AsSelf();
_builder.RegisterType<MercurialLog>().As<IMercurialLog>().AsSelf();
_builder.RegisterType<TaskTimeDiscoverer>().As<ITaskTimeDiscoverer>().AsSelf();
_builder.RegisterType<WorkLogTasksProcessor>().AsSelf().As<ITasksProcessor>();
_builder.RegisterType<MeetingProcessor>().AsSelf().As<ITasksProcessor>();
_builder.RegisterAggregateService<ITasksProcessors>();
_builder.RegisterAggregateService<IAllTasksProcessors>();
_builder.RegisterType<JiraDescriptionSource>().AsSelf().As<IJiraDescriptionSource>();
_builder.RegisterType<JiraApi>().AsSelf().AsImplementedInterfaces();
@@ -1,6 +1,6 @@
using JiraTimeBotForm.TaskTime;
using JiraTimeBotForm.TaskTime.Objects;
namespace JiraTimeBotForm.JiraIntegration
namespace JiraTimeBotForm.JiraIntegration.Comments
{
public interface IJiraDescriptionSource
{
@@ -1,9 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
using JiraTimeBotForm.TaskTime;
using JiraTimeBotForm.TaskTime.Objects;
namespace JiraTimeBotForm.JiraIntegration
namespace JiraTimeBotForm.JiraIntegration.Comments
{
public class JiraDescriptionSource : IJiraDescriptionSource
{
@@ -3,7 +3,9 @@ using System.Collections.Generic;
using System.Linq;
using Atlassian.Jira;
using JiraTimeBotForm.Configuration;
using JiraTimeBotForm.JiraIntegration.Comments;
using JiraTimeBotForm.TaskTime;
using JiraTimeBotForm.TaskTime.Objects;
namespace JiraTimeBotForm.JiraIntegration
{
+12 -10
View File
@@ -81,15 +81,17 @@
</ItemGroup>
<ItemGroup>
<Compile Include="DI\ContainerBuilder.cs" />
<Compile Include="JiraIntegration\IJiraDescriptionSource.cs" />
<Compile Include="JiraIntegration\JiraDescriptionSource.cs" />
<Compile Include="JiraIntegration\Comments\IJiraDescriptionSource.cs" />
<Compile Include="JiraIntegration\Comments\JiraDescriptionSource.cs" />
<Compile Include="Job.cs" />
<Compile Include="Logger.cs" />
<Compile Include="Configuration\Settings.cs" />
<Compile Include="Mercurial\CommitSkipper.cs" />
<Compile Include="Mercurial\ICommitSkipper.cs" />
<Compile Include="Mercurial\Modifiers\ITechnicalInfoSkipper.cs" />
<Compile Include="Mercurial\Modifiers\CommitSkipper.cs" />
<Compile Include="Mercurial\Modifiers\ICommitSkipper.cs" />
<Compile Include="Mercurial\IMercurialLog.cs" />
<Compile Include="TasksProcessors\ITasksProcessors.cs" />
<Compile Include="Mercurial\Modifiers\TechnicalInfoSkipper.cs" />
<Compile Include="TasksProcessors\IAllTasksProcessors.cs" />
<Compile Include="UI\frmMain.cs">
<SubType>Form</SubType>
</Compile>
@@ -97,7 +99,7 @@
<DependentUpon>frmMain.cs</DependentUpon>
</Compile>
<Compile Include="JiraIntegration\JiraApi.cs" />
<Compile Include="Mercurial\MercurialCommitItem.cs" />
<Compile Include="Mercurial\Objects\MercurialCommitItem.cs" />
<Compile Include="Mercurial\MercurialLog.cs" />
<Compile Include="Configuration\PasswordEncryptionClass.cs" />
<Compile Include="Program.cs" />
@@ -107,10 +109,10 @@
<Compile Include="TasksProcessors\WorkLogTasksProcessor.cs" />
<Compile Include="TaskTime\ITaskTimeDiscoverer.cs" />
<Compile Include="TaskTime\TaskTimeDiscoverer.cs" />
<Compile Include="TaskTime\TaskTimeItem.cs" />
<Compile Include="UI\ITrayMenu.cs" />
<Compile Include="UI\RestoreFromTray.cs" />
<Compile Include="UI\TrayMenu.cs" />
<Compile Include="TaskTime\Objects\TaskTimeItem.cs" />
<Compile Include="UI\Tray\ITrayMenu.cs" />
<Compile Include="UI\Tray\RestoreFromTray.cs" />
<Compile Include="UI\Tray\TrayMenu.cs" />
<EmbeddedResource Include="UI\frmMain.resx">
<DependentUpon>frmMain.cs</DependentUpon>
</EmbeddedResource>
+2 -1
View File
@@ -5,9 +5,10 @@ using System.Threading;
using System.Threading.Tasks;
using JiraTimeBotForm.Configuration;
using JiraTimeBotForm.Mercurial;
using JiraTimeBotForm.TaskProcessors;
using JiraTimeBotForm.Mercurial.Objects;
using JiraTimeBotForm.TasksProcessors;
using JiraTimeBotForm.TaskTime;
using JiraTimeBotForm.TaskTime.Objects;
namespace JiraTimeBotForm
{
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Threading;
using JiraTimeBotForm.Configuration;
using JiraTimeBotForm.Mercurial.Objects;
namespace JiraTimeBotForm.Mercurial
{
+6 -36
View File
@@ -5,6 +5,8 @@ using System.Linq;
using System.Text;
using System.Threading;
using JiraTimeBotForm.Configuration;
using JiraTimeBotForm.Mercurial.Modifiers;
using JiraTimeBotForm.Mercurial.Objects;
using Mercurial;
namespace JiraTimeBotForm.Mercurial
@@ -13,11 +15,13 @@ namespace JiraTimeBotForm.Mercurial
{
private readonly ILog _log;
private readonly ICommitSkipper _commitSkipper;
private readonly ITechnicalInfoSkipper _technicalInfoSkipper;
public MercurialLog(ILog log, ICommitSkipper commitSkipper)
public MercurialLog(ILog log, ICommitSkipper commitSkipper, ITechnicalInfoSkipper technicalInfoSkipper)
{
_log = log;
_commitSkipper = commitSkipper;
_technicalInfoSkipper = technicalInfoSkipper;
}
public List<MercurialCommitItem> GetMercurialLog(Settings settings, DateTime? date = null, CancellationToken cancellationToken = default(CancellationToken))
@@ -60,7 +64,7 @@ namespace JiraTimeBotForm.Mercurial
{
continue;
}
commitMessage = StripTechnicalInfo(commitMessage);
commitMessage = _technicalInfoSkipper.StripTechnicalInfo(commitMessage);
workTasks.Add(new MercurialCommitItem
{
@@ -81,40 +85,6 @@ namespace JiraTimeBotForm.Mercurial
}
private string StripTechnicalInfo(string commitMessage)
{
if (!commitMessage.Contains("Signed-by:"))
{
return commitMessage;
}
var arr = commitMessage.Split('\n');
var sb = new StringBuilder();
foreach (var itm in arr)
{
if (string.IsNullOrEmpty(itm))
{
continue;
}
if (itm.StartsWith("Signed-by"))
{
continue;
}
if (itm.StartsWith("Jira:"))
{
continue;
}
sb.AppendLine(itm);
}
var message = sb.ToString();
message = message.TrimEnd('\n');
message = message.TrimEnd('\r');
return message;
}
private string FixEncoding(string source)
{
//перекодируем сообщение - ибо оно криво забирается в 1252
@@ -1,6 +1,6 @@
using System;
namespace JiraTimeBotForm.Mercurial
namespace JiraTimeBotForm.Mercurial.Modifiers
{
public class CommitSkipper : ICommitSkipper
{
@@ -1,4 +1,4 @@
namespace JiraTimeBotForm.Mercurial
namespace JiraTimeBotForm.Mercurial.Modifiers
{
public interface ICommitSkipper
{
@@ -0,0 +1,7 @@
namespace JiraTimeBotForm.Mercurial.Modifiers
{
public interface ITechnicalInfoSkipper
{
string StripTechnicalInfo(string commitMessage);
}
}
@@ -0,0 +1,42 @@
using System.Text;
namespace JiraTimeBotForm.Mercurial.Modifiers
{
public class TechnicalInfoSkipper : ITechnicalInfoSkipper
{
public string StripTechnicalInfo(string commitMessage)
{
if (!commitMessage.Contains("Signed-by:"))
{
return commitMessage;
}
var arr = commitMessage.Split('\n');
var sb = new StringBuilder();
foreach (var itm in arr)
{
if (string.IsNullOrEmpty(itm))
{
continue;
}
if (itm.StartsWith("Signed-by"))
{
continue;
}
if (itm.StartsWith("Jira:"))
{
continue;
}
sb.AppendLine(itm);
}
var message = sb.ToString();
message = message.TrimEnd('\n');
message = message.TrimEnd('\r');
return message;
}
}
}
@@ -1,6 +1,6 @@
using System;
namespace JiraTimeBotForm.Mercurial
namespace JiraTimeBotForm.Mercurial.Objects
{
public class MercurialCommitItem
{
+1
View File
@@ -1,6 +1,7 @@
using System;
using System.Diagnostics;
using System.Windows.Forms;
using JiraTimeBotForm.UI;
namespace JiraTimeBotForm
{
@@ -2,6 +2,8 @@
using System.Threading;
using JiraTimeBotForm.Configuration;
using JiraTimeBotForm.Mercurial;
using JiraTimeBotForm.Mercurial.Objects;
using JiraTimeBotForm.TaskTime.Objects;
namespace JiraTimeBotForm.TaskTime
{
@@ -1,6 +1,6 @@
using System;
namespace JiraTimeBotForm.TaskTime
namespace JiraTimeBotForm.TaskTime.Objects
{
public class TaskTimeItem
{
@@ -5,6 +5,8 @@ using System.Text;
using System.Threading;
using JiraTimeBotForm.Configuration;
using JiraTimeBotForm.Mercurial;
using JiraTimeBotForm.Mercurial.Objects;
using JiraTimeBotForm.TaskTime.Objects;
namespace JiraTimeBotForm.TaskTime
{
@@ -1,6 +1,6 @@
namespace JiraTimeBotForm.TasksProcessors
{
public interface ITasksProcessors
public interface IAllTasksProcessors
{
WorkLogTasksProcessor WorkLogTasksProcessor { get; }
@@ -1,9 +1,9 @@
using System;
using System.Collections.Generic;
using JiraTimeBotForm.Configuration;
using JiraTimeBotForm.TaskTime;
using JiraTimeBotForm.TaskTime.Objects;
namespace JiraTimeBotForm.TaskProcessors
namespace JiraTimeBotForm.TasksProcessors
{
interface ITasksProcessor
{
@@ -3,8 +3,8 @@ using System.Collections.Generic;
using System.Linq;
using JiraTimeBotForm.Configuration;
using JiraTimeBotForm.JiraIntegration;
using JiraTimeBotForm.TaskProcessors;
using JiraTimeBotForm.TaskTime;
using JiraTimeBotForm.TaskTime.Objects;
namespace JiraTimeBotForm.TasksProcessors
{
@@ -2,8 +2,8 @@
using System.Collections.Generic;
using JiraTimeBotForm.Configuration;
using JiraTimeBotForm.JiraIntegration;
using JiraTimeBotForm.TaskProcessors;
using JiraTimeBotForm.TaskTime;
using JiraTimeBotForm.TaskTime.Objects;
namespace JiraTimeBotForm.TasksProcessors
{
@@ -1,6 +1,6 @@
using System.Windows.Forms;
namespace JiraTimeBotForm.UI
namespace JiraTimeBotForm.UI.Tray
{
public interface ITrayMenu
{
@@ -2,7 +2,7 @@
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace JiraTimeBotForm.UI
namespace JiraTimeBotForm.UI.Tray
{
public static class RestoreFromTray {
[DllImport( "user32.dll" )]
@@ -1,7 +1,7 @@
using System;
using System.Windows.Forms;
namespace JiraTimeBotForm.UI
namespace JiraTimeBotForm.UI.Tray
{
public class TrayMenu: ITrayMenu
{
+1 -1
View File
@@ -1,4 +1,4 @@
namespace JiraTimeBotForm
namespace JiraTimeBotForm.UI
{
partial class frmMain
{
+4 -4
View File
@@ -8,12 +8,12 @@ using Autofac;
using JiraTimeBotForm.Configuration;
using JiraTimeBotForm.DI;
using JiraTimeBotForm.TasksProcessors;
using JiraTimeBotForm.UI;
using JiraTimeBotForm.UI.Tray;
// This is the code for your desktop app.
// Press Ctrl+F5 (or go to Debug > Start Without Debugging) to run your app.
namespace JiraTimeBotForm
namespace JiraTimeBotForm.UI
{
public partial class frmMain : Form
{
@@ -21,7 +21,7 @@ namespace JiraTimeBotForm
private readonly Job _job;
private readonly IReadOnlyList<Control> _controls;
private readonly IContainer _container;
private readonly ITasksProcessors _tasksProcessors;
private readonly IAllTasksProcessors _tasksProcessors;
private readonly ITrayMenu _trayIcon;
private CancellationTokenSource _tokenSource;
@@ -47,7 +47,7 @@ namespace JiraTimeBotForm
_job = _container.Resolve<Job>();
_log = _container.Resolve<ILog>();
_tasksProcessors = _container.Resolve<ITasksProcessors>();
_tasksProcessors = _container.Resolve<IAllTasksProcessors>();
_controls = new Control[] { txtJiraLogin, txtJiraPassword, txtMercurialEmail, actTime, txtRepoPath, txtDummyMode, btnSave, btnStart, btnMeeting, chkAddComments };
}