using System; using ToolQit; using ToolQit.Extensions; namespace SharpRss.Models { public class SyndicationModel { public CategoryModel? Category { get; set; } // DB props public string EncodedUrl { get; set; } = string.Empty; public string? Title { get; set; } = string.Empty; public string? CategoryId { get; set; } = string.Empty; public string? SyndicationType { get; set; } = string.Empty; public string? Version { get; set; } = string.Empty; public string? Description { get; set; } = string.Empty; public string? Language { get; set; } = string.Empty; public string? Copyright { get; set; } = string.Empty; public DateTimeOffset LastUpdated { get; set; } = DateTimeOffset.Now; public DateTimeOffset? PublicationDate { get; set; } public DateTimeOffset? SynUpdatedDate { get; set; } public string[]? Categories { get; set; } public int ItemCount { get; set; } private string _imageUrl = string.Empty; public string ImageUrl { get { if (_imageUrl.IsNullEmptyWhiteSpace()) _imageUrl = string.Format(Caretaker.Settings["Paths"].GetString("FaviconResolveUrl"), new Uri(SyndicationManager.DecodeUrlFromBase64(EncodedUrl)).Host); return _imageUrl; } set { if (!value.IsNullEmptyWhiteSpace()) _imageUrl = value; } } public override bool Equals(object obj) { if (obj is SyndicationModel objModel) return EncodedUrl.Equals(objModel.EncodedUrl); return false; } } }