更新图数据库相关数据

This commit is contained in:
2025-09-12 18:34:33 +08:00
parent e773052a85
commit 0cb6dd50e0
2054 changed files with 24813 additions and 239 deletions

Binary file not shown.

View File

@@ -6,10 +6,6 @@
"AbsoluteMoniker": "D:0:0:{A7A74BAE-D982-4C11-9C1B-1A66DBB482D3}|Ramitta.csproj|d:\\workspace\\github\\ramitta-lib\\ramitta\\wintreelist.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{A7A74BAE-D982-4C11-9C1B-1A66DBB482D3}|Ramitta.csproj|solutionrelative:wintreelist.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
},
{
"AbsoluteMoniker": "D:0:0:{A7A74BAE-D982-4C11-9C1B-1A66DBB482D3}|Ramitta.csproj|d:\\workspace\\github\\ramitta-lib\\ramitta\\wintreelist.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{A7A74BAE-D982-4C11-9C1B-1A66DBB482D3}|Ramitta.csproj|solutionrelative:wintreelist.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{A7A74BAE-D982-4C11-9C1B-1A66DBB482D3}|Ramitta.csproj|d:\\workspace\\github\\ramitta-lib\\ramitta\\wintitlebar.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{A7A74BAE-D982-4C11-9C1B-1A66DBB482D3}|Ramitta.csproj|solutionrelative:wintitlebar.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
@@ -25,33 +21,32 @@
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 143,
"DockedWidth": 157,
"SelectedChildIndex": 2,
"Children": [
{
"$type": "Document",
"DocumentIndex": 2,
"DocumentIndex": 1,
"Title": "winTitleBar.xaml.cs",
"DocumentMoniker": "D:\\Workspace\\GitHub\\Ramitta-lib\\Ramitta\\winTitleBar.xaml.cs",
"RelativeDocumentMoniker": "winTitleBar.xaml.cs",
"ToolTip": "D:\\Workspace\\GitHub\\Ramitta-lib\\Ramitta\\winTitleBar.xaml.cs",
"RelativeToolTip": "winTitleBar.xaml.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAuwAgAAAAZAAAAAAAAAA==",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAZAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-08-29T06:48:50.367Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"DocumentIndex": 2,
"Title": "winTitleBar.xaml",
"DocumentMoniker": "D:\\Workspace\\GitHub\\Ramitta-lib\\Ramitta\\winTitleBar.xaml",
"RelativeDocumentMoniker": "winTitleBar.xaml",
"ToolTip": "D:\\Workspace\\GitHub\\Ramitta-lib\\Ramitta\\winTitleBar.xaml",
"RelativeToolTip": "winTitleBar.xaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2025-08-29T06:48:31.359Z",
"EditorCaption": ""
"WhenOpened": "2025-08-29T06:48:31.359Z"
},
{
"$type": "Document",
@@ -64,19 +59,16 @@
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2025-08-29T06:48:24.569Z",
"EditorCaption": ""
},
}
]
},
{
"DockedWidth": 248,
"SelectedChildIndex": -1,
"Children": [
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "winTreeList.xaml.cs",
"DocumentMoniker": "D:\\Workspace\\GitHub\\Ramitta-lib\\Ramitta\\winTreeList.xaml.cs",
"RelativeDocumentMoniker": "winTreeList.xaml.cs",
"ToolTip": "D:\\Workspace\\GitHub\\Ramitta-lib\\Ramitta\\winTreeList.xaml.cs",
"RelativeToolTip": "winTreeList.xaml.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAC8AAAAUAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-08-29T06:48:09.604Z",
"EditorCaption": ""
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
}
]
}

View File

@@ -2,10 +2,6 @@
"Version": 1,
"WorkspaceRootPath": "D:\\Workspace\\GitHub\\Ramitta-lib\\Ramitta\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{A7A74BAE-D982-4C11-9C1B-1A66DBB482D3}|Ramitta.csproj|d:\\workspace\\github\\ramitta-lib\\ramitta\\wintreelist.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{A7A74BAE-D982-4C11-9C1B-1A66DBB482D3}|Ramitta.csproj|solutionrelative:wintreelist.xaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{A7A74BAE-D982-4C11-9C1B-1A66DBB482D3}|Ramitta.csproj|d:\\workspace\\github\\ramitta-lib\\ramitta\\wintreelist.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}",
"RelativeMoniker": "D:0:0:{A7A74BAE-D982-4C11-9C1B-1A66DBB482D3}|Ramitta.csproj|solutionrelative:wintreelist.xaml||{F11ACC28-31D1-4C80-A34B-F4E09D3D753C}"
@@ -25,37 +21,35 @@
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 143,
"SelectedChildIndex": 3,
"DockedWidth": 157,
"SelectedChildIndex": 2,
"Children": [
{
"$type": "Document",
"DocumentIndex": 2,
"DocumentIndex": 1,
"Title": "winTitleBar.xaml.cs",
"DocumentMoniker": "D:\\Workspace\\GitHub\\Ramitta-lib\\Ramitta\\winTitleBar.xaml.cs",
"RelativeDocumentMoniker": "winTitleBar.xaml.cs",
"ToolTip": "D:\\Workspace\\GitHub\\Ramitta-lib\\Ramitta\\winTitleBar.xaml.cs",
"RelativeToolTip": "winTitleBar.xaml.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAuwAgAAAAZAAAAAAAAAA==",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAgAAAAZAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-08-29T06:48:50.367Z",
"EditorCaption": ""
"WhenOpened": "2025-08-29T06:48:50.367Z"
},
{
"$type": "Document",
"DocumentIndex": 3,
"DocumentIndex": 2,
"Title": "winTitleBar.xaml",
"DocumentMoniker": "D:\\Workspace\\GitHub\\Ramitta-lib\\Ramitta\\winTitleBar.xaml",
"RelativeDocumentMoniker": "winTitleBar.xaml",
"ToolTip": "D:\\Workspace\\GitHub\\Ramitta-lib\\Ramitta\\winTitleBar.xaml",
"RelativeToolTip": "winTitleBar.xaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2025-08-29T06:48:31.359Z",
"EditorCaption": ""
"WhenOpened": "2025-08-29T06:48:31.359Z"
},
{
"$type": "Document",
"DocumentIndex": 1,
"DocumentIndex": 0,
"Title": "winTreeList.xaml",
"DocumentMoniker": "D:\\Workspace\\GitHub\\Ramitta-lib\\Ramitta\\winTreeList.xaml",
"RelativeDocumentMoniker": "winTreeList.xaml",
@@ -64,19 +58,16 @@
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2025-08-29T06:48:24.569Z",
"EditorCaption": ""
},
}
]
},
{
"DockedWidth": 248,
"SelectedChildIndex": -1,
"Children": [
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "winTreeList.xaml.cs",
"DocumentMoniker": "D:\\Workspace\\GitHub\\Ramitta-lib\\Ramitta\\winTreeList.xaml.cs",
"RelativeDocumentMoniker": "winTreeList.xaml.cs",
"ToolTip": "D:\\Workspace\\GitHub\\Ramitta-lib\\Ramitta\\winTreeList.xaml.cs",
"RelativeToolTip": "winTreeList.xaml.cs",
"ViewState": "AgIAANEAAAAAAAAAAADwv/QAAABbAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-08-29T06:48:09.604Z",
"EditorCaption": ""
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
}
]
}

169
Ramitta/Excel.cs Normal file
View File

@@ -0,0 +1,169 @@
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ramitta
{
public static class Excel
{
public static List<Dictionary<string, string>> ReadExcelAsDictRow(
string filePath,
object sheetName = null,
List<string> headerInit = null)
{
var result = new List<Dictionary<string, string>>();
// 打开 Excel 文件
using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
var workbook = new XSSFWorkbook(fs);
ISheet sheet = null;
// 判断 sheetName 类型
if (sheetName is string sheetNameStr)
{
sheet = workbook.GetSheet(sheetNameStr); // 根据工作表名称获取
}
else if (sheetName is int sheetNameInt)
{
sheet = workbook.GetSheetAt(sheetNameInt); // 根据索引获取
}
else
{
sheet = workbook.GetSheetAt(0); // 默认获取第一个工作表
}
// 如果没有提供表头,则默认使用第一行作为表头
List<string> header = null;
if (headerInit != null && headerInit.Count > 0)
{
header = headerInit; // 使用提供的表头
}
else
{
var headerRow = sheet.GetRow(0);
if (headerRow == null)
return result; // 如果第一行为空,直接返回空列表
header = new List<string>();
for (int i = 0; i < headerRow.Cells.Count; i++)
{
var cell = headerRow.GetCell(i);
header.Add(cell?.ToString().Trim() ?? $"Column_{i}"); // 处理空单元格
}
}
// 如果提供了表头数据,则从第二行开始读取数据
int startRowIndex = headerInit != null && headerInit.Count > 0 ? 0 : 1;
// 遍历每一行数据
for (int rowIndex = startRowIndex; rowIndex <= sheet.LastRowNum; rowIndex++) // 从第二行开始
{
var row = sheet.GetRow(rowIndex);
if (row == null || IsRowEmpty(row)) continue; // 跳过空行
var rowDict = new Dictionary<string, string>();
// 遍历每一列
for (int colIndex = 0; colIndex < header.Count; colIndex++)
{
var cell = row.GetCell(colIndex);
rowDict[header[colIndex]] = cell?.ToString().Trim() ?? ""; // 直接转换为字符串
}
result.Add(rowDict);
}
}
return result;
}
public static Dictionary<string, List<string>> ReadExcelAsDictCol(
string filePath,
object sheetName = null,
List<string> headerInit = null)
{
var result = new Dictionary<string, List<string>>();
// 打开 Excel 文件
using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
var workbook = new XSSFWorkbook(fs);
ISheet sheet = null;
// 如果 sheetName 不为 null按名字找到对应的工作表
if (sheetName != null && sheetName is string sheetNameStr)
{
sheet = workbook.GetSheet(sheetNameStr); // 根据工作表名称获取
}
else
{
sheet = workbook.GetSheetAt(0); // 默认第一个工作表
}
if (sheet == null)
return result; // 如果没有找到工作表,直接返回空字典
// 如果 headerInit 不为 null使用它来初始化表头否则从 Excel 中的第一行获取
var header = headerInit ?? new List<string>();
if (header.Count == 0)
{
// 获取第一行作为键headers
var headerRow = sheet.GetRow(0);
if (headerRow == null)
return result; // 如果第一行为空,直接返回空字典
for (int i = 0; i < headerRow.Cells.Count; i++)
{
var cell = headerRow.GetCell(i);
string headerText = cell?.ToString().Trim() ?? $"Column_{i}"; // 处理空单元格
header.Add(headerText);
}
}
// 初始化每一列对应的 List<string>
foreach (var headerText in header)
{
result[headerText] = new List<string>();
}
// 从第一行开始遍历数据,而不是从第二行开始
for (int rowIndex = headerInit == null ? 1 : 0; rowIndex <= sheet.LastRowNum; rowIndex++) // 修改这里开始从第0行
{
var row = sheet.GetRow(rowIndex);
if (row == null || IsRowEmpty(row)) continue; // 跳过空行
// 遍历每一列数据并添加到对应的 List<string> 中
for (int colIndex = 0; colIndex < header.Count; colIndex++)
{
var cell = row.GetCell(colIndex);
string cellValue = cell?.ToString().Trim() ?? ""; // 直接转换为字符串
if (!string.IsNullOrEmpty(cellValue))
{
result[header[colIndex]].Add(cellValue);
}
}
}
}
return result;
}
private static bool IsRowEmpty(IRow row)
{
foreach (var cell in row.Cells)
{
if (cell != null && !string.IsNullOrEmpty(cell.ToString().Trim()))
return false;
}
return true;
}
}
}

339
Ramitta/Neo4jService.cs Normal file
View File

@@ -0,0 +1,339 @@
using Neo4j.Driver;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using System.Threading.Tasks;
namespace Ramitta
{
public class Neo4jService
{
private IDriver _driver;
public Neo4jService(string uri, string user, string password)
{
_driver = GraphDatabase.Driver(uri, AuthTokens.Basic(user, password));
}
public void Close()
{
_driver?.Dispose();
}
// 创建任意节点,支持更多属性
public async Task CreateNodeAsync(string nodeType, Dictionary<string, object> properties)
{
using (var session = _driver.AsyncSession())
{
// 动态生成属性字符串
var propertyString = string.Join(", ", properties.Keys);
var values = new Dictionary<string, object>();
foreach (var prop in properties)
{
values.Add(prop.Key, prop.Value);
}
var query = $"CREATE (n:{nodeType} {{{string.Join(", ", properties.Keys.Select(k => $"{k}: ${k}"))}}})";
await session.RunAsync(query, values);
}
}
public async Task<List<Dictionary<string, string>>> GetRelatedNodesAsync(
string nodeLabel,
Dictionary<string, string> nodeProperties)
{
// 构建属性条件字符串
var propertyConditions = new List<string>();
foreach (var prop in nodeProperties)
{
propertyConditions.Add($"{prop.Key}: '{prop.Value.Replace("'", "\\'")}'");
}
var propertiesString = string.Join(", ", propertyConditions);
var query = $@"
MATCH (h:{nodeLabel} {{{propertiesString}}})-[r]-(related)
RETURN DISTINCT h";
var resultList = new List<Dictionary<string, string>>();
using (var session = _driver.AsyncSession())
{
var result = await session.RunAsync(query);
await result.ForEachAsync(record =>
{
var hNode = record["h"].As<INode>();
resultList.Add(ConvertNodeToDictionary(hNode));
});
}
return resultList;
}
private Dictionary<string, string> ConvertNodeToDictionary(INode node)
{
var dict = new Dictionary<string, string>();
// 添加所有属性
foreach (var property in node.Properties)
{
dict[property.Key] = property.Value?.ToString() ?? string.Empty;
}
return dict;
}
// 创建或合并节点
public async Task MergeNodeAsync(string nodeType, Dictionary<string, object> properties)
{
using (var session = _driver.AsyncSession())
{
// 动态生成属性字符串
var propertyString = string.Join(", ", properties.Keys);
var values = new Dictionary<string, object>();
foreach (var prop in properties)
{
values.Add(prop.Key, prop.Value);
}
var query = $"MERGE (n:{nodeType} {{{string.Join(", ", properties.Keys.Select(k => $"{k}: ${k}"))}}})";
await session.RunAsync(query, values);
}
}
public async Task<List<Dictionary<string, object>>> GetNodesAsync(string nodeType = null)
{
var result = new List<Dictionary<string, object>>();
var query = nodeType == null
? "MATCH (n) RETURN n"
: $"MATCH (n:{nodeType}) RETURN n";
using (var session = _driver.AsyncSession())
{
var cursor = await session.RunAsync(query);
while (await cursor.FetchAsync())
{
var node = cursor.Current["n"].As<INode>();
var nodeProperties = new Dictionary<string, object>(node.Properties);
// 添加节点ID和标签信息
nodeProperties["_id"] = node.Id;
nodeProperties["_labels"] = node.Labels.ToArray();
result.Add(nodeProperties);
}
}
return result;
}
// 创建任意关系,支持动态定义关系类型
public enum ArrowDirection
{
Left, // 反向关系
Right, // 正向关系(默认)
Both // 双向关系
}
public async Task CreateRelationshipAsync(
string relationshipType,
string nodeType1, string nodeTap1, string nodeName1,
string nodeType2, string nodeTap2, string nodeName2,
ArrowDirection arrow = ArrowDirection.Right
)
{
using (var session = _driver.AsyncSession())
{
var query = $"MATCH (a:{nodeType1} {{{nodeTap1}: $name1}}), (b:{nodeType2} {{{nodeTap2}: $name2}}) ";
if (arrow == ArrowDirection.Right)
query+=$"MERGE (a)-[:{relationshipType}]->(b)";
else if (arrow == ArrowDirection.Left)
query += $"MERGE (b)-[:{relationshipType}]->(a)";
else if (arrow == ArrowDirection.Both) {
query += $"MERGE (a)-[:{relationshipType}]->(b)";
query += $"MERGE (b)-[:{relationshipType}]->(a)";
}
await session.RunAsync(query, new { name1 = nodeName1, name2 = nodeName2 });
}
}
public async Task<List<Dictionary<string, object>>> GetRelatedNodesAsync(
string nodeName,
string nodeType, // 默认值为 "Person"
string relationshipType = null,
Dictionary<string, object> additionalNodeFilters = null, // 可选的节点属性过滤
Dictionary<string, object> additionalRelationshipFilters = null // 可选的关系属性过滤
)
{
var result = new List<Dictionary<string, object>>();
// 构建基本的查询部分
var query = new StringBuilder($"MATCH (a:{nodeType} {{name: $name}})");
// 如果有额外的节点过滤条件,加入到查询中
if (additionalNodeFilters != null && additionalNodeFilters.Count > 0)
{
foreach (var filter in additionalNodeFilters)
{
query.Append($" AND a.{filter.Key} = ${filter.Key}");
}
}
// 根据关系类型添加关系部分
var relationshipFilter = relationshipType != null ? $":{relationshipType}" : "";
query.Append($"-[r{relationshipFilter}]->(b)");
// 如果有关系的额外过滤条件,加入到查询中
if (additionalRelationshipFilters != null && additionalRelationshipFilters.Count > 0)
{
foreach (var filter in additionalRelationshipFilters)
{
query.Append($" AND r.{filter.Key} = ${filter.Key}");
}
}
// 添加返回部分
query.Append(" RETURN b");
// 合并所有的参数
var parameters = new Dictionary<string, object> { { "name", nodeName } };
// 如果有节点过滤条件,合并到参数中
if (additionalNodeFilters != null)
{
foreach (var filter in additionalNodeFilters)
{
parameters[filter.Key] = filter.Value;
}
}
// 如果有关系过滤条件,合并到参数中
if (additionalRelationshipFilters != null)
{
foreach (var filter in additionalRelationshipFilters)
{
parameters[filter.Key] = filter.Value;
}
}
using (var session = _driver.AsyncSession())
{
var cursor = await session.RunAsync(query.ToString(), parameters);
// 遍历查询结果
while (await cursor.FetchAsync())
{
var relatedNode = cursor.Current["b"].As<INode>(); // 获取目标节点对象
// 将节点的所有属性加入结果
var nodeProperties = new Dictionary<string, object>();
foreach (var property in relatedNode.Properties)
{
nodeProperties[property.Key] = property.Value;
}
result.Add(nodeProperties);
}
}
return result;
}
public async Task<List<Dictionary<string, object>>> GetRelationshipsAsync(
string nodeName,
string nodeType = null,
string relationshipType = null,
bool includeIncoming = false,
bool includeOutgoing = true)
{
var result = new List<Dictionary<string, object>>();
var relationshipQuery = "";
// 根据关系方向构建查询
if (relationshipType != null)
{
if (includeOutgoing && includeIncoming)
{
relationshipQuery = $"-[:{relationshipType}]-";
}
else if (includeOutgoing)
{
relationshipQuery = $"-[:{relationshipType}]->";
}
else if (includeIncoming)
{
relationshipQuery = $"<-[:{relationshipType}]-";
}
}
else
{
if (includeOutgoing && includeIncoming)
{
relationshipQuery = "-[]-";
}
else if (includeOutgoing)
{
relationshipQuery = "-[]->";
}
else if (includeIncoming)
{
relationshipQuery = "<-[]-";
}
}
// 构造MATCH查询
var query = $"MATCH (a:{nodeType ?? "Person"} {{name: $name}}){relationshipQuery}(b) RETURN b";
using (var session = _driver.AsyncSession())
{
var cursor = await session.RunAsync(query, new { name = nodeName });
// 遍历查询结果
while (await cursor.FetchAsync())
{
var relatedNode = cursor.Current["b"].As<INode>(); // 获取目标节点对象
// 将节点的所有属性加入结果
var nodeProperties = new Dictionary<string, object>();
foreach (var property in relatedNode.Properties)
{
nodeProperties[property.Key] = property.Value;
}
result.Add(nodeProperties);
}
}
return result;
}
// 删除特定节点和它的关系
public async Task DeleteNodeAsync(string nodeType, string nodeName)
{
using (var session = _driver.AsyncSession())
{
await session.RunAsync($"MATCH (n:{nodeType} {{name: $name}}) DETACH DELETE n", new { name = nodeName });
}
}
// 删除所有节点和关系
public async Task DeleteAllNodesAndRelationshipsAsync()
{
using (var session = _driver.AsyncSession())
{
await session.RunAsync("MATCH (n) DETACH DELETE n");
}
}
}
}

176
Ramitta/PostgreSqlDriver.cs Normal file
View File

@@ -0,0 +1,176 @@
using Npgsql;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ramitta
{
public partial class PostgreSqlDriver
{
private readonly string _connectionString;
public PostgreSqlDriver(string connectionString)
{
_connectionString = connectionString;
}
// 执行查询操作,返回查询结果
public async Task<List<Dictionary<string, object>>> ExecuteQueryAsync(string query, Dictionary<string, object> parameters = null)
{
var result = new List<Dictionary<string, object>>();
using (var conn = new NpgsqlConnection(_connectionString))
{
try
{
await conn.OpenAsync();
Debug.WriteLine("Database connection established.");
using (var cmd = new NpgsqlCommand(query, conn))
{
if (parameters != null)
{
foreach (var param in parameters)
{
cmd.Parameters.AddWithValue(param.Key, param.Value ?? DBNull.Value);
}
}
using (var reader = await cmd.ExecuteReaderAsync())
{
while (await reader.ReadAsync())
{
var row = new Dictionary<string, object>();
for (int i = 0; i < reader.FieldCount; i++)
{
row[reader.GetName(i)] = await reader.IsDBNullAsync(i) ? null : reader.GetValue(i);
}
result.Add(row);
}
}
}
Debug.WriteLine($"Query executed: {query}");
}
catch (Exception ex)
{
Debug.WriteLine($"Error executing query: {ex.Message}");
}
}
return result;
}
// 执行插入、更新、删除操作
public async Task<int> ExecuteNonQueryAsync(string query, Dictionary<string, object> parameters = null)
{
using (var conn = new NpgsqlConnection(_connectionString))
{
try
{
await conn.OpenAsync();
Debug.WriteLine("Database connection established.");
using (var cmd = new NpgsqlCommand(query, conn))
{
if (parameters != null)
{
foreach (var param in parameters)
{
cmd.Parameters.AddWithValue(param.Key, param.Value ?? DBNull.Value);
}
}
var rowsAffected = await cmd.ExecuteNonQueryAsync();
Debug.WriteLine($"Executed query: {query}, Rows affected: {rowsAffected}");
return rowsAffected;
}
}
catch (Exception ex)
{
Debug.WriteLine($"Error executing non-query: {ex.Message}");
return -1;
}
}
}
// 执行插入操作,返回生成的主键
public async Task<int> ExecuteInsertAsync(string query, Dictionary<string, object> parameters = null, string returnColumn = "id")
{
using (var conn = new NpgsqlConnection(_connectionString))
{
try
{
await conn.OpenAsync();
Debug.WriteLine("Database connection established.");
using (var cmd = new NpgsqlCommand(query, conn))
{
if (parameters != null)
{
foreach (var param in parameters)
{
cmd.Parameters.AddWithValue(param.Key, param.Value ?? DBNull.Value);
}
}
cmd.CommandText += $" RETURNING {returnColumn};";
var result = await cmd.ExecuteScalarAsync();
Debug.WriteLine($"Executed insert, inserted ID: {result}");
return result != null ? Convert.ToInt32(result) : -1;
}
}
catch (Exception ex)
{
Debug.WriteLine($"Error executing insert: {ex.Message}");
return -1;
}
}
}
// 执行事务操作
public async Task<bool> ExecuteTransactionAsync(List<string> queries, List<Dictionary<string, object>> parametersList)
{
using (var conn = new NpgsqlConnection(_connectionString))
{
try
{
await conn.OpenAsync();
Debug.WriteLine("Database connection established.");
using (var transaction = await conn.BeginTransactionAsync())
{
for (int i = 0; i < queries.Count; i++)
{
using (var cmd = new NpgsqlCommand(queries[i], conn, (NpgsqlTransaction)transaction))
{
var parameters = parametersList[i];
if (parameters != null)
{
foreach (var param in parameters)
{
cmd.Parameters.AddWithValue(param.Key, param.Value ?? DBNull.Value);
}
}
await cmd.ExecuteNonQueryAsync();
}
}
await transaction.CommitAsync();
Debug.WriteLine("Transaction committed.");
return true;
}
}
catch (Exception ex)
{
Debug.WriteLine($"Error executing transaction: {ex.Message}");
return false;
}
}
}
}
}

View File

@@ -1,13 +1,18 @@
using Microsoft.VisualBasic;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Threading;
namespace Ramitta.lib
@@ -25,14 +30,14 @@ namespace Ramitta.lib
#endregion
#region
public static void DebugBar(Label obj, String text, SolidColorBrush? color=null)
public static void DebugBar(Label obj, String? text, SolidColorBrush? color=null)
{
if (obj == null) return;
// 通过Dispatcher确保在UI线程执行
obj.Dispatcher.Invoke(() =>
{
obj.Content = text;
if(color!=null)obj.Background = color;
if (text!=null)obj.Content = text;
if (color != null) obj.Background = color;
});
}
@@ -82,21 +87,108 @@ namespace Ramitta.lib
}
#endregion
public static void FileWrite(string outputPath, string outputText)
#region
public static bool IsPathExist(string databasePath)
{
if (string.IsNullOrWhiteSpace(databasePath))
{
return false;
}
return Directory.Exists(databasePath);
}
public static void FileWrite(string outputPath, string outputText, bool createDirectories = true,bool fileAdd = false)
{
string directory = Path.GetDirectoryName(outputPath);
if (createDirectories && !Directory.Exists(directory))
{
Directory.CreateDirectory(directory);
}
// 使用 StreamWriter 写入文件
using (StreamWriter writer = new StreamWriter(outputPath, false))
{
Debug.WriteLine(outputText);
writer.WriteLine(outputText);
}
}
public static string FileRead(string outputPath)
{
return File.ReadAllText(outputPath);
}
// 获取路径下所有文件和文件夹,支持传入判断文件的函数
public static List<string> GetFilesAndDirectories(string path, bool? isDirectory = null, Func<string, bool> fileFilter = null, Func<string, string> outputFormat = null)
{
List<string> result = new List<string>();
// 获取文件夹
var directories = Directory.GetDirectories(path);
foreach (var dir in directories)
{
if (isDirectory == null || isDirectory == true)
{
// 如果指定了输出格式函数,则使用格式化函数;否则使用原始路径
result.Add(outputFormat == null ? dir : outputFormat(dir));
}
}
// 获取文件
var files = Directory.GetFiles(path);
foreach (var file in files)
{
// 如果传入了 fileFilter 函数,调用该函数进行筛选
if (fileFilter == null || fileFilter(file))
{
if (isDirectory == null || isDirectory == false)
{
// 如果指定了输出格式函数,则使用格式化函数;否则使用原始路径
result.Add(outputFormat == null ? file : outputFormat(file));
}
}
}
return result;
}
// 生成截图
public static PngBitmapEncoder CaptureWindowScreenshot(Window window, string? filePath = null)
{
// 获取当前窗口的 DPI 缩放因子
var dpiScale = VisualTreeHelper.GetDpi(window);
// 获取 DPI 缩放因子的 X 和 Y 值,通常 X 和 Y 应该是相等的
double dpiX = dpiScale.DpiScaleX;
double dpiY = dpiScale.DpiScaleY;
// 根据 DPI 缩放因子调整截图的尺寸
int width = (int)(window.ActualWidth * dpiX); // 使用 dpiX
int height = (int)(window.ActualHeight * dpiY); // 使用 dpiY
// 创建一个 RenderTargetBitmap 对象,并且考虑 DPI 缩放
RenderTargetBitmap rtb = new RenderTargetBitmap(width, height, 96 * dpiX, 96 * dpiY, System.Windows.Media.PixelFormats.Pbgra32);
// 使用 VisualTreeHelper 进行渲染
rtb.Render(window);
// 创建一个 PngBitmapEncoder 来保存为 PNG 格式
PngBitmapEncoder pngEncoder = new PngBitmapEncoder();
pngEncoder.Frames.Add(BitmapFrame.Create(rtb));
if (!string.IsNullOrEmpty(filePath))
{
// 保存图像到文件
using (FileStream fs = new FileStream(filePath, FileMode.Create))
{
pngEncoder.Save(fs);
}
}
return pngEncoder;
}
#endregion
#region
public static async Task<int> RunExternalCommand(string? applicationPath = "explorer.exe", string arguments="", bool UseShellExecute = false, bool CreateNoWindow = false)
{
ProcessStartInfo startInfo = new ProcessStartInfo
@@ -176,7 +268,146 @@ namespace Ramitta.lib
throw; // 重新抛出异常以便调用者捕获
}
}
#endregion
// 生成哈希
public static string GenerateHash(string input)
{
// 创建SHA256对象
using (SHA256 sha256 = SHA256.Create())
{
// 将输入字符串转换为字节数组并计算哈希值
byte[] bytes = sha256.ComputeHash(Encoding.UTF8.GetBytes(input));
// 将哈希值转换为十六进制字符串
StringBuilder stringBuilder = new StringBuilder();
foreach (byte b in bytes)
{
stringBuilder.Append(b.ToString("x2"));
}
// 返回最终的哈希字符串
return stringBuilder.ToString();
}
}
}
public class CryptoHelper
{
/// <summary>
/// 生成RSA密钥对
/// </summary>
/// <param name="keySize">密钥长度通常为2048、4096</param>
/// <returns>包含公钥和私钥的元组</returns>
public static (string publicKey, string privateKey) GenerateKeyPair(int keySize = 2048)
{
try
{
using (var rsa = RSA.Create(keySize))
{
string publicKey = rsa.ToXmlString(false);
string privateKey = rsa.ToXmlString(true);
return (publicKey, privateKey);
}
}
catch (Exception ex)
{
MessageBox.Show($"密钥生成失败: {ex.Message}");
return (null, null);
}
}
/// <summary>
/// 使用私钥对数据进行签名
/// </summary>
public static string? SignData(string data, string privateKey)
{
try
{
using (var rsa = RSA.Create())
{
rsa.FromXmlString(privateKey);
byte[] dataBytes = Encoding.UTF8.GetBytes(data);
byte[] signature = rsa.SignData(dataBytes, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
return Convert.ToBase64String(signature);
}
}
catch (Exception ex)
{
return null;
}
}
/// <summary>
/// 使用公钥验证签名
/// </summary>
public static bool? VerifySignature(string data, string signature, string publicKey)
{
try
{
using (var rsa = RSA.Create())
{
rsa.FromXmlString(publicKey);
byte[] dataBytes = Encoding.UTF8.GetBytes(data);
byte[] signatureBytes = Convert.FromBase64String(signature);
return rsa.VerifyData(dataBytes, signatureBytes, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1);
}
}
catch (Exception ex)
{
return false;
}
}
/// <summary>
/// 使用公钥加密数据
/// </summary>
public static string? Encrypt(string data, string publicKey)
{
try
{
using (var rsa = RSA.Create())
{
rsa.FromXmlString(publicKey);
byte[] dataBytes = Encoding.UTF8.GetBytes(data);
byte[] encryptedBytes = rsa.Encrypt(dataBytes, RSAEncryptionPadding.OaepSHA256);
return Convert.ToBase64String(encryptedBytes);
}
}
catch (Exception ex)
{
return null;
}
}
/// <summary>
/// 使用私钥解密数据
/// </summary>
public static string? Decrypt(string encryptedData, string privateKey)
{
try
{
using (var rsa = RSA.Create())
{
rsa.FromXmlString(privateKey);
byte[] encryptedBytes = Convert.FromBase64String(encryptedData);
byte[] decryptedBytes = rsa.Decrypt(encryptedBytes, RSAEncryptionPadding.OaepSHA256);
return Encoding.UTF8.GetString(decryptedBytes);
}
}
catch (Exception ex)
{
return null;
}
}
}
}

View File

@@ -8,7 +8,14 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.0" />
<PackageReference Include="Neo4j.Driver" Version="5.28.3" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="Npgsql" Version="9.0.3" />
<PackageReference Include="NPOI" Version="2.7.4" />
<PackageReference Include="System.Data.SQLite" Version="2.0.1" />
<PackageReference Include="System.Data.SQLite.Core" Version="1.0.119" />
<PackageReference Include="System.Data.SQLite.EF6" Version="2.0.1" />
</ItemGroup>
</Project>

270
Ramitta/SQLite.cs Normal file
View File

@@ -0,0 +1,270 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SQLite;
namespace Ramitta
{
public class SQLite : IDisposable
{
private SQLiteConnection db;
private bool disposed = false;
// 构造函数,初始化数据库连接
// 参数: connectionString - 数据库连接字符串
// 例如: "Data Source=mydatabase.db;Version=3;"
public SQLite(string connectionString)
{
db = new SQLiteConnection(connectionString);
db.Open();
}
// 创建表:根据表名和字段定义创建表
// 参数: tableName - 表名
// 参数: columns - 字段定义字典,键为字段名,值为字段类型
// 例如: CreateTable("Users", new Dictionary<string, string> { {"Id", "INTEGER"}, {"Name", "TEXT"} });
public void CreateTable(string tableName, Dictionary<string, string> columns)
{
// 构建列定义的字符串
var columnsDefinition = string.Join(", ", columns.Select(c => $"{c.Key} {c.Value}"));
string createTableQuery = $"CREATE TABLE IF NOT EXISTS {tableName} ({columnsDefinition});";
using (var cmd = new SQLiteCommand(createTableQuery, db))
{
cmd.ExecuteNonQuery();
}
}
// 向已存在的表中添加新列
// 参数: tableName - 表名
// 参数: columnName - 要添加的列名
// 参数: columnType - 列的数据类型
// 例如: AddColumn("Users", "Email", "TEXT");
public void AddColumn(string tableName, string columnName, string columnType)
{
// 检查表是否存在
if (!TableExists(tableName))
{
throw new ArgumentException($"表 '{tableName}' 不存在");
}
// 检查列是否已存在
if (ColumnExists(tableName, columnName))
{
Console.WriteLine($"列 '{columnName}' 在表 '{tableName}' 中已存在");
return;
}
// 构建添加列的SQL语句
string addColumnQuery = $"ALTER TABLE {tableName} ADD COLUMN {columnName} {columnType};";
using (var cmd = new SQLiteCommand(addColumnQuery, db))
{
cmd.ExecuteNonQuery();
}
Console.WriteLine($"已向表 '{tableName}' 添加列 '{columnName}'");
}
// 检查表是否存在
private bool TableExists(string tableName)
{
string query = "SELECT count(*) FROM sqlite_master WHERE type='table' AND name=@tableName;";
using (var cmd = new SQLiteCommand(query, db))
{
cmd.Parameters.AddWithValue("@tableName", tableName);
var result = cmd.ExecuteScalar();
return Convert.ToInt32(result) > 0;
}
}
// 检查列是否已存在
private bool ColumnExists(string tableName, string columnName)
{
string query = $"PRAGMA table_info({tableName});";
using (var cmd = new SQLiteCommand(query, db))
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
if (reader["name"].ToString().Equals(columnName, StringComparison.OrdinalIgnoreCase))
{
return true;
}
}
}
return false;
}
// 批量添加多个列
// 参数: tableName - 表名
// 参数: columns - 字段定义字典,键为字段名,值为字段类型
// 例如: AddColumns("Users", new Dictionary<string, string> { {"Email", "TEXT"}, {"Age", "INTEGER"} });
public void AddColumns(string tableName, Dictionary<string, string> columns)
{
foreach (var column in columns)
{
AddColumn(tableName, column.Key, column.Value);
}
}
// 插入数据:向指定表插入一条记录
// 参数: tableName - 表名
// 参数: columnValues - 字段和对应值的字典
// 例如: InsertData("Users", new Dictionary<string, object> { {"Name", "John"}, {"Age", 30} });
public void InsertData(string tableName, Dictionary<string, object> columnValues)
{
// 构建列和参数的字符串
var columns = string.Join(", ", columnValues.Keys);
var parameters = string.Join(", ", columnValues.Keys.Select(k => "@" + k));
string insertQuery = $"INSERT INTO {tableName} ({columns}) VALUES ({parameters})";
using (var cmd = new SQLiteCommand(insertQuery, db))
{
foreach (var kvp in columnValues)
{
cmd.Parameters.AddWithValue("@" + kvp.Key, kvp.Value);
}
cmd.ExecuteNonQuery();
}
}
// 查询数据:执行任意查询语句并返回结果
// 参数: query - SQL查询语句
// 参数: parameters - 可选的查询参数字典
// 例如: SelectData("SELECT * FROM Users WHERE Age > @age", new Dictionary<string, object> { {"age", 25} });
public List<Dictionary<string, object>> SelectData(string query, Dictionary<string, object> parameters = null)
{
var result = new List<Dictionary<string, object>>();
using (var cmd = new SQLiteCommand(query, db))
{
// 添加查询参数(如果有的话)
if (parameters != null)
{
foreach (var kvp in parameters)
{
cmd.Parameters.AddWithValue("@" + kvp.Key, kvp.Value);
}
}
using (SQLiteDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
var row = new Dictionary<string, object>();
for (int i = 0; i < reader.FieldCount; i++)
{
row[reader.GetName(i)] = reader.GetValue(i);
}
result.Add(row);
}
}
}
return result;
}
// 更新数据:根据条件更新指定表中的记录
// 参数: tableName - 表名
// 参数: columnValues - 需要更新的字段和对应值的字典
// 参数: condition - 更新条件
// 例如: UpdateData("Users", new Dictionary<string, object> { {"Age", 31} }, "Name = 'John'");
public void UpdateData(string tableName, Dictionary<string, object> columnValues, string condition)
{
// 构建SET子句
var setClause = string.Join(", ", columnValues.Keys.Select(k => $"{k} = @{k}"));
string updateQuery = $"UPDATE {tableName} SET {setClause} WHERE {condition}";
using (var cmd = new SQLiteCommand(updateQuery, db))
{
foreach (var kvp in columnValues)
{
cmd.Parameters.AddWithValue("@" + kvp.Key, kvp.Value);
}
cmd.ExecuteNonQuery();
}
}
// 删除数据:根据条件删除指定表中的记录
// 参数: tableName - 表名
// 参数: condition - 删除条件
// 例如: DeleteData("Users", "Age < 18");
public void DeleteData(string tableName, string condition)
{
string deleteQuery = $"DELETE FROM {tableName} WHERE {condition}";
using (var cmd = new SQLiteCommand(deleteQuery, db))
{
cmd.ExecuteNonQuery();
}
}
// 支持事务操作:允许在同一个事务中执行多个操作
// 参数: transactionActions - 一个包含多个数据库操作的委托
// 例如: ExecuteTransaction(() =>
// {
// InsertData("Users", new Dictionary<string, object> { {"Name", "Alice"}, {"Age", 28} });
// UpdateData("Users", new Dictionary<string, object> { {"Age", 29} }, "Name = 'Bob'");
// });
public void ExecuteTransaction(Action transactionActions)
{
using (var transaction = db.BeginTransaction())
{
try
{
transactionActions.Invoke(); // 执行多个操作
transaction.Commit(); // 提交事务
}
catch (Exception)
{
transaction.Rollback(); // 回滚事务
throw;
}
}
}
// 删除所有表
public void DropAllTables()
{
// 获取所有表名
string getTablesQuery = "SELECT name FROM sqlite_master WHERE type='table';";
var tables = SelectData(getTablesQuery);
foreach (var table in tables)
{
string tableName = table["name"].ToString();
string dropTableQuery = $"DROP TABLE IF EXISTS {tableName};";
using (var cmd = new SQLiteCommand(dropTableQuery, db))
{
cmd.ExecuteNonQuery();
}
}
}
// 释放资源,关闭数据库连接
// 确保数据库连接在对象销毁时被正确关闭
public void Dispose()
{
if (!disposed)
{
if (db != null && db.State == ConnectionState.Open)
{
db.Close();
db.Dispose();
}
disposed = true;
}
GC.SuppressFinalize(this);
}
// 析构函数调用Dispose释放资源
~SQLite()
{
Dispose();
}
}
}

View File

@@ -170,20 +170,30 @@
<Setter Property="Background" Value="Transparent"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="True">
<Setter Property="Background" Value="#757575"/>
<Setter Property="Background" Value="#5c2893"/>
</DataTrigger>
<DataTrigger Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="True">
<Setter Property="Background" Value="#9E9E9E"/>
<Setter Property="Background" Value="Transparent"/>
</DataTrigger>
</Style.Triggers>
</Style>
<!--TreeView-->
<Style TargetType="TreeView">
<Setter Property="Foreground" Value="{Binding Foreground, RelativeSource={RelativeSource AncestorType=Window}}"/>
<Setter Property="Background" Value="#424242"/>
</Style>
<Style TargetType="TreeViewItem">
<Style.Triggers>
<!-- 鼠标悬停时更改背景色 -->
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="True">
<Setter Property="Background" Value="Transparent"/>
<!-- 修改为你希望的背景色 -->
</DataTrigger>
</Style.Triggers>
</Style>
<Style TargetType="Label">
<Setter Property="Foreground" Value="{Binding Foreground, RelativeSource={RelativeSource AncestorType=Window}}"/>
</Style>

View File

@@ -8,12 +8,125 @@
".NETCoreApp,Version=v8.0": {
"Ramitta/1.0.0": {
"dependencies": {
"Newtonsoft.Json": "13.0.3"
"CommunityToolkit.Mvvm": "8.4.0",
"NPOI": "2.7.4",
"Neo4j.Driver": "5.28.3",
"Newtonsoft.Json": "13.0.3",
"Npgsql": "9.0.3",
"System.Data.SQLite": "2.0.1",
"System.Data.SQLite.Core": "1.0.119",
"System.Data.SQLite.EF6": "2.0.1"
},
"runtime": {
"Ramitta.dll": {}
}
},
"BouncyCastle.Cryptography/2.4.0": {
"runtime": {
"lib/net6.0/BouncyCastle.Cryptography.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.4.0.33771"
}
}
},
"CommunityToolkit.Mvvm/8.4.0": {
"runtime": {
"lib/net8.0/CommunityToolkit.Mvvm.dll": {
"assemblyVersion": "8.4.0.0",
"fileVersion": "8.4.0.1"
}
}
},
"EntityFramework/6.5.1": {
"dependencies": {
"Microsoft.CSharp": "4.7.0",
"System.CodeDom": "6.0.0",
"System.ComponentModel.Annotations": "5.0.0",
"System.Configuration.ConfigurationManager": "6.0.1",
"System.Data.SqlClient": "4.8.6"
},
"runtime": {
"lib/netstandard2.1/EntityFramework.SqlServer.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.500.124.31603"
},
"lib/netstandard2.1/EntityFramework.dll": {
"assemblyVersion": "6.0.0.0",
"fileVersion": "6.500.124.31603"
}
}
},
"Enums.NET/5.0.0": {
"runtime": {
"lib/net7.0/Enums.NET.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.0.0"
}
}
},
"ExtendedNumerics.BigDecimal/2025.1001.2.129": {
"runtime": {
"lib/net8.0/ExtendedNumerics.BigDecimal.dll": {
"assemblyVersion": "2025.1001.2.129",
"fileVersion": "2025.1001.2.129"
}
}
},
"MathNet.Numerics.Signed/5.0.0": {
"runtime": {
"lib/net6.0/MathNet.Numerics.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.0.0"
}
}
},
"Microsoft.CSharp/4.7.0": {},
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": {
"runtime": {
"lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.1024.46610"
}
}
},
"Microsoft.Extensions.Logging.Abstractions/8.0.2": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2"
},
"runtime": {
"lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.1024.46610"
}
}
},
"Microsoft.IO.RecyclableMemoryStream/3.0.1": {
"runtime": {
"lib/net6.0/Microsoft.IO.RecyclableMemoryStream.dll": {
"assemblyVersion": "3.0.1.0",
"fileVersion": "3.0.1.0"
}
}
},
"Microsoft.NETCore.Platforms/5.0.0": {},
"Microsoft.Win32.Registry/4.7.0": {
"dependencies": {
"System.Security.AccessControl": "6.0.0",
"System.Security.Principal.Windows": "4.7.0"
}
},
"Microsoft.Win32.SystemEvents/6.0.0": {},
"Neo4j.Driver/5.28.3": {
"dependencies": {
"System.IO.Pipelines": "8.0.0"
},
"runtime": {
"lib/net8.0/Neo4j.Driver.dll": {
"assemblyVersion": "5.28.42.3",
"fileVersion": "5.28.3.0"
}
}
},
"Newtonsoft.Json/13.0.3": {
"runtime": {
"lib/net6.0/Newtonsoft.Json.dll": {
@@ -21,6 +134,269 @@
"fileVersion": "13.0.3.27908"
}
}
},
"Npgsql/9.0.3": {
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "8.0.2"
},
"runtime": {
"lib/net8.0/Npgsql.dll": {
"assemblyVersion": "9.0.3.0",
"fileVersion": "9.0.3.0"
}
}
},
"NPOI/2.7.4": {
"dependencies": {
"BouncyCastle.Cryptography": "2.4.0",
"Enums.NET": "5.0.0",
"ExtendedNumerics.BigDecimal": "2025.1001.2.129",
"MathNet.Numerics.Signed": "5.0.0",
"Microsoft.IO.RecyclableMemoryStream": "3.0.1",
"SharpZipLib": "1.4.2",
"SixLabors.Fonts": "1.0.1",
"SixLabors.ImageSharp": "2.1.10",
"System.Security.Cryptography.Xml": "8.0.2",
"ZString": "2.6.0"
},
"runtime": {
"lib/net8.0/NPOI.Core.dll": {
"assemblyVersion": "2.7.4.0",
"fileVersion": "2.7.4.0"
},
"lib/net8.0/NPOI.OOXML.dll": {
"assemblyVersion": "2.7.4.0",
"fileVersion": "2.7.4.0"
},
"lib/net8.0/NPOI.OpenXml4Net.dll": {
"assemblyVersion": "2.7.4.0",
"fileVersion": "2.7.4.0"
},
"lib/net8.0/NPOI.OpenXmlFormats.dll": {
"assemblyVersion": "2.7.4.0",
"fileVersion": "2.7.4.0"
}
}
},
"runtime.native.System.Data.SqlClient.sni/4.7.0": {
"dependencies": {
"runtime.win-arm64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
"runtime.win-x64.runtime.native.System.Data.SqlClient.sni": "4.4.0",
"runtime.win-x86.runtime.native.System.Data.SqlClient.sni": "4.4.0"
}
},
"runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
"runtimeTargets": {
"runtimes/win-arm64/native/sni.dll": {
"rid": "win-arm64",
"assetType": "native",
"fileVersion": "4.6.25512.1"
}
}
},
"runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
"runtimeTargets": {
"runtimes/win-x64/native/sni.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "4.6.25512.1"
}
}
},
"runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0": {
"runtimeTargets": {
"runtimes/win-x86/native/sni.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "4.6.25512.1"
}
}
},
"SharpZipLib/1.4.2": {
"runtime": {
"lib/net6.0/ICSharpCode.SharpZipLib.dll": {
"assemblyVersion": "1.4.2.13",
"fileVersion": "1.4.2.13"
}
}
},
"SixLabors.Fonts/1.0.1": {
"runtime": {
"lib/netcoreapp3.1/SixLabors.Fonts.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.1.0"
}
}
},
"SixLabors.ImageSharp/2.1.10": {
"dependencies": {
"System.Runtime.CompilerServices.Unsafe": "5.0.0",
"System.Text.Encoding.CodePages": "5.0.0"
},
"runtime": {
"lib/netcoreapp3.1/SixLabors.ImageSharp.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.1.10.0"
}
}
},
"Stub.System.Data.SQLite.Core.NetStandard/1.0.119": {
"runtime": {
"lib/netstandard2.1/System.Data.SQLite.dll": {
"assemblyVersion": "1.0.119.0",
"fileVersion": "1.0.119.0"
}
},
"runtimeTargets": {
"runtimes/linux-x64/native/SQLite.Interop.dll": {
"rid": "linux-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/osx-x64/native/SQLite.Interop.dll": {
"rid": "osx-x64",
"assetType": "native",
"fileVersion": "0.0.0.0"
},
"runtimes/win-x64/native/SQLite.Interop.dll": {
"rid": "win-x64",
"assetType": "native",
"fileVersion": "1.0.119.0"
},
"runtimes/win-x86/native/SQLite.Interop.dll": {
"rid": "win-x86",
"assetType": "native",
"fileVersion": "1.0.119.0"
}
}
},
"System.CodeDom/6.0.0": {},
"System.ComponentModel.Annotations/5.0.0": {},
"System.Configuration.ConfigurationManager/6.0.1": {
"dependencies": {
"System.Security.Cryptography.ProtectedData": "6.0.0",
"System.Security.Permissions": "6.0.0"
}
},
"System.Data.SqlClient/4.8.6": {
"dependencies": {
"Microsoft.Win32.Registry": "4.7.0",
"System.Security.Principal.Windows": "4.7.0",
"runtime.native.System.Data.SqlClient.sni": "4.7.0"
},
"runtime": {
"lib/netcoreapp2.1/System.Data.SqlClient.dll": {
"assemblyVersion": "4.6.1.6",
"fileVersion": "4.700.23.52603"
}
},
"runtimeTargets": {
"runtimes/unix/lib/netcoreapp2.1/System.Data.SqlClient.dll": {
"rid": "unix",
"assetType": "runtime",
"assemblyVersion": "4.6.1.6",
"fileVersion": "4.700.23.52603"
},
"runtimes/win/lib/netcoreapp2.1/System.Data.SqlClient.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "4.6.1.6",
"fileVersion": "4.700.23.52603"
}
}
},
"System.Data.SQLite/2.0.1": {
"runtime": {
"lib/netstandard2.1/System.Data.SQLite.dll": {
"assemblyVersion": "1.0.119.0",
"fileVersion": "1.0.119.0"
}
}
},
"System.Data.SQLite.Core/1.0.119": {
"dependencies": {
"Stub.System.Data.SQLite.Core.NetStandard": "1.0.119"
}
},
"System.Data.SQLite.EF6/2.0.1": {
"dependencies": {
"System.Data.SQLite": "2.0.1",
"EntityFramework": "6.5.1"
},
"runtime": {
"lib/netstandard2.1/System.Data.SQLite.EF6.dll": {
"assemblyVersion": "1.0.119.0",
"fileVersion": "1.0.119.0"
}
}
},
"System.Drawing.Common/6.0.0": {
"dependencies": {
"Microsoft.Win32.SystemEvents": "6.0.0"
}
},
"System.IO.Pipelines/8.0.0": {
"runtime": {
"lib/net8.0/System.IO.Pipelines.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.23.53103"
}
}
},
"System.Runtime.CompilerServices.Unsafe/5.0.0": {},
"System.Security.AccessControl/6.0.0": {},
"System.Security.Cryptography.Pkcs/8.0.1": {
"runtime": {
"lib/net8.0/System.Security.Cryptography.Pkcs.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.1024.46610"
}
},
"runtimeTargets": {
"runtimes/win/lib/net8.0/System.Security.Cryptography.Pkcs.dll": {
"rid": "win",
"assetType": "runtime",
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.1024.46610"
}
}
},
"System.Security.Cryptography.ProtectedData/6.0.0": {},
"System.Security.Cryptography.Xml/8.0.2": {
"dependencies": {
"System.Security.Cryptography.Pkcs": "8.0.1"
},
"runtime": {
"lib/net8.0/System.Security.Cryptography.Xml.dll": {
"assemblyVersion": "8.0.0.0",
"fileVersion": "8.0.1024.46610"
}
}
},
"System.Security.Permissions/6.0.0": {
"dependencies": {
"System.Security.AccessControl": "6.0.0",
"System.Windows.Extensions": "6.0.0"
}
},
"System.Security.Principal.Windows/4.7.0": {},
"System.Text.Encoding.CodePages/5.0.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "5.0.0"
}
},
"System.Windows.Extensions/6.0.0": {
"dependencies": {
"System.Drawing.Common": "6.0.0"
}
},
"ZString/2.6.0": {
"runtime": {
"lib/net7.0/ZString.dll": {
"assemblyVersion": "2.6.0.0",
"fileVersion": "2.6.0.0"
}
}
}
}
},
@@ -30,12 +406,313 @@
"serviceable": false,
"sha512": ""
},
"BouncyCastle.Cryptography/2.4.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-SwXsAV3sMvAU/Nn31pbjhWurYSjJ+/giI/0n6tCrYoupEK34iIHCuk3STAd9fx8yudM85KkLSVdn951vTng/vQ==",
"path": "bouncycastle.cryptography/2.4.0",
"hashPath": "bouncycastle.cryptography.2.4.0.nupkg.sha512"
},
"CommunityToolkit.Mvvm/8.4.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-tqVU8yc/ADO9oiTRyTnwhFN68hCwvkliMierptWOudIAvWY1mWCh5VFh+guwHJmpMwfg0J0rY+yyd5Oy7ty9Uw==",
"path": "communitytoolkit.mvvm/8.4.0",
"hashPath": "communitytoolkit.mvvm.8.4.0.nupkg.sha512"
},
"EntityFramework/6.5.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-sQRP2lWg1i3aAGWqdliAM8zrGx7LHMUk+9/MoxUjwfTZYGMXvZ2JYZTlyTm1PqDxvn3c9E3U76TWDON7Y5+CVA==",
"path": "entityframework/6.5.1",
"hashPath": "entityframework.6.5.1.nupkg.sha512"
},
"Enums.NET/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-NfGq1iLJZ15XZPgBhjk4Ns1XZ+beaGk6cog6B4LxcROdGoSMdgCJqYXF70P6VTd3dz/vFRY4h1u1lAMqW/DC2w==",
"path": "enums.net/5.0.0",
"hashPath": "enums.net.5.0.0.nupkg.sha512"
},
"ExtendedNumerics.BigDecimal/2025.1001.2.129": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+woGT1lsBtwkntOpx2EZbdbySv0aWPefE0vrfvclxVdbi4oa2bbtphFPWgMiQe+kRCPICbfFJwp6w1DuR7Ge2Q==",
"path": "extendednumerics.bigdecimal/2025.1001.2.129",
"hashPath": "extendednumerics.bigdecimal.2025.1001.2.129.nupkg.sha512"
},
"MathNet.Numerics.Signed/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-PSrHBVMf41SjbhlnpOMnoir8YgkyEJ6/nwxvjYpH+vJCexNcx2ms6zRww5yLVqLet1xLJgZ39swtKRTLhWdnAw==",
"path": "mathnet.numerics.signed/5.0.0",
"hashPath": "mathnet.numerics.signed.5.0.0.nupkg.sha512"
},
"Microsoft.CSharp/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-pTj+D3uJWyN3My70i2Hqo+OXixq3Os2D1nJ2x92FFo6sk8fYS1m1WLNTs0Dc1uPaViH0YvEEwvzddQ7y4rhXmA==",
"path": "microsoft.csharp/4.7.0",
"hashPath": "microsoft.csharp.4.7.0.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==",
"path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/8.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==",
"path": "microsoft.extensions.logging.abstractions/8.0.2",
"hashPath": "microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512"
},
"Microsoft.IO.RecyclableMemoryStream/3.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-s/s20YTVY9r9TPfTrN5g8zPF1YhwxyqO6PxUkrYTGI2B+OGPe9AdajWZrLhFqXIvqIW23fnUE4+ztrUWNU1+9g==",
"path": "microsoft.io.recyclablememorystream/3.0.1",
"hashPath": "microsoft.io.recyclablememorystream.3.0.1.nupkg.sha512"
},
"Microsoft.NETCore.Platforms/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==",
"path": "microsoft.netcore.platforms/5.0.0",
"hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512"
},
"Microsoft.Win32.Registry/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-KSrRMb5vNi0CWSGG1++id2ZOs/1QhRqROt+qgbEAdQuGjGrFcl4AOl4/exGPUYz2wUnU42nvJqon1T3U0kPXLA==",
"path": "microsoft.win32.registry/4.7.0",
"hashPath": "microsoft.win32.registry.4.7.0.nupkg.sha512"
},
"Microsoft.Win32.SystemEvents/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-hqTM5628jSsQiv+HGpiq3WKBl2c8v1KZfby2J6Pr7pEPlK9waPdgEO6b8A/+/xn/yZ9ulv8HuqK71ONy2tg67A==",
"path": "microsoft.win32.systemevents/6.0.0",
"hashPath": "microsoft.win32.systemevents.6.0.0.nupkg.sha512"
},
"Neo4j.Driver/5.28.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-nGfPRmx11Ma/dWcy54swbP+5tu++KrvR5DZgSWi/zAgFEPoObubGaO540i0flTleH0sZQkO8X9lAg4H2Y05ffg==",
"path": "neo4j.driver/5.28.3",
"hashPath": "neo4j.driver.5.28.3.nupkg.sha512"
},
"Newtonsoft.Json/13.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
"path": "newtonsoft.json/13.0.3",
"hashPath": "newtonsoft.json.13.0.3.nupkg.sha512"
},
"Npgsql/9.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-tPvY61CxOAWxNsKLEBg+oR646X4Bc8UmyQ/tJszL/7mEmIXQnnBhVJZrZEEUv0Bstu0mEsHZD5At3EO8zQRAYw==",
"path": "npgsql/9.0.3",
"hashPath": "npgsql.9.0.3.nupkg.sha512"
},
"NPOI/2.7.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-1tCebTkr9qAfwiEa2ErXco2IT+D8MNmT9d4KFz9nWn3owkc5fAOsvxV8kq6y4531B4Z3gnInrvEdonwFyoRqPQ==",
"path": "npoi/2.7.4",
"hashPath": "npoi.2.7.4.nupkg.sha512"
},
"runtime.native.System.Data.SqlClient.sni/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-9kyFSIdN3T0qjDQ2R0HRXYIhS3l5psBzQi6qqhdLz+SzFyEy4sVxNOke+yyYv8Cu8rPER12c3RDjLT8wF3WBYQ==",
"path": "runtime.native.system.data.sqlclient.sni/4.7.0",
"hashPath": "runtime.native.system.data.sqlclient.sni.4.7.0.nupkg.sha512"
},
"runtime.win-arm64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-LbrynESTp3bm5O/+jGL8v0Qg5SJlTV08lpIpFesXjF6uGNMWqFnUQbYBJwZTeua6E/Y7FIM1C54Ey1btLWupdg==",
"path": "runtime.win-arm64.runtime.native.system.data.sqlclient.sni/4.4.0",
"hashPath": "runtime.win-arm64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512"
},
"runtime.win-x64.runtime.native.System.Data.SqlClient.sni/4.4.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-38ugOfkYJqJoX9g6EYRlZB5U2ZJH51UP8ptxZgdpS07FgOEToV+lS11ouNK2PM12Pr6X/PpT5jK82G3DwH/SxQ==",
"path": "runtime.win-x64.runtime.native.system.data.sqlclient.sni/4.4.0",
"hashPath": "runtime.win-x64.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512"
},
"runtime.win-x86.runtime.native.System.Data.SqlClient.sni/4.4.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-YhEdSQUsTx+C8m8Bw7ar5/VesXvCFMItyZF7G1AUY+OM0VPZUOeAVpJ4Wl6fydBGUYZxojTDR3I6Bj/+BPkJNA==",
"path": "runtime.win-x86.runtime.native.system.data.sqlclient.sni/4.4.0",
"hashPath": "runtime.win-x86.runtime.native.system.data.sqlclient.sni.4.4.0.nupkg.sha512"
},
"SharpZipLib/1.4.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-yjj+3zgz8zgXpiiC3ZdF/iyTBbz2fFvMxZFEBPUcwZjIvXOf37Ylm+K58hqMfIBt5JgU/Z2uoUS67JmTLe973A==",
"path": "sharpziplib/1.4.2",
"hashPath": "sharpziplib.1.4.2.nupkg.sha512"
},
"SixLabors.Fonts/1.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ljezRHWc7N0azdQViib7Aa5v+DagRVkKI2/93kEbtjVczLs+yTkSq6gtGmvOcx4IqyNbO3GjLt7SAQTpLkySNw==",
"path": "sixlabors.fonts/1.0.1",
"hashPath": "sixlabors.fonts.1.0.1.nupkg.sha512"
},
"SixLabors.ImageSharp/2.1.10": {
"type": "package",
"serviceable": true,
"sha512": "sha512-hk1E7U3RSlxrBVo6Gb6OjeM52fChpFYH+SZvyT/M2vzSGlzAaKE33hc3V/Pvnjcnn1opT8/Z+0QfqdM5HsIaeA==",
"path": "sixlabors.imagesharp/2.1.10",
"hashPath": "sixlabors.imagesharp.2.1.10.nupkg.sha512"
},
"Stub.System.Data.SQLite.Core.NetStandard/1.0.119": {
"type": "package",
"serviceable": true,
"sha512": "sha512-dI7ngiCNgdm+n00nQvFTa+LbHvE9MIQXwMSLRzJI/KAJ7G1WmCachsvfE1CD6xvb3OXJvYYEfv3+S/LHyhN0Rg==",
"path": "stub.system.data.sqlite.core.netstandard/1.0.119",
"hashPath": "stub.system.data.sqlite.core.netstandard.1.0.119.nupkg.sha512"
},
"System.CodeDom/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-CPc6tWO1LAer3IzfZufDBRL+UZQcj5uS207NHALQzP84Vp/z6wF0Aa0YZImOQY8iStY0A2zI/e3ihKNPfUm8XA==",
"path": "system.codedom/6.0.0",
"hashPath": "system.codedom.6.0.0.nupkg.sha512"
},
"System.ComponentModel.Annotations/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-dMkqfy2el8A8/I76n2Hi1oBFEbG1SfxD2l5nhwXV3XjlnOmwxJlQbYpJH4W51odnU9sARCSAgv7S3CyAFMkpYg==",
"path": "system.componentmodel.annotations/5.0.0",
"hashPath": "system.componentmodel.annotations.5.0.0.nupkg.sha512"
},
"System.Configuration.ConfigurationManager/6.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-jXw9MlUu/kRfEU0WyTptAVueupqIeE3/rl0EZDMlf8pcvJnitQ8HeVEp69rZdaStXwTV72boi/Bhw8lOeO+U2w==",
"path": "system.configuration.configurationmanager/6.0.1",
"hashPath": "system.configuration.configurationmanager.6.0.1.nupkg.sha512"
},
"System.Data.SqlClient/4.8.6": {
"type": "package",
"serviceable": true,
"sha512": "sha512-2Ij/LCaTQRyAi5lAv7UUTV9R2FobC8xN9mE0fXBZohum/xLl8IZVmE98Rq5ugQHjCgTBRKqpXRb4ORulRdA6Ig==",
"path": "system.data.sqlclient/4.8.6",
"hashPath": "system.data.sqlclient.4.8.6.nupkg.sha512"
},
"System.Data.SQLite/2.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-x1WBY7ADvWQD7vvupe+S4b7MTj3YyMRl4iysDvgclt+i1AZDdplox0sWslplvzK+eapmegQYuKV8lQhf4o8b5Q==",
"path": "system.data.sqlite/2.0.1",
"hashPath": "system.data.sqlite.2.0.1.nupkg.sha512"
},
"System.Data.SQLite.Core/1.0.119": {
"type": "package",
"serviceable": true,
"sha512": "sha512-bhQB8HVtRA+OOYw8UTD1F1kU+nGJ0/OZvH1JmlVUI4bGvgVEWeX1NcHjA765NvUoRVuCPlt8PrEpZ1thSsk1jg==",
"path": "system.data.sqlite.core/1.0.119",
"hashPath": "system.data.sqlite.core.1.0.119.nupkg.sha512"
},
"System.Data.SQLite.EF6/2.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-z+zNooMGDUMqO0oXXV00EtyTtgv6gBfQDO8U2H15HhBvCWInaxebqg8wQRzuqIb++dFp6p8mPqm7IFSDSP2+wg==",
"path": "system.data.sqlite.ef6/2.0.1",
"hashPath": "system.data.sqlite.ef6.2.0.1.nupkg.sha512"
},
"System.Drawing.Common/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-NfuoKUiP2nUWwKZN6twGqXioIe1zVD0RIj2t976A+czLHr2nY454RwwXs6JU9Htc6mwqL6Dn/nEL3dpVf2jOhg==",
"path": "system.drawing.common/6.0.0",
"hashPath": "system.drawing.common.6.0.0.nupkg.sha512"
},
"System.IO.Pipelines/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-FHNOatmUq0sqJOkTx+UF/9YK1f180cnW5FVqnQMvYUN0elp6wFzbtPSiqbo1/ru8ICp43JM1i7kKkk6GsNGHlA==",
"path": "system.io.pipelines/8.0.0",
"hashPath": "system.io.pipelines.8.0.0.nupkg.sha512"
},
"System.Runtime.CompilerServices.Unsafe/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZD9TMpsmYJLrxbbmdvhwt9YEgG5WntEnZ/d1eH8JBX9LBp+Ju8BSBhUGbZMNVHHomWo2KVImJhTDl2hIgw/6MA==",
"path": "system.runtime.compilerservices.unsafe/5.0.0",
"hashPath": "system.runtime.compilerservices.unsafe.5.0.0.nupkg.sha512"
},
"System.Security.AccessControl/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-AUADIc0LIEQe7MzC+I0cl0rAT8RrTAKFHl53yHjEUzNVIaUlhFY11vc2ebiVJzVBuOzun6F7FBA+8KAbGTTedQ==",
"path": "system.security.accesscontrol/6.0.0",
"hashPath": "system.security.accesscontrol.6.0.0.nupkg.sha512"
},
"System.Security.Cryptography.Pkcs/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-CoCRHFym33aUSf/NtWSVSZa99dkd0Hm7OCZUxORBjRB16LNhIEOf8THPqzIYlvKM0nNDAPTRBa1FxEECrgaxxA==",
"path": "system.security.cryptography.pkcs/8.0.1",
"hashPath": "system.security.cryptography.pkcs.8.0.1.nupkg.sha512"
},
"System.Security.Cryptography.ProtectedData/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-rp1gMNEZpvx9vP0JW0oHLxlf8oSiQgtno77Y4PLUBjSiDYoD77Y8uXHr1Ea5XG4/pIKhqAdxZ8v8OTUtqo9PeQ==",
"path": "system.security.cryptography.protecteddata/6.0.0",
"hashPath": "system.security.cryptography.protecteddata.6.0.0.nupkg.sha512"
},
"System.Security.Cryptography.Xml/8.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-aDM/wm0ZGEZ6ZYJLzgqjp2FZdHbDHh6/OmpGfb7AdZ105zYmPn/83JRU2xLIbwgoNz9U1SLUTJN0v5th3qmvjA==",
"path": "system.security.cryptography.xml/8.0.2",
"hashPath": "system.security.cryptography.xml.8.0.2.nupkg.sha512"
},
"System.Security.Permissions/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-T/uuc7AklkDoxmcJ7LGkyX1CcSviZuLCa4jg3PekfJ7SU0niF0IVTXwUiNVP9DSpzou2PpxJ+eNY2IfDM90ZCg==",
"path": "system.security.permissions/6.0.0",
"hashPath": "system.security.permissions.6.0.0.nupkg.sha512"
},
"System.Security.Principal.Windows/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ojD0PX0XhneCsUbAZVKdb7h/70vyYMDYs85lwEI+LngEONe/17A0cFaRFqZU+sOEidcVswYWikYOQ9PPfjlbtQ==",
"path": "system.security.principal.windows/4.7.0",
"hashPath": "system.security.principal.windows.4.7.0.nupkg.sha512"
},
"System.Text.Encoding.CodePages/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-NyscU59xX6Uo91qvhOs2Ccho3AR2TnZPomo1Z0K6YpyztBPM/A5VbkzOO19sy3A3i1TtEnTxA7bCe3Us+r5MWg==",
"path": "system.text.encoding.codepages/5.0.0",
"hashPath": "system.text.encoding.codepages.5.0.0.nupkg.sha512"
},
"System.Windows.Extensions/6.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-IXoJOXIqc39AIe+CIR7koBtRGMiCt/LPM3lI+PELtDIy9XdyeSrwXFdWV9dzJ2Awl0paLWUaknLxFQ5HpHZUog==",
"path": "system.windows.extensions/6.0.0",
"hashPath": "system.windows.extensions.6.0.0.nupkg.sha512"
},
"ZString/2.6.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-XE8a+11nZg0LRaf+RGABEWaHIf8yGd5w8v/Ra1iWxMBmAVzwuKbW7G21mS0U7w7sh1lYcgckInWGgnz4qyET8A==",
"path": "zstring/2.6.0",
"hashPath": "zstring.2.6.0.nupkg.sha512"
}
}
}

View File

@@ -0,0 +1,20 @@
{
"runtimeOptions": {
"tfm": "net8.0",
"frameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "8.0.0"
},
{
"name": "Microsoft.WindowsDesktop.App",
"version": "8.0.0"
}
],
"configProperties": {
"MVVMTOOLKIT_ENABLE_INOTIFYPROPERTYCHANGING_SUPPORT": true,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": true,
"CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false
}
}
}

View File

@@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+31d3517ecb4d813a458f2555c82d2c2ef0042c94")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e773052a85f9dccce87dd2af28c0c3c5dbd12950")]
[assembly: System.Reflection.AssemblyProductAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyTitleAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@@ -1 +1 @@
266074d04083560031f49c71b808c4004956148e7c8571689c77125a55823eea
fab53866ff8d1289d044c284ff8adbc7a2d521efb64c7861f2571e9a0df2319c

View File

@@ -1,4 +1,9 @@
is_global = true
build_property.MvvmToolkitEnableINotifyPropertyChangingSupport = true
build_property._MvvmToolkitIsUsingWindowsRuntimePack = false
build_property.CsWinRTComponent =
build_property.CsWinRTAotOptimizerEnabled =
build_property.CsWinRTAotWarningLevel =
build_property.TargetFramework = net8.0-windows
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =

View File

@@ -1 +1 @@
a0fbd74d0a18be93b28436cdb388e85f3ce80293828d38a6650fb93829c65adb
c88df38feec8b01c639946011c191049259962fd06e0ef319562d808b56f0f26

View File

@@ -24,3 +24,5 @@ D:\Workspace\GitHub\Ramitta-lib\Ramitta\obj\Debug\net8.0-windows\ref\Ramitta.dll
D:\Workspace\GitHub\Ramitta-lib\Ramitta\obj\Debug\net8.0-windows\Themes\vsStyle.baml
D:\Workspace\GitHub\Ramitta-lib\Ramitta\obj\Debug\net8.0-windows\Themes\CustomWindowStyle.baml
D:\Workspace\GitHub\Ramitta-lib\Ramitta\obj\Debug\net8.0-windows\Ramitta.csproj.AssemblyReference.cache
D:\Workspace\GitHub\Ramitta-lib\Ramitta\bin\Debug\net8.0-windows\Ramitta.runtimeconfig.json
D:\Workspace\GitHub\Ramitta-lib\Ramitta\obj\Debug\net8.0-windows\Ramitta.genruntimeconfig.cache

View File

@@ -0,0 +1 @@
73e155baf175caa5a9054a0594180c06e0494fd3fcb5f8ff8553471ebe3ba24f

View File

@@ -1 +1 @@
{"documents":{"D:\\Workspace\\GitHub\\Ramitta-lib\\*":"https://raw.githubusercontent.com/XerolySkinner/Ramitta-lib/31d3517ecb4d813a458f2555c82d2c2ef0042c94/*"}}
{"documents":{"D:\\Workspace\\GitHub\\Ramitta-lib\\*":"https://raw.githubusercontent.com/XerolySkinner/Ramitta-lib/e773052a85f9dccce87dd2af28c0c3c5dbd12950/*"}}

View File

@@ -0,0 +1,25 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e773052a85f9dccce87dd2af28c0c3c5dbd12950")]
[assembly: System.Reflection.AssemblyProductAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyTitleAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@@ -0,0 +1 @@
fab53866ff8d1289d044c284ff8adbc7a2d521efb64c7861f2571e9a0df2319c

View File

@@ -0,0 +1,21 @@
is_global = true
build_property.MvvmToolkitEnableINotifyPropertyChangingSupport = true
build_property._MvvmToolkitIsUsingWindowsRuntimePack = false
build_property.CsWinRTComponent =
build_property.CsWinRTAotOptimizerEnabled =
build_property.CsWinRTAotWarningLevel =
build_property.TargetFramework = net8.0-windows
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Ramitta
build_property.ProjectDir = D:\Workspace\GitHub\Ramitta-lib\Ramitta\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.CsWinRTUseWindowsUIXamlProjections = false
build_property.EffectiveAnalysisLevelStyle = 8.0
build_property.EnableCodeStyleSeverity =

View File

@@ -0,0 +1,6 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.Linq;
global using global::System.Threading;
global using global::System.Threading.Tasks;

View File

@@ -0,0 +1 @@
{"documents":{"D:\\Workspace\\GitHub\\Ramitta-lib\\*":"https://raw.githubusercontent.com/XerolySkinner/Ramitta-lib/e773052a85f9dccce87dd2af28c0c3c5dbd12950/*"}}

View File

@@ -0,0 +1,25 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e773052a85f9dccce87dd2af28c0c3c5dbd12950")]
[assembly: System.Reflection.AssemblyProductAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyTitleAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@@ -0,0 +1 @@
fab53866ff8d1289d044c284ff8adbc7a2d521efb64c7861f2571e9a0df2319c

View File

@@ -0,0 +1,21 @@
is_global = true
build_property.MvvmToolkitEnableINotifyPropertyChangingSupport = true
build_property._MvvmToolkitIsUsingWindowsRuntimePack = false
build_property.CsWinRTComponent =
build_property.CsWinRTAotOptimizerEnabled =
build_property.CsWinRTAotWarningLevel =
build_property.TargetFramework = net8.0-windows
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Ramitta
build_property.ProjectDir = D:\Workspace\GitHub\Ramitta-lib\Ramitta\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.CsWinRTUseWindowsUIXamlProjections = false
build_property.EffectiveAnalysisLevelStyle = 8.0
build_property.EnableCodeStyleSeverity =

View File

@@ -0,0 +1,6 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.Linq;
global using global::System.Threading;
global using global::System.Threading.Tasks;

View File

@@ -0,0 +1 @@
{"documents":{"D:\\Workspace\\GitHub\\Ramitta-lib\\*":"https://raw.githubusercontent.com/XerolySkinner/Ramitta-lib/e773052a85f9dccce87dd2af28c0c3c5dbd12950/*"}}

View File

@@ -0,0 +1,25 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e773052a85f9dccce87dd2af28c0c3c5dbd12950")]
[assembly: System.Reflection.AssemblyProductAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyTitleAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@@ -0,0 +1 @@
fab53866ff8d1289d044c284ff8adbc7a2d521efb64c7861f2571e9a0df2319c

View File

@@ -0,0 +1,21 @@
is_global = true
build_property.MvvmToolkitEnableINotifyPropertyChangingSupport = true
build_property._MvvmToolkitIsUsingWindowsRuntimePack = false
build_property.CsWinRTComponent =
build_property.CsWinRTAotOptimizerEnabled =
build_property.CsWinRTAotWarningLevel =
build_property.TargetFramework = net8.0-windows
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Ramitta
build_property.ProjectDir = D:\Workspace\GitHub\Ramitta-lib\Ramitta\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.CsWinRTUseWindowsUIXamlProjections = false
build_property.EffectiveAnalysisLevelStyle = 8.0
build_property.EnableCodeStyleSeverity =

View File

@@ -0,0 +1,6 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.Linq;
global using global::System.Threading;
global using global::System.Threading.Tasks;

View File

@@ -0,0 +1 @@
{"documents":{"D:\\Workspace\\GitHub\\Ramitta-lib\\*":"https://raw.githubusercontent.com/XerolySkinner/Ramitta-lib/e773052a85f9dccce87dd2af28c0c3c5dbd12950/*"}}

View File

@@ -0,0 +1,25 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e773052a85f9dccce87dd2af28c0c3c5dbd12950")]
[assembly: System.Reflection.AssemblyProductAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyTitleAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@@ -0,0 +1 @@
fab53866ff8d1289d044c284ff8adbc7a2d521efb64c7861f2571e9a0df2319c

View File

@@ -0,0 +1,21 @@
is_global = true
build_property.MvvmToolkitEnableINotifyPropertyChangingSupport = true
build_property._MvvmToolkitIsUsingWindowsRuntimePack = false
build_property.CsWinRTComponent =
build_property.CsWinRTAotOptimizerEnabled =
build_property.CsWinRTAotWarningLevel =
build_property.TargetFramework = net8.0-windows
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Ramitta
build_property.ProjectDir = D:\Workspace\GitHub\Ramitta-lib\Ramitta\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.CsWinRTUseWindowsUIXamlProjections = false
build_property.EffectiveAnalysisLevelStyle = 8.0
build_property.EnableCodeStyleSeverity =

View File

@@ -0,0 +1,6 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.Linq;
global using global::System.Threading;
global using global::System.Threading.Tasks;

View File

@@ -0,0 +1 @@
{"documents":{"D:\\Workspace\\GitHub\\Ramitta-lib\\*":"https://raw.githubusercontent.com/XerolySkinner/Ramitta-lib/e773052a85f9dccce87dd2af28c0c3c5dbd12950/*"}}

View File

@@ -0,0 +1,25 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e773052a85f9dccce87dd2af28c0c3c5dbd12950")]
[assembly: System.Reflection.AssemblyProductAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyTitleAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@@ -0,0 +1 @@
fab53866ff8d1289d044c284ff8adbc7a2d521efb64c7861f2571e9a0df2319c

View File

@@ -0,0 +1,21 @@
is_global = true
build_property.MvvmToolkitEnableINotifyPropertyChangingSupport = true
build_property._MvvmToolkitIsUsingWindowsRuntimePack = false
build_property.CsWinRTComponent =
build_property.CsWinRTAotOptimizerEnabled =
build_property.CsWinRTAotWarningLevel =
build_property.TargetFramework = net8.0-windows
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Ramitta
build_property.ProjectDir = D:\Workspace\GitHub\Ramitta-lib\Ramitta\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.CsWinRTUseWindowsUIXamlProjections = false
build_property.EffectiveAnalysisLevelStyle = 8.0
build_property.EnableCodeStyleSeverity =

View File

@@ -0,0 +1,6 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.Linq;
global using global::System.Threading;
global using global::System.Threading.Tasks;

View File

@@ -0,0 +1 @@
{"documents":{"D:\\Workspace\\GitHub\\Ramitta-lib\\*":"https://raw.githubusercontent.com/XerolySkinner/Ramitta-lib/e773052a85f9dccce87dd2af28c0c3c5dbd12950/*"}}

View File

@@ -0,0 +1,25 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e773052a85f9dccce87dd2af28c0c3c5dbd12950")]
[assembly: System.Reflection.AssemblyProductAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyTitleAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@@ -0,0 +1 @@
fab53866ff8d1289d044c284ff8adbc7a2d521efb64c7861f2571e9a0df2319c

View File

@@ -0,0 +1,16 @@
is_global = true
build_property.TargetFramework = net8.0-windows
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Ramitta
build_property.ProjectDir = D:\Workspace\GitHub\Ramitta-lib\Ramitta\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.CsWinRTUseWindowsUIXamlProjections = false
build_property.EffectiveAnalysisLevelStyle = 8.0
build_property.EnableCodeStyleSeverity =

View File

@@ -0,0 +1,6 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.Linq;
global using global::System.Threading;
global using global::System.Threading.Tasks;

View File

@@ -0,0 +1 @@
{"documents":{"D:\\Workspace\\GitHub\\Ramitta-lib\\*":"https://raw.githubusercontent.com/XerolySkinner/Ramitta-lib/e773052a85f9dccce87dd2af28c0c3c5dbd12950/*"}}

View File

@@ -0,0 +1,25 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e773052a85f9dccce87dd2af28c0c3c5dbd12950")]
[assembly: System.Reflection.AssemblyProductAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyTitleAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@@ -0,0 +1 @@
fab53866ff8d1289d044c284ff8adbc7a2d521efb64c7861f2571e9a0df2319c

View File

@@ -0,0 +1,21 @@
is_global = true
build_property.MvvmToolkitEnableINotifyPropertyChangingSupport = true
build_property._MvvmToolkitIsUsingWindowsRuntimePack = false
build_property.CsWinRTComponent =
build_property.CsWinRTAotOptimizerEnabled =
build_property.CsWinRTAotWarningLevel =
build_property.TargetFramework = net8.0-windows
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Ramitta
build_property.ProjectDir = D:\Workspace\GitHub\Ramitta-lib\Ramitta\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.CsWinRTUseWindowsUIXamlProjections = false
build_property.EffectiveAnalysisLevelStyle = 8.0
build_property.EnableCodeStyleSeverity =

View File

@@ -0,0 +1,6 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.Linq;
global using global::System.Threading;
global using global::System.Threading.Tasks;

View File

@@ -0,0 +1 @@
{"documents":{"D:\\Workspace\\GitHub\\Ramitta-lib\\*":"https://raw.githubusercontent.com/XerolySkinner/Ramitta-lib/e773052a85f9dccce87dd2af28c0c3c5dbd12950/*"}}

View File

@@ -0,0 +1,25 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e773052a85f9dccce87dd2af28c0c3c5dbd12950")]
[assembly: System.Reflection.AssemblyProductAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyTitleAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@@ -0,0 +1 @@
fab53866ff8d1289d044c284ff8adbc7a2d521efb64c7861f2571e9a0df2319c

View File

@@ -0,0 +1,21 @@
is_global = true
build_property.MvvmToolkitEnableINotifyPropertyChangingSupport = true
build_property._MvvmToolkitIsUsingWindowsRuntimePack = false
build_property.CsWinRTComponent =
build_property.CsWinRTAotOptimizerEnabled =
build_property.CsWinRTAotWarningLevel =
build_property.TargetFramework = net8.0-windows
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Ramitta
build_property.ProjectDir = D:\Workspace\GitHub\Ramitta-lib\Ramitta\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.CsWinRTUseWindowsUIXamlProjections = false
build_property.EffectiveAnalysisLevelStyle = 8.0
build_property.EnableCodeStyleSeverity =

View File

@@ -0,0 +1,6 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.Linq;
global using global::System.Threading;
global using global::System.Threading.Tasks;

View File

@@ -0,0 +1 @@
{"documents":{"D:\\Workspace\\GitHub\\Ramitta-lib\\*":"https://raw.githubusercontent.com/XerolySkinner/Ramitta-lib/e773052a85f9dccce87dd2af28c0c3c5dbd12950/*"}}

View File

@@ -0,0 +1,25 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+e773052a85f9dccce87dd2af28c0c3c5dbd12950")]
[assembly: System.Reflection.AssemblyProductAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyTitleAttribute("Ramitta")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// 由 MSBuild WriteCodeFragment 类生成。

Some files were not shown because too many files have changed in this diff Show More