LANCommander/LANCommander.Launcher.Models/DownloadQueueRedistributable.cs

59 lines
2.4 KiB
C#
Raw Permalink Normal View History

using LANCommander.SDK.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LANCommander.Launcher.Models
{
public class DownloadQueueRedistributable : IInstallQueueItem
{
public Guid Id { get; set; }
public Guid[] AddonIds { get; set; }
public Dictionary<Guid, string?> AddonVersions { get; set; }
public string Title { get; set; }
public string Version { get; set; }
public string InstallDirectory { get; set; }
2024-06-08 23:38:55 -05:00
public Guid CoverId { get; set; }
public Guid IconId { get; set; }
public DateTime QueuedOn { get; set; }
public DateTime? CompletedOn { get; set; }
public bool IsUpdate { get; set; }
public bool State
{
get
{
switch (Status)
{
case InstallStatus.Downloading:
case InstallStatus.InstallingRedistributables:
case InstallStatus.InstallingMods:
case InstallStatus.InstallingExpansions:
case InstallStatus.RunningScripts:
case InstallStatus.DownloadingSaves:
return true;
default:
return false;
}
}
}
public InstallStatus Status { get; set; }
public SDK.Models.Redistributable Redistributable { get; set; }
public float Progress { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
2024-06-09 01:49:47 -05:00
public double TransferSpeed { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public long BytesDownloaded { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public long TotalBytes { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public CancellationTokenSource CancellationToken { get; set; } = new();
public DownloadQueueRedistributable(SDK.Models.Redistributable redistributable)
{
Redistributable = redistributable;
Id = redistributable.Id;
Title = redistributable.Name;
Version = redistributable.Archives.OrderByDescending(a => a.CreatedOn).FirstOrDefault()?.Version;
}
}
}