WIn_RustTools/Views/ConcernPage.xaml.cs

173 lines
4.9 KiB
C#
Raw Normal View History

2024-12-06 01:26:57 +00:00
using System.Collections.ObjectModel;
using System.Diagnostics;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
2024-12-06 01:26:57 +00:00
using Newtonsoft.Json;
using RustTools.DataList;
using RustTools.muqing;
using RustTools.ViewModels;
// To learn more about WinUI, the WinUI project structure,
// and more about our project templates, see: http://aka.ms/winui-project-info.
namespace RustTools.Views;
/// <summary>
/// <20><>̬<EFBFBD><CCAC><EFBFBD><EFBFBD>
/// </summary>
public sealed partial class ConcernPage : Page
{
2024-08-15 01:40:33 +00:00
public ConcernViewModel ViewModels
{
get; set;
}
public ObservableCollection<CommunityList.Data> communitylist = [];
public ObservableCollection<MovingInfo.DynamicRecord> MovingInfoList = [];
2024-12-06 01:26:57 +00:00
private bool IsLogin = false;
public ConcernPage()
{
ViewModels = App.GetService<ConcernViewModel>();
InitializeComponent();
2024-08-13 14:00:12 +00:00
//<2F><><EFBFBD><EFBFBD>δ<EFBFBD><CEB4>½
2024-12-06 01:26:57 +00:00
Init();
if (IsLogin)
2024-08-13 14:00:12 +00:00
{
}
}
2024-12-06 01:26:57 +00:00
private async void Init()
{
try
{
var ini = new IniHelper();
ini.Load(IniHelper.FILE.User);
var account = ini.GetValue(IniHelper.CODE.User, IniHelper.KEY.account);
var value = await ApiFox.community.getList(account, true, 0);
//Debug.WriteLine(value);
if (value == string.Empty) return;
var response = JsonConvert.DeserializeObject<CommunityList>(value);
var a = new CommunityList.Data
{
UserName = <><C8AB>",
HeadIcon = "/Assets/tool.png",
Account = account
2024-12-06 01:26:57 +00:00
};
communitylist.Add(a);
foreach (var item in response.data)
{
//item.UserName
item.HeadIcon = item.HeadIcon.Replace("..", wl.api);
communitylist.Add(item);
}
2024-12-06 01:29:28 +00:00
if (ListViewA.Items.Count > 0)
{
ListViewA.SelectedIndex = 0;
}
2024-12-06 01:26:57 +00:00
}
catch (Exception e)
{
Debug.WriteLine(e);
}
}
/// <summary>
/// ÿ<><C3BF><EFBFBD><EFBFBD>ע<EFBFBD>Ķ<EFBFBD>̬<EFBFBD><CCAC>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>
/// </summary>
private void dongtaixiaoxi(string account, bool ALL)
2024-12-06 01:26:57 +00:00
{
MovingInfoList.Clear();
if (account == null)
{
return;
};
if (ALL)
{
ApiFox.Dynamic.GetAllDynamic(account).ContinueWith((task) =>
{
var value = task.Result;
if (string.IsNullOrEmpty(value)) return;
// ʹ<><CAB9> Newtonsoft.Json <20><><EFBFBD>з<EFBFBD><D0B7><EFBFBD><EFBFBD>л<EFBFBD>
var response = JsonConvert.DeserializeObject<MovingInfo>(value);
if (response != null && response.Code == 0)
{
foreach (var item in response.Data)
{
// <20>滻ͷ<E6BBBB><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>·<EFBFBD><C2B7>
item.HeadIcon = item.HeadIcon.Replace("..", wl.api);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>¼<EFBFBD><C2BC><EFBFBD>ӵ<EFBFBD> ObservableCollection <20><>
MovingInfoList.Add(item);
}
}
else if (response != null)
{
Console.WriteLine($"Error: {response.Message}");
}
}, TaskScheduler.FromCurrentSynchronizationContext()); // ȷ<><C8B7>UI<55≯߳<DFB3><CCB8><EFBFBD>
}
else
{
ApiFox.Dynamic.Getlist(account).ContinueWith((task) =>
{
var value = task.Result;
if (value == string.Empty) return;
var response = JsonConvert.DeserializeObject<MovingInfo>(value);
简化和优化代码,添加新 JSON 文件 此次提交主要对代码进行了简化和优化,具体更改如下: 1. 在 `App.xaml` 中,将 `ConCernItem` 的 `DataTemplate` 从 `StackPanel` 改为 `Grid`,并添加了 `Grid.ColumnDefinitions` 和 `Grid.RowDefinitions`。 2. 在 `App.xaml.cs` 中,删除了创建和解压缩 `RustCode` 目录的代码,改为直接从 `Assets` 目录获取 `DataBaseManifest` 文件,并更新了异常处理逻辑。 3. 在 `RustTools.csproj` 中,添加了新的 `PackageReference`,更新了 `RestSharp` 的版本,并注释掉了 `squirrel.windows` 的引用。 4. 在 `PostRwmod.xaml.cs` 中,删除了 `SharpCompress.Common` 和 `TinyPinyin` 的引用。 5. 在 `CodeDataPage.xaml.cs` 中,更新了 `filePath` 的路径,从 `ApplicationData.Current.LocalFolder.Path` 改为 `AppContext.BaseDirectory`。 6. 在 `ConcernPage.xaml` 中,调整了 `StackPanelA` 的 `MinWidth` 属性,并删除了 `StackPanel` 的 `Background` 属性。 7. 在 `ConcernPage.xaml.cs` 中,更新了 `Getlist` 方法的逻辑,增加了对 `response` 的空值和错误码检查。 8. 在 `ModulePage.xaml.cs` 中,删除了 `SharpCompress.Common` 和 `WinRT.Interop` 的引用。 9. 在 `SettingsPage.xaml` 中,更新了 `PersonPicture` 的 `ToolTipService.ToolTip` 属性。 10. 在 `IniHelper.cs` 中,更新了 `Load` 方法的 `filePath` 路径,并添加了目录不存在时创建目录的逻辑。 11. 在 `wj.cs` 中,更新了 `CD` 的路径为 `AppContext.BaseDirectory`,并注释掉了废弃的路径。 12. 在 `config.ini` 中,添加了 `[Settings]` 节点和 `SystemBackdrop=Mica` 设置。 此外,添加了以下新 JSON 文件: 1. `DataBaseManifest.json`:包含数据集的基本信息和数据表的映射。 2. `game_version.json`:包含游戏版本数据。 3. `section.json`:包含铁锈助手节名数据。 4. `value_type.json`:定义了一个名为 "值类型表" 的数据结构,包含多个值类型及其详细信息。
2025-01-20 14:43:40 +00:00
if (response != null && response.Code == 0 && response.Data != null)
{
简化和优化代码,添加新 JSON 文件 此次提交主要对代码进行了简化和优化,具体更改如下: 1. 在 `App.xaml` 中,将 `ConCernItem` 的 `DataTemplate` 从 `StackPanel` 改为 `Grid`,并添加了 `Grid.ColumnDefinitions` 和 `Grid.RowDefinitions`。 2. 在 `App.xaml.cs` 中,删除了创建和解压缩 `RustCode` 目录的代码,改为直接从 `Assets` 目录获取 `DataBaseManifest` 文件,并更新了异常处理逻辑。 3. 在 `RustTools.csproj` 中,添加了新的 `PackageReference`,更新了 `RestSharp` 的版本,并注释掉了 `squirrel.windows` 的引用。 4. 在 `PostRwmod.xaml.cs` 中,删除了 `SharpCompress.Common` 和 `TinyPinyin` 的引用。 5. 在 `CodeDataPage.xaml.cs` 中,更新了 `filePath` 的路径,从 `ApplicationData.Current.LocalFolder.Path` 改为 `AppContext.BaseDirectory`。 6. 在 `ConcernPage.xaml` 中,调整了 `StackPanelA` 的 `MinWidth` 属性,并删除了 `StackPanel` 的 `Background` 属性。 7. 在 `ConcernPage.xaml.cs` 中,更新了 `Getlist` 方法的逻辑,增加了对 `response` 的空值和错误码检查。 8. 在 `ModulePage.xaml.cs` 中,删除了 `SharpCompress.Common` 和 `WinRT.Interop` 的引用。 9. 在 `SettingsPage.xaml` 中,更新了 `PersonPicture` 的 `ToolTipService.ToolTip` 属性。 10. 在 `IniHelper.cs` 中,更新了 `Load` 方法的 `filePath` 路径,并添加了目录不存在时创建目录的逻辑。 11. 在 `wj.cs` 中,更新了 `CD` 的路径为 `AppContext.BaseDirectory`,并注释掉了废弃的路径。 12. 在 `config.ini` 中,添加了 `[Settings]` 节点和 `SystemBackdrop=Mica` 设置。 此外,添加了以下新 JSON 文件: 1. `DataBaseManifest.json`:包含数据集的基本信息和数据表的映射。 2. `game_version.json`:包含游戏版本数据。 3. `section.json`:包含铁锈助手节名数据。 4. `value_type.json`:定义了一个名为 "值类型表" 的数据结构,包含多个值类型及其详细信息。
2025-01-20 14:43:40 +00:00
foreach (var item in response.Data)
{
item.HeadIcon = item.HeadIcon.Replace("..", wl.api);
MovingInfoList.Add(item);
}
}
},TaskScheduler.FromCurrentSynchronizationContext());
}
2024-12-06 01:26:57 +00:00
}
private void Page_SizeChanged(object sender, SizeChangedEventArgs e)
{
var height = ActualHeight; // ȷ<><C8B7>ʹ<EFBFBD><CAB9>ҳ<EFBFBD><D2B3><EFBFBD><EFBFBD>ʵ<EFBFBD>ʸ߶<CAB8>
// <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>ֵ
if (!double.IsNaN(height) && !double.IsInfinity(height) && height > 16)
{
ListViewA.Height = height - 36;
ListViewB.Height = height - 16;
}
else
{
ListViewA.Height = 500; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
ListViewB.Height = 500; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
}
}
private void ItemsView_ItemInvoked(ItemsView sender, ItemsViewItemInvokedEventArgs args)
{
gj.sc("You invoked ");
}
private void ListViewA_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// <20><>ȡ<EFBFBD><C8A1>ǰѡ<C7B0>е<EFBFBD><D0B5><EFBFBD>Ŀ
var selectedItem = ListViewA.SelectedItem;
var data = selectedItem as CommunityList.Data;
gj.sc(data?.Account);
dongtaixiaoxi(data?.Account, data.UserName.Equals(<><C8AB>"));
}
}