2015-01-19 18:37:48 +11:00
|
|
|
using System.Collections.Generic;
|
2015-01-22 19:19:21 +11:00
|
|
|
using System.Linq;
|
2015-01-19 18:37:48 +11:00
|
|
|
using System.Linq.Expressions;
|
2015-07-23 20:04:40 +02:00
|
|
|
using Umbraco.Core.Events;
|
2015-01-19 18:37:48 +11:00
|
|
|
using Umbraco.Core.Logging;
|
|
|
|
|
using Umbraco.Core.Models;
|
|
|
|
|
using Umbraco.Core.Persistence;
|
|
|
|
|
using Umbraco.Core.Persistence.Querying;
|
2016-04-28 08:48:59 +02:00
|
|
|
using Umbraco.Core.Persistence.Repositories;
|
2015-01-19 18:37:48 +11:00
|
|
|
using Umbraco.Core.Persistence.UnitOfWork;
|
|
|
|
|
|
|
|
|
|
namespace Umbraco.Core.Services
|
|
|
|
|
{
|
|
|
|
|
public class TaskService : RepositoryService, ITaskService
|
|
|
|
|
{
|
2016-05-02 12:17:30 +02:00
|
|
|
public TaskService(IDatabaseUnitOfWorkProvider provider, ILogger logger, IEventMessagesFactory eventMessagesFactory)
|
|
|
|
|
: base(provider, logger, eventMessagesFactory)
|
2015-01-19 18:37:48 +11:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2015-01-22 19:19:21 +11:00
|
|
|
public TaskType GetTaskTypeByAlias(string taskTypeAlias)
|
|
|
|
|
{
|
2016-05-02 12:24:13 +02:00
|
|
|
using (var uow = UowProvider.CreateUnitOfWork())
|
2015-01-22 19:19:21 +11:00
|
|
|
{
|
2016-04-28 08:48:59 +02:00
|
|
|
var repo = uow.CreateRepository<ITaskTypeRepository>();
|
2016-12-01 08:29:11 +01:00
|
|
|
var type = repo.GetByQuery(repo.QueryT.Where(x => x.Alias == taskTypeAlias)).FirstOrDefault();
|
2016-05-18 10:55:19 +02:00
|
|
|
uow.Complete();
|
|
|
|
|
return type;
|
2015-01-22 19:19:21 +11:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public TaskType GetTaskTypeById(int id)
|
|
|
|
|
{
|
2016-05-02 12:24:13 +02:00
|
|
|
using (var uow = UowProvider.CreateUnitOfWork())
|
2015-01-22 19:19:21 +11:00
|
|
|
{
|
2016-04-28 08:48:59 +02:00
|
|
|
var repo = uow.CreateRepository<ITaskTypeRepository>();
|
2016-05-18 10:55:19 +02:00
|
|
|
var type = repo.Get(id);
|
|
|
|
|
uow.Complete();
|
|
|
|
|
return type;
|
2015-01-22 19:19:21 +11:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Save(TaskType taskType)
|
|
|
|
|
{
|
2016-05-02 12:24:13 +02:00
|
|
|
using (var uow = UowProvider.CreateUnitOfWork())
|
2015-01-22 19:19:21 +11:00
|
|
|
{
|
2016-04-28 08:48:59 +02:00
|
|
|
var repo = uow.CreateRepository<ITaskTypeRepository>();
|
2015-01-22 19:19:21 +11:00
|
|
|
repo.AddOrUpdate(taskType);
|
2016-05-02 12:12:21 +02:00
|
|
|
uow.Complete();
|
2015-01-22 19:19:21 +11:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Delete(TaskType taskTypeEntity)
|
|
|
|
|
{
|
2016-05-02 12:24:13 +02:00
|
|
|
using (var uow = UowProvider.CreateUnitOfWork())
|
2015-01-22 19:19:21 +11:00
|
|
|
{
|
2016-04-28 08:48:59 +02:00
|
|
|
var repo = uow.CreateRepository<ITaskTypeRepository>();
|
2015-01-22 19:19:21 +11:00
|
|
|
repo.Delete(taskTypeEntity);
|
2016-05-02 12:12:21 +02:00
|
|
|
uow.Complete();
|
2015-01-22 19:19:21 +11:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public IEnumerable<TaskType> GetAllTaskTypes()
|
|
|
|
|
{
|
2016-05-02 12:24:13 +02:00
|
|
|
using (var uow = UowProvider.CreateUnitOfWork())
|
2015-01-22 19:19:21 +11:00
|
|
|
{
|
2016-04-28 08:48:59 +02:00
|
|
|
var repo = uow.CreateRepository<ITaskTypeRepository>();
|
2016-05-18 10:55:19 +02:00
|
|
|
var types = repo.GetAll();
|
|
|
|
|
uow.Complete();
|
|
|
|
|
return types;
|
2015-01-22 19:19:21 +11:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-01-19 18:37:48 +11:00
|
|
|
|
|
|
|
|
public IEnumerable<Task> GetTasks(int? itemId = null, int? assignedUser = null, int? ownerUser = null, string taskTypeAlias = null, bool includeClosed = false)
|
|
|
|
|
{
|
2016-05-02 12:24:13 +02:00
|
|
|
using (var uow = UowProvider.CreateUnitOfWork())
|
2015-01-19 18:37:48 +11:00
|
|
|
{
|
2016-04-28 08:48:59 +02:00
|
|
|
var repo = uow.CreateRepository<ITaskRepository>();
|
2016-05-18 10:55:19 +02:00
|
|
|
var tasks = repo.GetTasks(itemId, assignedUser, ownerUser, taskTypeAlias);
|
|
|
|
|
uow.Complete();
|
|
|
|
|
return tasks;
|
2015-01-19 18:37:48 +11:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-01-19 19:03:28 +11:00
|
|
|
/// <summary>
|
|
|
|
|
/// Saves a task
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="task"></param>
|
|
|
|
|
public void Save(Task task)
|
|
|
|
|
{
|
2016-05-02 12:24:13 +02:00
|
|
|
using (var uow = UowProvider.CreateUnitOfWork())
|
2015-01-19 19:03:28 +11:00
|
|
|
{
|
2016-04-28 08:48:59 +02:00
|
|
|
var repo = uow.CreateRepository<ITaskRepository>();
|
2015-01-19 19:03:28 +11:00
|
|
|
repo.AddOrUpdate(task);
|
2016-05-02 12:12:21 +02:00
|
|
|
uow.Complete();
|
2015-01-19 19:03:28 +11:00
|
|
|
}
|
|
|
|
|
}
|
2015-01-22 19:19:21 +11:00
|
|
|
|
|
|
|
|
public void Delete(Task task)
|
|
|
|
|
{
|
2016-05-02 12:24:13 +02:00
|
|
|
using (var uow = UowProvider.CreateUnitOfWork())
|
2015-01-22 19:19:21 +11:00
|
|
|
{
|
2016-04-28 08:48:59 +02:00
|
|
|
var repo = uow.CreateRepository<ITaskRepository>();
|
2015-01-22 19:19:21 +11:00
|
|
|
repo.Delete(task);
|
2016-05-02 12:12:21 +02:00
|
|
|
uow.Complete();
|
2015-01-22 19:19:21 +11:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Task GetTaskById(int id)
|
|
|
|
|
{
|
2016-05-02 12:24:13 +02:00
|
|
|
using (var uow = UowProvider.CreateUnitOfWork())
|
2015-01-22 19:19:21 +11:00
|
|
|
{
|
2016-04-28 08:48:59 +02:00
|
|
|
var repo = uow.CreateRepository<ITaskRepository>();
|
2016-05-18 10:55:19 +02:00
|
|
|
var task = repo.Get(id);
|
|
|
|
|
uow.Complete();
|
|
|
|
|
return task;
|
2015-01-22 19:19:21 +11:00
|
|
|
}
|
|
|
|
|
}
|
2015-01-19 18:37:48 +11:00
|
|
|
}
|
|
|
|
|
}
|