mirror of
https://github.com/tribufu/ServerManagers
synced 2026-05-06 15:17:34 +00:00
107 lines
4.4 KiB
C#
107 lines
4.4 KiB
C#
using ServerManagerTool.Common.Utils;
|
|
using System;
|
|
using System.Windows;
|
|
|
|
namespace ServerManagerTool.Common.Model
|
|
{
|
|
public class WorkshopFileItem : DependencyObject
|
|
{
|
|
public static readonly DependencyProperty AppIdProperty = DependencyProperty.Register(nameof(AppId), typeof(string), typeof(WorkshopFileItem), new PropertyMetadata(string.Empty));
|
|
public static readonly DependencyProperty CreatedDateProperty = DependencyProperty.Register(nameof(CreatedDate), typeof(DateTime), typeof(WorkshopFileItem), new PropertyMetadata(DateTime.MinValue));
|
|
public static readonly DependencyProperty FileSizeProperty = DependencyProperty.Register(nameof(FileSize), typeof(long), typeof(WorkshopFileItem), new PropertyMetadata(-1L));
|
|
public static readonly DependencyProperty SubscriptionsProperty = DependencyProperty.Register(nameof(Subscriptions), typeof(int), typeof(WorkshopFileItem), new PropertyMetadata(0));
|
|
public static readonly DependencyProperty TimeUpdatedProperty = DependencyProperty.Register(nameof(TimeUpdated), typeof(int), typeof(WorkshopFileItem), new PropertyMetadata(0));
|
|
public static readonly DependencyProperty TitleProperty = DependencyProperty.Register(nameof(Title), typeof(string), typeof(WorkshopFileItem), new PropertyMetadata(string.Empty));
|
|
public static readonly DependencyProperty UpdatedDateProperty = DependencyProperty.Register(nameof(UpdatedDate), typeof(DateTime), typeof(WorkshopFileItem), new PropertyMetadata(DateTime.MinValue));
|
|
public static readonly DependencyProperty WorkshopIdProperty = DependencyProperty.Register(nameof(WorkshopId), typeof(string), typeof(WorkshopFileItem), new PropertyMetadata(string.Empty));
|
|
|
|
public string AppId
|
|
{
|
|
get { return (string)GetValue(AppIdProperty); }
|
|
set { SetValue(AppIdProperty, value); }
|
|
}
|
|
|
|
public DateTime CreatedDate
|
|
{
|
|
get { return (DateTime)GetValue(CreatedDateProperty); }
|
|
set { SetValue(CreatedDateProperty, value); }
|
|
}
|
|
|
|
public long FileSize
|
|
{
|
|
get { return (long)GetValue(FileSizeProperty); }
|
|
set { SetValue(FileSizeProperty, value); }
|
|
}
|
|
|
|
public int Subscriptions
|
|
{
|
|
get { return (int)GetValue(SubscriptionsProperty); }
|
|
set { SetValue(SubscriptionsProperty, value); }
|
|
}
|
|
|
|
public int TimeUpdated
|
|
{
|
|
get { return (int)GetValue(TimeUpdatedProperty); }
|
|
set { SetValue(TimeUpdatedProperty, value); }
|
|
}
|
|
|
|
public string Title
|
|
{
|
|
get { return (string)GetValue(TitleProperty); }
|
|
set
|
|
{
|
|
SetValue(TitleProperty, value);
|
|
|
|
TitleFilterString = value?.ToLower();
|
|
}
|
|
}
|
|
|
|
public DateTime UpdatedDate
|
|
{
|
|
get { return (DateTime)GetValue(UpdatedDateProperty); }
|
|
set { SetValue(UpdatedDateProperty, value); }
|
|
}
|
|
|
|
public string WorkshopId
|
|
{
|
|
get { return (string)GetValue(WorkshopIdProperty); }
|
|
set { SetValue(WorkshopIdProperty, value); }
|
|
}
|
|
|
|
|
|
public string TitleFilterString
|
|
{
|
|
get;
|
|
private set;
|
|
}
|
|
|
|
public string WorkshopUrl => $"https://steamcommunity.com/sharedfiles/filedetails/?id={WorkshopId}";
|
|
|
|
public static WorkshopFileItem GetItem(WorkshopFileDetail item)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(item.publishedfileid) || string.IsNullOrWhiteSpace(item.title))
|
|
return null;
|
|
|
|
var result = new WorkshopFileItem();
|
|
result.AppId = item.creator_appid;
|
|
result.CreatedDate = DateTimeUtils.UnixTimeStampToDateTime(item.time_created);
|
|
result.FileSize = -1;
|
|
result.Subscriptions = item.subscriptions;
|
|
result.TimeUpdated = item.time_updated;
|
|
result.Title = item.title ?? string.Empty;
|
|
result.UpdatedDate = DateTimeUtils.UnixTimeStampToDateTime(item.time_updated);
|
|
result.WorkshopId = item.publishedfileid ?? string.Empty;
|
|
|
|
long fileSize;
|
|
if (long.TryParse(item.file_size, out fileSize))
|
|
result.FileSize = fileSize;
|
|
|
|
return result;
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
return $"{WorkshopId} - {Title}";
|
|
}
|
|
}
|
|
}
|