Skip to content

Commit a2a7c4c

Browse files
authored
Merge pull request #69 from rprouse/issue/66
Update MediatR
2 parents 4cca86a + 27dc3f4 commit a2a7c4c

File tree

70 files changed

+1938
-2001
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+1938
-2001
lines changed

src/todo.application/Commands/Add/AddTaskCommand.cs

Lines changed: 0 additions & 41 deletions
This file was deleted.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
using System.Linq;
2+
using System.Threading;
3+
using System.Threading.Tasks;
4+
using Alteridem.Todo.Domain.Entities;
5+
using Alteridem.Todo.Domain.Interfaces;
6+
using MediatR;
7+
8+
namespace Alteridem.Todo.Application.Commands;
9+
10+
public sealed class AddPriorityCommand : IRequest<TaskItem>
11+
{
12+
public int ItemNumber { get; set; }
13+
14+
public char Priority { get; set; }
15+
}
16+
17+
internal sealed class AddPriorityCommandHandler : IRequestHandler<AddPriorityCommand, TaskItem>
18+
{
19+
private readonly ITaskFile _taskFile;
20+
private readonly ITaskConfiguration _config;
21+
22+
public AddPriorityCommandHandler(ITaskFile taskFile, ITaskConfiguration config)
23+
{
24+
_taskFile = taskFile;
25+
_config = config;
26+
}
27+
28+
public Task<TaskItem> Handle(AddPriorityCommand request, CancellationToken cancellationToken)
29+
{
30+
var tasks = _taskFile.LoadTasks(_config.TodoFile);
31+
var task = tasks.FirstOrDefault(t => t.LineNumber == request.ItemNumber);
32+
if (task != null)
33+
{
34+
task.Priority = request.Priority;
35+
_taskFile.Clear(_config.TodoFile);
36+
foreach (var t in tasks.OrderBy(t => t.LineNumber))
37+
{
38+
_taskFile.AppendTo(_config.TodoFile, t.ToString());
39+
}
40+
}
41+
return Task.FromResult(task);
42+
}
43+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
using System;
2+
using System.Threading;
3+
using System.Threading.Tasks;
4+
using Alteridem.Todo.Domain.Entities;
5+
using Alteridem.Todo.Domain.Interfaces;
6+
using MediatR;
7+
8+
namespace Alteridem.Todo.Application.Commands;
9+
10+
public sealed class AddTaskCommand : IRequest<TaskItem>
11+
{
12+
public string Filename { get; set; }
13+
14+
public string Task { get; set; }
15+
16+
public bool AddCreationDate { get; set; }
17+
}
18+
19+
internal sealed class AddTaskCommandHandler : IRequestHandler<AddTaskCommand, TaskItem>
20+
{
21+
private readonly ITaskFile _taskFile;
22+
23+
public AddTaskCommandHandler(ITaskFile taskFile)
24+
{
25+
_taskFile = taskFile;
26+
}
27+
28+
public Task<TaskItem> Handle(AddTaskCommand request, CancellationToken cancellationToken)
29+
{
30+
var task = new TaskItem(request.Task);
31+
if (request.AddCreationDate) task.CreationDate = DateTime.Now.Date;
32+
var taskStr = task.ToString();
33+
34+
_taskFile.AppendTo(request.Filename, taskStr);
35+
36+
task.LineNumber = _taskFile.LoadTasks(request.Filename).Count;
37+
38+
return Task.FromResult(task);
39+
}
40+
}

src/todo.application/Commands/Append/AppendCommand.cs

Lines changed: 0 additions & 43 deletions
This file was deleted.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
using System.Linq;
2+
using System.Threading;
3+
using System.Threading.Tasks;
4+
using Alteridem.Todo.Domain.Entities;
5+
using Alteridem.Todo.Domain.Interfaces;
6+
using MediatR;
7+
8+
namespace Alteridem.Todo.Application.Commands;
9+
10+
public sealed class AppendCommand : IRequest<TaskItem>
11+
{
12+
public int ItemNumber { get; set; }
13+
public string Text { get; set; }
14+
}
15+
16+
internal sealed class AppendCommandHandler : IRequestHandler<AppendCommand, TaskItem>
17+
{
18+
private readonly ITaskFile _taskFile;
19+
private readonly ITaskConfiguration _config;
20+
21+
public AppendCommandHandler(ITaskFile taskFile, ITaskConfiguration config)
22+
{
23+
_taskFile = taskFile;
24+
_config = config;
25+
}
26+
27+
public Task<TaskItem> Handle(AppendCommand request, CancellationToken cancellationToken)
28+
{
29+
var tasks = _taskFile.LoadTasks(_config.TodoFile);
30+
var task = tasks.FirstOrDefault(t => t.LineNumber == request.ItemNumber);
31+
if (task != null)
32+
{
33+
task.Description = task.Description + $" {request.Text.Trim()}";
34+
_taskFile.Clear(_config.TodoFile);
35+
foreach (var t in tasks.OrderBy(t => t.LineNumber))
36+
{
37+
_taskFile.AppendTo(_config.TodoFile, t.ToString());
38+
}
39+
}
40+
return Task.FromResult(task);
41+
}
42+
}

src/todo.application/Commands/Archive/ArchiveTasksCommand.cs

Lines changed: 0 additions & 46 deletions
This file was deleted.
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
using System.Collections.Generic;
2+
using System.Threading;
3+
using System.Threading.Tasks;
4+
using Alteridem.Todo.Domain.Entities;
5+
using Alteridem.Todo.Domain.Interfaces;
6+
using MediatR;
7+
8+
namespace Alteridem.Todo.Application.Commands;
9+
10+
public sealed class ArchiveTasksCommand : IRequest<IList<TaskItem>>
11+
{
12+
}
13+
14+
internal sealed class ArchiveTasksCommandHandler : IRequestHandler<ArchiveTasksCommand, IList<TaskItem>>
15+
{
16+
private readonly ITaskFile _taskFile;
17+
private readonly ITaskConfiguration _config;
18+
19+
public ArchiveTasksCommandHandler(ITaskFile taskFile, ITaskConfiguration config)
20+
{
21+
_taskFile = taskFile;
22+
_config = config;
23+
}
24+
25+
public Task<IList<TaskItem>> Handle(ArchiveTasksCommand request, CancellationToken cancellationToken)
26+
{
27+
IList<TaskItem> completed = new List<TaskItem>();
28+
var tasks = _taskFile.LoadTasks(_config.TodoFile);
29+
_taskFile.Clear(_config.TodoFile);
30+
foreach (var task in tasks)
31+
{
32+
if (task.Completed)
33+
{
34+
_taskFile.AppendTo(_config.DoneFile, task.ToString());
35+
completed.Add(task);
36+
}
37+
else
38+
{
39+
_taskFile.AppendTo(_config.TodoFile, task.ToString());
40+
}
41+
}
42+
return Task.FromResult(completed);
43+
}
44+
}

src/todo.application/Commands/Delete/DeleteTaskCommand.cs

Lines changed: 0 additions & 45 deletions
This file was deleted.

0 commit comments

Comments
 (0)