mirror of
https://github.com/amwx/FluentAvalonia.git
synced 2026-10-27 03:13:28 +08:00
111 lines
2.8 KiB
C#
111 lines
2.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using Avalonia;
|
|
using Avalonia.Platform;
|
|
|
|
namespace FluentAvaloniaSamples.ViewModels;
|
|
|
|
public class WhatsNewPageViewModel : ViewModelBase
|
|
{
|
|
public WhatsNewPageViewModel()
|
|
{
|
|
Versions = new List<FAVersionInfo>();
|
|
|
|
//using (var stream = AvaloniaLocator.Current.GetService<IAssetLoader>().Open(new Uri("avares://FluentAvaloniaSamples/Assets/ChangeLog.txt")))
|
|
//using (var sr = new StreamReader(stream))
|
|
//{
|
|
// FAVersionInfo currentVersion = null;
|
|
// bool hasVersion = false;
|
|
// while (sr.Peek() != -1)
|
|
// {
|
|
|
|
// var line = sr.ReadLine();
|
|
// if (line.StartsWith('#')) // Comment
|
|
// continue;
|
|
|
|
// if (string.IsNullOrEmpty(line)) // Empty line
|
|
// continue;
|
|
|
|
// if (line.StartsWith('['))
|
|
// {
|
|
// if (!hasVersion)
|
|
// {
|
|
// currentVersion = new FAVersionInfo() { Version = line.Substring(1, line.Length - 2) };
|
|
// hasVersion = true;
|
|
// }
|
|
// else
|
|
// {
|
|
// // new version found
|
|
|
|
// Versions.Insert(0, currentVersion);
|
|
// currentVersion = new FAVersionInfo() { Version = line.Substring(1, line.Length - 2) };
|
|
// }
|
|
|
|
// continue;
|
|
// }
|
|
|
|
// currentVersion.ChangeItems.Add(ReadLine(line));
|
|
// }
|
|
|
|
// Versions.Insert(0, currentVersion);
|
|
//}
|
|
|
|
|
|
CurrentVersion = Versions[0];
|
|
}
|
|
|
|
public List<FAVersionInfo> Versions { get; }
|
|
|
|
public FAVersionInfo CurrentVersion
|
|
{
|
|
get => _version;
|
|
set => RaiseAndSetIfChanged(ref _version, value);
|
|
}
|
|
|
|
private FAChangeItemBase ReadLine(string line)
|
|
{
|
|
if (line.StartsWith('*'))
|
|
{
|
|
return new FAChangeItemHeader { Header = line.Substring(1) };
|
|
}
|
|
else if (line.StartsWith("--"))
|
|
{
|
|
return new FAChangeSubItem { Text = line.Substring(2) };
|
|
}
|
|
else
|
|
{
|
|
return new FAChangeItemDescription { Text = line.Substring(1) };
|
|
}
|
|
}
|
|
|
|
private FAVersionInfo _version;
|
|
}
|
|
|
|
public class FAVersionInfo
|
|
{
|
|
public string Version { get; set; }
|
|
|
|
public List<FAChangeItemBase> ChangeItems { get; } = new List<FAChangeItemBase>();
|
|
}
|
|
|
|
public class FAChangeItemBase
|
|
{
|
|
|
|
}
|
|
|
|
public class FAChangeItemHeader : FAChangeItemBase
|
|
{
|
|
public string Header { get; set; }
|
|
}
|
|
|
|
public class FAChangeItemDescription : FAChangeItemBase
|
|
{
|
|
public string Text { get; set; }
|
|
}
|
|
|
|
public class FAChangeSubItem : FAChangeItemBase
|
|
{
|
|
public string Text { get; set; }
|
|
}
|