using System; using System.Collections.Generic; using System.Threading.Tasks; using RdtClient.Data.Data; using RdtClient.Data.Models.Data; namespace RdtClient.Service.Services { public interface IDownloads { Task> Get(); Task> GetForTorrent(Guid torrentId); Task GetById(Guid downloadId); Task Add(Guid torrentId, String link); Task UpdateDownloadStarted(Guid downloadId, DateTimeOffset? dateTime); Task UpdateDownloadFinished(Guid downloadId, DateTimeOffset? dateTime); Task UpdateUnpackingQueued(Guid downloadId, DateTimeOffset? dateTime); Task UpdateUnpackingStarted(Guid downloadId, DateTimeOffset? dateTime); Task UpdateUnpackingFinished(Guid downloadId, DateTimeOffset? dateTime); Task UpdateCompleted(Guid downloadId, DateTimeOffset? dateTime); Task UpdateError(Guid downloadId, String error); Task DeleteForTorrent(Guid torrentId); } public class Downloads : IDownloads { private readonly IDownloadData _downloadData; public Downloads(IDownloadData downloadData) { _downloadData = downloadData; } public async Task> Get() { return await _downloadData.Get(); } public async Task> GetForTorrent(Guid torrentId) { return await _downloadData.GetForTorrent(torrentId); } public async Task GetById(Guid downloadId) { return await _downloadData.GetById(downloadId); } public async Task Add(Guid torrentId, String link) { return await _downloadData.Add(torrentId, link); } public async Task UpdateDownloadStarted(Guid downloadId, DateTimeOffset? dateTime) { await _downloadData.UpdateDownloadStarted(downloadId, dateTime); } public async Task UpdateDownloadFinished(Guid downloadId, DateTimeOffset? dateTime) { await _downloadData.UpdateDownloadFinished(downloadId, dateTime); } public async Task UpdateUnpackingQueued(Guid downloadId, DateTimeOffset? dateTime) { await _downloadData.UpdateUnpackingQueued(downloadId, dateTime); } public async Task UpdateUnpackingStarted(Guid downloadId, DateTimeOffset? dateTime) { await _downloadData.UpdateUnpackingStarted(downloadId, dateTime); } public async Task UpdateUnpackingFinished(Guid downloadId, DateTimeOffset? dateTime) { await _downloadData.UpdateUnpackingFinished(downloadId, dateTime); } public async Task UpdateCompleted(Guid downloadId, DateTimeOffset? dateTime) { await _downloadData.UpdateCompleted(downloadId, dateTime); } public async Task UpdateError(Guid downloadId, String error) { await _downloadData.UpdateError(downloadId, error); } public async Task DeleteForTorrent(Guid torrentId) { await _downloadData.DeleteForTorrent(torrentId); } } }