Commit ac22d7f0 authored by Steve Smith's avatar Steve Smith

Added additional handlers

parent 2206608a
using CleanArchitecture.Core.Entities;
using CleanArchitecture.Core.Interfaces;
using CleanArchitecture.Web.ApiModels;
using CleanArchitecture.Web.Commands;
using MediatR;
namespace CleanArchitecture.Web.Handlers
{
public class CreateItemHandler : IRequestHandler<CreateItemCommand, ToDoItemDTO>
{
private readonly IRepository<ToDoItem> _todoRepository;
public CreateItemHandler(IRepository<ToDoItem> todoRepository)
{
_todoRepository = todoRepository;
}
public ToDoItemDTO Handle(CreateItemCommand message)
{
var itemToCreate = message.ItemToCreate;
var todoItem = new ToDoItem()
{
Title = itemToCreate.Title,
Description = itemToCreate.Description
};
_todoRepository.Add(todoItem);
return ToDoItemDTO.FromToDoItem(todoItem);
}
}
}
using CleanArchitecture.Core.Entities;
using CleanArchitecture.Core.Interfaces;
using CleanArchitecture.Web.ApiModels;
using CleanArchitecture.Web.Commands;
using MediatR;
using System.Collections.Generic;
using System.Linq;
namespace CleanArchitecture.Web.Handlers
{
public class GetItemHandler : IRequestHandler<GetItemCommand, ToDoItemDTO>
{
private readonly IRepository<ToDoItem> _todoRepository;
public GetItemHandler(IRepository<ToDoItem> todoRepository)
{
_todoRepository = todoRepository;
}
public ToDoItemDTO Handle(GetItemCommand message)
{
return ToDoItemDTO.FromToDoItem(_todoRepository.GetById(message.Id));
}
}
}
using CleanArchitecture.Core.Entities;
using CleanArchitecture.Core.Interfaces;
using CleanArchitecture.Web.Commands;
using MediatR;
namespace CleanArchitecture.Web.Handlers
{
public class MarkCompleteHandler : IRequestHandler<MarkItemCompleteCommand>
{
private readonly IRepository<ToDoItem> _todoRepository;
public MarkCompleteHandler(IRepository<ToDoItem> todoRepository)
{
_todoRepository = todoRepository;
}
public void Handle(MarkItemCompleteCommand message)
{
var item = _todoRepository.GetById(message.Id);
item.MarkComplete();
_todoRepository.Update(item);
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment