using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using PalGain.Core;
|
|
namespace PalGain.Core.Tasks
|
{
|
/// <summary>
|
/// Task service
|
/// </summary>
|
public partial class ScheduleTaskService : IScheduleTaskService
|
{
|
#region Fields
|
|
private readonly IRespository<ScheduleTask> _taskRepository;
|
|
#endregion
|
|
#region Ctor
|
|
public ScheduleTaskService(IRespository<ScheduleTask> taskRepository)
|
{
|
this._taskRepository = taskRepository;
|
}
|
|
#endregion
|
|
#region Methods
|
|
/// <summary>
|
/// Deletes a task
|
/// </summary>
|
/// <param name="task">Task</param>
|
public virtual void DeleteTask(ScheduleTask task)
|
{
|
if (task == null)
|
throw new ArgumentNullException("task");
|
|
_taskRepository.Delete(task);
|
}
|
|
/// <summary>
|
/// Gets a task
|
/// </summary>
|
/// <param name="taskId">Task identifier</param>
|
/// <returns>Task</returns>
|
public virtual ScheduleTask GetTaskById(int taskId)
|
{
|
if (taskId == 0)
|
return null;
|
|
return _taskRepository.GetById(taskId);
|
}
|
|
/// <summary>
|
/// Gets a task by its type
|
/// </summary>
|
/// <param name="type">Task type</param>
|
/// <returns>Task</returns>
|
public virtual ScheduleTask GetTaskByType(string type)
|
{
|
if (String.IsNullOrWhiteSpace(type))
|
return null;
|
|
var query = _taskRepository.Table;
|
query = query.Where(st => st.Type == type);
|
query = query.OrderByDescending(t => t.Id);
|
|
var task = query.FirstOrDefault();
|
return task;
|
}
|
|
/// <summary>
|
/// Gets all tasks
|
/// </summary>
|
/// <param name="showHidden">A value indicating whether to show hidden records</param>
|
/// <returns>Tasks</returns>
|
public virtual IList<ScheduleTask> GetAllTasks(bool showHidden = false)
|
{
|
var query = _taskRepository.Table;
|
if (!showHidden)
|
{
|
query = query.Where(t => t.Enabled);
|
}
|
query = query.OrderByDescending(t => t.Seconds);
|
|
var tasks = query.ToList();
|
return tasks;
|
}
|
|
/// <summary>
|
/// Inserts a task
|
/// </summary>
|
/// <param name="task">Task</param>
|
public virtual void InsertTask(ScheduleTask task)
|
{
|
if (task == null)
|
throw new ArgumentNullException("task");
|
|
_taskRepository.Insert(task);
|
}
|
|
/// <summary>
|
/// Updates the task
|
/// </summary>
|
/// <param name="task">Task</param>
|
public virtual void UpdateTask(ScheduleTask task)
|
{
|
if (task == null)
|
throw new ArgumentNullException("task");
|
|
_taskRepository.Update(task);
|
}
|
|
#endregion
|
}
|
}
|