diff --git a/Application/api/AIStudio.Wpf.Service/AIStudio.Wpf.Service.csproj b/Application/api/AIStudio.Wpf.Service/AIStudio.Wpf.Service.csproj
deleted file mode 100644
index bb7566d6fdd9039e427b3c4ec6116576c55c4043..0000000000000000000000000000000000000000
--- a/Application/api/AIStudio.Wpf.Service/AIStudio.Wpf.Service.csproj
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
- net5-windows
-
-
-
-
-
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Application/api/AIStudio.Wpf.Service/AppClient/HttpClients/AppSecretHeader.cs b/Application/api/AIStudio.Wpf.Service/AppClient/HttpClients/AppSecretHeader.cs
deleted file mode 100644
index 1e316828cff9ff113734ae1578fef56cfed5113c..0000000000000000000000000000000000000000
--- a/Application/api/AIStudio.Wpf.Service/AppClient/HttpClients/AppSecretHeader.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Security.Cryptography;
-using System.Text;
-using AIStudio.Core;
-
-namespace AIStudio.Wpf.Service.AppClient.HttpClients
-{
- public class AppSecretHeader: IAppHeader
- {
- public string AppId { get; set; }
- public string AppSecret { get; set; }
- public string Body { get; set; } = "";
-
- public AppSecretHeader(string appId, string appSecret)
- {
- AppId = appId;
- AppSecret = appSecret;
- }
-
- public Dictionary SetHeader()
- {
- Dictionary header = new Dictionary();
- string time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
- string guid = Guid.NewGuid().ToString();
- header.Add("appId", AppId);
- header.Add("time", time);
- header.Add("guid", guid);
- string sign = BuildApiSign(AppId, AppSecret, guid, Convert.ToDateTime(time), Body);
- header.Add("sign", sign);
-
- return header;
- }
-
- ///
- /// 生成接口签名sign
- /// 注:md5(appId+time+guid+body+appSecret)
- ///
- /// 应用Id
- /// 应用密钥
- /// 唯一GUID
- /// 时间
- /// 请求体
- ///
- public static string BuildApiSign(string appId, string appSecret, string guid, DateTime time, string body)
- {
- return $"{appId}{time.ToString("yyyy-MM-dd HH:mm:ss")}{guid}{body}{appSecret}".ToMD5String();
- }
-
- }
-
-
-}
diff --git a/Application/api/AIStudio.Wpf.Service/AppClient/HttpClients/AppTokenHeader.cs b/Application/api/AIStudio.Wpf.Service/AppClient/HttpClients/AppTokenHeader.cs
deleted file mode 100644
index 92029c44a799041861b6532f31cbcf3a099d67fd..0000000000000000000000000000000000000000
--- a/Application/api/AIStudio.Wpf.Service/AppClient/HttpClients/AppTokenHeader.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using System.Collections.Generic;
-
-namespace AIStudio.Wpf.Service.AppClient.HttpClients
-{
- public class AppTokenHeader : IAppHeader
- {
- public string UserName { get; set; }
- public string Password { get; set; }
- public string Token { get; set; }
-
- public AppTokenHeader(string userName, string password)
- {
- UserName = userName;
- Password = password;
- }
-
- public Dictionary SetHeader()
- {
- Dictionary header = new Dictionary();
- header.Add("Authorization", string.Format("Bearer {0}", Token));
-
- return header;
- }
- }
-}
diff --git a/Application/api/AIStudio.Wpf.Service/AppClient/HttpClients/HttpClientHelper.Protobuf.cs b/Application/api/AIStudio.Wpf.Service/AppClient/HttpClients/HttpClientHelper.Protobuf.cs
deleted file mode 100644
index 89e18acd570b13b876fd176b4df852bdc0b017bd..0000000000000000000000000000000000000000
--- a/Application/api/AIStudio.Wpf.Service/AppClient/HttpClients/HttpClientHelper.Protobuf.cs
+++ /dev/null
@@ -1,81 +0,0 @@
-using AIStudio.Core;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Net.Http;
-using System.Net.Http.Headers;
-using System.Threading.Tasks;
-using Zaabee.Protobuf;
-
-namespace AIStudio.Wpf.Service.AppClient.HttpClients
-{
- public partial class HttpClientHelper
- {
- ///
- /// 使用post方法异步请求
- ///
- /// 目标链接
- /// 发送的参数字符串,只能用json
- /// 返回的字符串
- public async Task PostAsyncProto(string url, object obj, TimeSpan timeSpan, Dictionary header = null)
- {
- HttpClient client = httpClientFactory.CreateClient();
- client.Timeout = timeSpan;
-
- var stream = obj.ToStream();
- var httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, url)
- {
- Content = new StreamContent(stream)
- };
- httpRequestMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/x-protobuf");
- httpRequestMessage.Headers.Add("Accept", "application/x-protobuf");
- if (header != null)
- {
- foreach (var item in header)
- {
- httpRequestMessage.Headers.Add(item.Key, item.Value);
- }
- }
-
- T responseBody;
- string resData = string.Empty;
- DateTime startTime = DateTime.Now;
-
- try
- {
- HttpResponseMessage response = await client.SendAsync(httpRequestMessage);
- response.EnsureSuccessStatusCode();
- var responseStream = await response.Content.ReadAsStreamAsync();
- responseBody = responseStream.FromStream();
- resData = responseBody.ToString();
- }
- catch (Exception ex)
- {
- resData = $"异常:{ExceptionHelper.GetExceptionAllMsg(ex)}";
-
- throw ex;
- }
- finally
- {
- var time = DateTime.Now - startTime;
- if (resData?.Length > 1000)
- {
- resData = new string(resData.Copy(0, 1000).ToArray());
- resData += "......";
- }
-
- string log =
-$@"方向:请求外部接口
-url:{url}
-method:{"Post"}
-耗时:{(int)time.TotalMilliseconds}ms
-
-返回:{resData}
-";
- HandleLog?.Invoke(log);
- }
-
- return responseBody;
- }
- }
-}
diff --git a/Application/api/AIStudio.Wpf.Service/AppClient/HttpClients/HttpClientHelper.cs b/Application/api/AIStudio.Wpf.Service/AppClient/HttpClients/HttpClientHelper.cs
deleted file mode 100644
index e697dd78cb22640cf6dd4217881a0a87074db787..0000000000000000000000000000000000000000
--- a/Application/api/AIStudio.Wpf.Service/AppClient/HttpClients/HttpClientHelper.cs
+++ /dev/null
@@ -1,300 +0,0 @@
-using AIStudio.Core;
-using Microsoft.Extensions.DependencyInjection;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Net.Http;
-using System.Threading.Tasks;
-
-namespace AIStudio.Wpf.Service.AppClient.HttpClients
-{
- public partial class HttpClientHelper
- {
- private static HttpClientHelper instance = null;
- private static object obj = new object();
- private IHttpClientFactory httpClientFactory;
-
- public static HttpClientHelper Instance
- {
- get
- {
- if (instance == null)
- {
- lock (obj)
- {
- if (instance == null)
- {
- instance = new HttpClientHelper();
- var serviceProvider = new ServiceCollection().AddHttpClient().BuildServiceProvider();
- instance.httpClientFactory = serviceProvider.GetService();
- }
- }
- }
- return instance;
- }
- }
-
- ///
- /// 记录日志
- ///
- public Action HandleLog { get; set; }
-
-
- ///
- /// 使用post方法异步请求
- ///
- /// 目标链接
- /// 发送的参数字符串,只能用json
- /// 返回的字符串
- public async Task PostAsyncJson(string url, string json, TimeSpan timeSpan, Dictionary header = null)
- {
- HttpClient client = httpClientFactory.CreateClient();
- client.Timeout = timeSpan;
- HttpContent content = new StringContent(json);
- if (header != null)
- {
- client.DefaultRequestHeaders.Clear();
- foreach (var item in header)
- {
- client.DefaultRequestHeaders.Add(item.Key, item.Value);
- }
- }
- content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
-
- string responseBody = string.Empty;
- string resData = string.Empty;
- DateTime startTime = DateTime.Now;
-
- try
- {
- HttpResponseMessage response = await client.PostAsync(url, content);
- response.EnsureSuccessStatusCode();
- responseBody = await response.Content.ReadAsStringAsync();
- resData = responseBody;
- }
- catch (Exception ex)
- {
- resData = $"异常:{ExceptionHelper.GetExceptionAllMsg(ex)}";
-
- throw ex;
- }
- finally
- {
- var time = DateTime.Now - startTime;
- if (resData?.Length > 1000)
- {
- resData = new string(resData.Copy(0, 1000).ToArray());
- resData += "......";
- }
-
- string log =
-$@"方向:请求外部接口
-url:{url}
-method:{"Post"}
-耗时:{(int)time.TotalMilliseconds}ms
-
-返回:{resData}
-";
- HandleLog?.Invoke(log);
- }
-
- return responseBody;
- }
-
- ///
- /// 使用post方法异步请求
- ///
- /// 目标链接
- /// 发送的参数字符串
- /// 返回的字符串
- public async Task PostAsync(string url, HttpContent content, TimeSpan timeSpan, Dictionary header = null)
- {
- //HttpClient client = new HttpClient(new HttpClientHandler() { UseCookies = false });
- HttpClient client = httpClientFactory.CreateClient();
- client.Timeout = timeSpan;
- if (header != null)
- {
- client.DefaultRequestHeaders.Clear();
- foreach (var item in header)
- {
- client.DefaultRequestHeaders.Add(item.Key, item.Value);
- }
- }
-
- string responseBody = string.Empty;
- string resData = string.Empty;
- DateTime startTime = DateTime.Now;
-
- try
- {
- HttpResponseMessage response = await client.PostAsync(url, content);
- response.EnsureSuccessStatusCode();
- responseBody = await response.Content.ReadAsStringAsync();
- resData = responseBody;
- }
- catch (Exception ex)
- {
- resData = $"异常:{ExceptionHelper.GetExceptionAllMsg(ex)}";
-
- throw ex;
- }
- finally
- {
- var time = DateTime.Now - startTime;
- if (resData?.Length > 1000)
- {
- resData = new string(resData.Copy(0, 1000).ToArray());
- resData += "......";
- }
-
- string log =
-$@"方向:请求外部接口
-url:{url}
-method:{"Post"}
-耗时:{(int)time.TotalMilliseconds}ms
-
-返回:{resData}
-";
- HandleLog?.Invoke(log);
- }
-
- return responseBody;
- }
-
- ///
- /// 使用post方法异步请求
- ///
- /// 目标链接
- /// 发送的参数字符串
- /// 返回的字符串
- public async Task PostAsync(string url, string data, TimeSpan timeSpan, Dictionary header = null)
- {
- //HttpClient client = new HttpClient(new HttpClientHandler() { UseCookies = false });
- HttpClient client = httpClientFactory.CreateClient();
- client.Timeout = timeSpan;
- HttpContent content = new StringContent(data);
- if (header != null)
- {
- client.DefaultRequestHeaders.Clear();
- foreach (var item in header)
- {
- client.DefaultRequestHeaders.Add(item.Key, item.Value);
- }
- }
-
- string responseBody = string.Empty;
- string resData = string.Empty;
- DateTime startTime = DateTime.Now;
-
- try
- {
- HttpResponseMessage response = await client.PostAsync(url, content);
- response.EnsureSuccessStatusCode();
- responseBody = await response.Content.ReadAsStringAsync();
- }
- catch (Exception ex)
- {
- resData = $"异常:{ExceptionHelper.GetExceptionAllMsg(ex)}";
-
- throw ex;
- }
- finally
- {
- var time = DateTime.Now - startTime;
- if (resData?.Length > 1000)
- {
- resData = new string(resData.Copy(0, 1000).ToArray());
- resData += "......";
- }
-
- string log =
-$@"方向:请求外部接口
-url:{url}
-method:{"Post"}
-耗时:{(int)time.TotalMilliseconds}ms
-
-返回:{resData}
-";
- HandleLog?.Invoke(log);
- }
-
- return responseBody;
- }
-
- public async Task GetByteArrayAsync(string uri, TimeSpan timeSpan, Dictionary header = null)
- {
- HttpClient client = httpClientFactory.CreateClient();
- client.Timeout = timeSpan;
- if (header != null)
- {
- client.DefaultRequestHeaders.Clear();
- foreach (var item in header)
- {
- client.DefaultRequestHeaders.Add(item.Key, item.Value);
- }
- }
-
- byte[] urlContents = await client.GetByteArrayAsync(uri);
- return urlContents;
- }
-
- ///
- /// 使用get方法异步请求
- ///
- /// 目标链接
- /// 返回的字符串
- public async Task GetAsync(string url, TimeSpan timeSpan, Dictionary header = null)
- {
-
- HttpClient client = new HttpClient(new HttpClientHandler() { UseCookies = false });
- client.Timeout = timeSpan;
- if (header != null)
- {
- client.DefaultRequestHeaders.Clear();
- foreach (var item in header)
- {
- client.DefaultRequestHeaders.Add(item.Key, item.Value);
- }
- }
-
- string responseBody = string.Empty;
- string resData = string.Empty;
- DateTime startTime = DateTime.Now;
-
- try
- {
- HttpResponseMessage response = await client.GetAsync(url);
- response.EnsureSuccessStatusCode();//用来抛异常的
- responseBody = await response.Content.ReadAsStringAsync();
- }
- catch (Exception ex)
- {
- resData = $"异常:{ExceptionHelper.GetExceptionAllMsg(ex)}";
-
- throw ex;
- }
- finally
- {
- var time = DateTime.Now - startTime;
- if (resData?.Length > 1000)
- {
- resData = new string(resData.Copy(0, 1000).ToArray());
- resData += "......";
- }
-
- string log =
-$@"方向:请求外部接口
-url:{url}
-method:{"Get"}
-耗时:{(int)time.TotalMilliseconds}ms
-
-返回:{resData}
-";
- HandleLog?.Invoke(log);
- }
-
- return responseBody;
- }
-
- }
-}
diff --git a/Application/api/AIStudio.Wpf.Service/AppClient/HttpClients/IAppHeader.cs b/Application/api/AIStudio.Wpf.Service/AppClient/HttpClients/IAppHeader.cs
deleted file mode 100644
index e366e126cfc64fa976a82f9446f6baecbc0bae03..0000000000000000000000000000000000000000
--- a/Application/api/AIStudio.Wpf.Service/AppClient/HttpClients/IAppHeader.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using System.Collections.Generic;
-
-namespace AIStudio.Wpf.Service.AppClient.HttpClients
-{
- public interface IAppHeader
- {
- Dictionary SetHeader();
- }
-}
diff --git a/Application/api/AIStudio.Wpf.Service/AppClient/NetworkTransfer.Protobuf.cs b/Application/api/AIStudio.Wpf.Service/AppClient/NetworkTransfer.Protobuf.cs
deleted file mode 100644
index b2e1da8453776209e45bd926b9409303e74560ff..0000000000000000000000000000000000000000
--- a/Application/api/AIStudio.Wpf.Service/AppClient/NetworkTransfer.Protobuf.cs
+++ /dev/null
@@ -1,25 +0,0 @@
-using AIStudio.Core;
-using AIStudio.Wpf.Service.AppClient.HttpClients;
-using AIStudio.Wpf.Service.AppClient.ProtobufModels;
-using System.Threading.Tasks;
-using Zaabee.Protobuf;
-
-namespace AIStudio.Wpf.Service.AppClient
-{
- public partial class NetworkTransfer
- {
- public async Task> GetData_Protobuf(string url, object obj)
- {
- if (!url.StartsWith("http"))
- {
- url = Url + url;
- }
-
- var result_protobuf = await HttpClientHelper.Instance.PostAsyncProto(url, obj, TimeSpan, Header.SetHeader());
-
- AjaxResult result = result_protobuf.ChangeType>();
- result.Data = result_protobuf.Data.FromBytes();
- return result;
- }
- }
-}
diff --git a/Application/api/AIStudio.Wpf.Service/AppClient/NetworkTransfer.cs b/Application/api/AIStudio.Wpf.Service/AppClient/NetworkTransfer.cs
deleted file mode 100644
index f2c0b600176fa4d95cb0787d2f1da1eb20c4eab3..0000000000000000000000000000000000000000
--- a/Application/api/AIStudio.Wpf.Service/AppClient/NetworkTransfer.cs
+++ /dev/null
@@ -1,144 +0,0 @@
-using AIStudio.Core;
-using AIStudio.Wpf.Service.AppClient.HttpClients;
-using Newtonsoft.Json;
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Net.Http;
-using System.Threading.Tasks;
-
-namespace AIStudio.Wpf.Service.AppClient
-{
- public partial class NetworkTransfer
- {
- private static NetworkTransfer instance = null;
- private static object obj = new object();
-
- public static NetworkTransfer Instance
- {
- get
- {
- if (instance == null)
- {
- lock (obj)
- {
- if (instance == null)
- {
- instance = new NetworkTransfer();
- }
- }
- }
- return instance;
- }
- }
-
- public string Url { get; set; }
- public IAppHeader Header { get; set; }
- public TimeSpan TimeSpan { get; set; }
- public void Init(string url, IAppHeader header, TimeSpan timeout)
- {
- Url = url;
- Header = header;
- TimeSpan = timeout;
- }
-
- public async Task GetToken()
- {
- if (Header is AppTokenHeader)
- {
- AppTokenHeader header = Header as AppTokenHeader;
-
- var content = await HttpClientHelper.Instance.PostAsyncJson((string.Format("{0}/Base_Manage/Home/SubmitLogin", Url)), JsonConvert.SerializeObject(new { userName = header.UserName, password = header.Password }), TimeSpan);
- var result = JsonConvert.DeserializeObject(content);
- header.Token = result.Data as string;
-
- return result;
- }
-
- return null;
- }
-
- public async Task> GetData(string url, Dictionary data)
- {
- if (!url.StartsWith("http"))
- {
- url = Url + url;
- }
- MultipartFormDataContent stringContent = null;
- if (data != null)
- {
- stringContent = new MultipartFormDataContent();
-
- foreach (var item in data)
- {
- stringContent.Add(new StringContent(item.Value), item.Key);
- }
- }
- var content = await HttpClientHelper.Instance.PostAsync(url, content: stringContent, TimeSpan, Header.SetHeader());
- var result = JsonConvert.DeserializeObject>(content);
- return result;
- }
-
- public async Task> GetData(string url, string json)
- {
- if (!url.StartsWith("http"))
- {
- url = Url + url;
- }
- var content = await HttpClientHelper.Instance.PostAsyncJson(url, json, TimeSpan, Header.SetHeader());
- var result = JsonConvert.DeserializeObject>(content);
- return result;
- }
-
- public async Task UploadFile(string path, string fileName, string qq)
- {
- var data = new MultipartFormDataContent();
- //添加字符串参数,参数名为qq
- data.Add(new StringContent(qq), "qq");
-
- //添加文件参数,参数名为files,文件名为123.png
- data.Add(new ByteArrayContent(System.IO.File.ReadAllBytes(path)), "file", fileName);
-
- var content = await HttpClientHelper.Instance.PostAsync(string.Format("{0}/api/FileServer/SaveFile", Url), data, TimeSpan, Header.SetHeader());
- var result = JsonConvert.DeserializeObject(content);
- return result;
- }
-
- public async Task DownLoadFile(string fullpath, string savepath)
- {
- FileStream fs = null;
- try
- {
- var content = await HttpClientHelper.Instance.GetByteArrayAsync(fullpath, TimeSpan);
- fs = new FileStream(savepath, FileMode.Create);
- fs.Write(content, 0, content.Length);
- return new AjaxResult() { Success = true };
- }
- catch (Exception ex)
- {
- return new AjaxResult() { Success = false, Msg = ex.ToString() };
- }
- finally
- {
- if (fs != null)
- fs.Close();
- }
- }
-
- public async Task UploadFileByForm(string path)
- {
- var data = new MultipartFormDataContent();
-
- FileStream fStream = File.Open(path, FileMode.Open, FileAccess.Read);
- data.Add(new StreamContent(fStream, (int)fStream.Length), "file", Path.GetFileName(path));
-
- var content = await HttpClientHelper.Instance.PostAsync(string.Format("{0}/Base_Manage/Upload/UploadFileByForm", Url), data, TimeSpan, Header.SetHeader());
- var result = JsonConvert.DeserializeObject(content);
-
- fStream.Close();
-
-
- return result;
- }
- }
-}
diff --git a/Application/api/AIStudio.Wpf.Service/AppClient/ProtobufModels/AjaxResult_Protobuf.cs b/Application/api/AIStudio.Wpf.Service/AppClient/ProtobufModels/AjaxResult_Protobuf.cs
deleted file mode 100644
index 9087eb55d3c44f2f8d6bbc5a73f582f5f056fe91..0000000000000000000000000000000000000000
--- a/Application/api/AIStudio.Wpf.Service/AppClient/ProtobufModels/AjaxResult_Protobuf.cs
+++ /dev/null
@@ -1,41 +0,0 @@
-using Newtonsoft.Json;
-using ProtoBuf;
-using System;
-using System.Collections.Generic;
-
-namespace AIStudio.Wpf.Service.AppClient.ProtobufModels
-{
- ///
- /// 分页返回结果
- ///
- ///
- [ProtoContract]
- public class AjaxResult_Protobuf
- { ///
- /// 是否成功
- ///
- [ProtoMember(1)]
- public bool Success { get; set; }
-
- ///
- /// 错误代码
- ///
- [ProtoMember(2)]
- public int ErrorCode { get; set; }
-
- ///
- /// 返回消息
- ///
- [ProtoMember(3)]
- public string Msg { get; set; }
-
- [ProtoMember(4)]
- [JsonIgnore]
- public byte[] Data { get; set; }
- ///
- /// 总记录数
- ///
- [ProtoMember(5)]
- public int Total { get; set; }
- }
-}
diff --git a/Application/api/AIStudio.Wpf.Service/AppClient/ProtobufModels/Delete_Protobuf.cs b/Application/api/AIStudio.Wpf.Service/AppClient/ProtobufModels/Delete_Protobuf.cs
deleted file mode 100644
index bc8f9cb2e96d79815d121b367766ed4c454f2fa4..0000000000000000000000000000000000000000
--- a/Application/api/AIStudio.Wpf.Service/AppClient/ProtobufModels/Delete_Protobuf.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using ProtoBuf;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace AIStudio.Wpf.Service.AppClient.ProtobufModels
-{
- [ProtoContract]
- public class Delete_Protobuf
- {
- [ProtoMember(1)]
- public List ids { get; set; }
- }
-}
diff --git a/Application/api/AIStudio.Wpf.Service/AppClient/ProtobufModels/IdInputDTO_Protobuf.cs b/Application/api/AIStudio.Wpf.Service/AppClient/ProtobufModels/IdInputDTO_Protobuf.cs
deleted file mode 100644
index ca8267aa3dad7bf66775da3252797c39486d91f9..0000000000000000000000000000000000000000
--- a/Application/api/AIStudio.Wpf.Service/AppClient/ProtobufModels/IdInputDTO_Protobuf.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using ProtoBuf;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace AIStudio.Wpf.Service.AppClient.ProtobufModels
-{
- [ProtoContract]
- public class IdInputDTO_Protobuf
- {
- [ProtoMember(1)]
- public string id { get; set; }
- }
-}
diff --git a/Application/api/AIStudio.Wpf.Service/AppClient/ProtobufModels/PageInput_Protobuf.cs b/Application/api/AIStudio.Wpf.Service/AppClient/ProtobufModels/PageInput_Protobuf.cs
deleted file mode 100644
index a991e54d86701b3df7167e5baa1fc33d1bce379c..0000000000000000000000000000000000000000
--- a/Application/api/AIStudio.Wpf.Service/AppClient/ProtobufModels/PageInput_Protobuf.cs
+++ /dev/null
@@ -1,43 +0,0 @@
-using ProtoBuf;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace AIStudio.Wpf.Service.AppClient.ProtobufModels
-{
- [ProtoContract]
- public class PageInput_Protobuf
- {
- ///
- /// 当前页码
- ///
- [ProtoMember(1)]
- public int PageIndex { get; set; } = 1;
-
- ///
- /// 每页行数
- ///
- [ProtoMember(2)]
- public int PageRows { get; set; } = int.MaxValue;
-
- ///
- /// 排序列
- ///
- [ProtoMember(3)]
- public string SortField { get; set; } = "Id";
-
- ///
- /// 排序类型
- ///
- [ProtoMember(4)]
- public string SortType { get; set; } = "asc";
-
- [ProtoMember(5)]
- public Search_Protobuf Search { get; set; }
-
- [ProtoMember(6)]
- public Dictionary SearchKeyValues { get; set; }
- }
-}
diff --git a/Application/api/AIStudio.Wpf.Service/AppClient/ProtobufModels/Search_Protobuf.cs b/Application/api/AIStudio.Wpf.Service/AppClient/ProtobufModels/Search_Protobuf.cs
deleted file mode 100644
index f58acbcc347910d01064a6b1796793840abeba5b..0000000000000000000000000000000000000000
--- a/Application/api/AIStudio.Wpf.Service/AppClient/ProtobufModels/Search_Protobuf.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using ProtoBuf;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace AIStudio.Wpf.Service.AppClient.ProtobufModels
-{
- [ProtoContract]
- public class Search_Protobuf
- {
- [ProtoMember(1)]
- public string keyword { get; set; }
- [ProtoMember(2)]
- public string condition { get; set; }
- }
-}
diff --git a/Application/api/AIStudio.Wpf.ServiceTest/AIStudio.Wpf.ServiceTest.csproj b/Application/api/AIStudio.Wpf.ServiceTest/AIStudio.Wpf.ServiceTest.csproj
deleted file mode 100644
index cc07e8e0947509d98a51b2dd315e80c3ebc5bfd2..0000000000000000000000000000000000000000
--- a/Application/api/AIStudio.Wpf.ServiceTest/AIStudio.Wpf.ServiceTest.csproj
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
- Exe
- netcoreapp3.1;net472
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Application/api/AIStudio.Wpf.ServiceTest/Admin.db b/Application/api/AIStudio.Wpf.ServiceTest/Admin.db
deleted file mode 100644
index 387edd9999ca40b7c74d49c6d9e0b0d62fdf39f5..0000000000000000000000000000000000000000
Binary files a/Application/api/AIStudio.Wpf.ServiceTest/Admin.db and /dev/null differ
diff --git a/Application/api/AIStudio.Wpf.ServiceTest/Program.cs b/Application/api/AIStudio.Wpf.ServiceTest/Program.cs
deleted file mode 100644
index c000198eff660381236e0c6d7009f5455a11fc58..0000000000000000000000000000000000000000
--- a/Application/api/AIStudio.Wpf.ServiceTest/Program.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using AIStudio.Wpf.Business;
-
-namespace AIStudio.Wpf.ServiceTest
-{
- class Program
- {
- static void Main(string[] args)
- {
- ApiDataProvider dataProvider = new ApiDataProvider("http://localhost:5000", "Admin", "Admin", 1);
- var token = dataProvider.GetToken().Result;
- }
- }
-}
diff --git "a/Application/api/AIStudio.Wpf.ServiceTest/\346\225\260\346\215\256\345\272\223\350\277\201\347\247\273.txt" "b/Application/api/AIStudio.Wpf.ServiceTest/\346\225\260\346\215\256\345\272\223\350\277\201\347\247\273.txt"
deleted file mode 100644
index 83b093c404307e99cdfae06cc236fdfa401a5ad6..0000000000000000000000000000000000000000
--- "a/Application/api/AIStudio.Wpf.ServiceTest/\346\225\260\346\215\256\345\272\223\350\277\201\347\247\273.txt"
+++ /dev/null
@@ -1,3 +0,0 @@
-一、迁移项目( 使用 Package Manager Console ):
- 3、Add-Migration InitialCreate
- 6、Update-Database
\ No newline at end of file
diff --git a/Application/interface/AIStudio.Wpf.IBussiness/AIStudio.Wpf.IBusiness/AIStudio.Wpf.IBusiness.csproj b/Application/interface/AIStudio.Wpf.IBussiness/AIStudio.Wpf.IBusiness/AIStudio.Wpf.IBusiness.csproj
deleted file mode 100644
index f208d303c9811fa05807ef8f72685b8ebb536a37..0000000000000000000000000000000000000000
--- a/Application/interface/AIStudio.Wpf.IBussiness/AIStudio.Wpf.IBusiness/AIStudio.Wpf.IBusiness.csproj
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- net5.0
-
-
-
diff --git a/Application/interface/AIStudio.Wpf.IBussiness/AIStudio.Wpf.IBusiness/Class1.cs b/Application/interface/AIStudio.Wpf.IBussiness/AIStudio.Wpf.IBusiness/Class1.cs
deleted file mode 100644
index 1ab08fe3e7f16c8ed7fbbefb336c5ee425dc3c23..0000000000000000000000000000000000000000
--- a/Application/interface/AIStudio.Wpf.IBussiness/AIStudio.Wpf.IBusiness/Class1.cs
+++ /dev/null
@@ -1,8 +0,0 @@
-using System;
-
-namespace AIStudio.Wpf.IBusiness
-{
- public class Class1
- {
- }
-}
diff --git a/Page/AIStudio.Wpf.BasePage/ViewModels/BaseEditWithOptionViewModel.cs b/Page/AIStudio.Wpf.BasePage/ViewModels/BaseEditWithOptionViewModel.cs
index 8a2a2823f70acd349ac76515746552b879fb0787..b9e4506ba2ad83f1dd13b267ce9abe6fcc2d43c2 100644
--- a/Page/AIStudio.Wpf.BasePage/ViewModels/BaseEditWithOptionViewModel.cs
+++ b/Page/AIStudio.Wpf.BasePage/ViewModels/BaseEditWithOptionViewModel.cs
@@ -131,7 +131,6 @@ namespace AIStudio.Wpf.BasePage.ViewModels
}
}
-
protected BaseEditWithOptionViewModel()
{
diff --git a/categories.txt b/categories.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9d31c13b5c3fb1c61126af25213ab853854cb2b0
--- /dev/null
+++ b/categories.txt
@@ -0,0 +1,1219 @@
+ ļ PATH б
+кΪ 4809-0636
+F:.
+Application
+ AIStudio.Wpf.Business
+ AOP
+ bin
+ Debug
+ net6-windows
+ ref
+ Bussiness
+ IBussiness
+ ILogger
+ Logger
+ obj
+ Debug
+ net6-windows
+ ref
+ refint
+ AIStudio.Wpf.Client
+ bin
+ Debug
+ net6-windows
+ ar
+ archives
+ ca-ES
+ cs
+ cs-CZ
+ da
+ DataGridInfos
+ de
+ es
+ fr
+ hu
+ Images
+ Gifs
+ it
+ ja
+ ja-JP
+ ko
+ logs
+ 2022-10-05
+ 2022-10-06
+ 2022-10-07
+ 2022-10-08
+ 2022-10-16
+ 2022-10-23
+ 2022-10-24
+ 2022-10-26
+ 2022-10-29
+ 2022-11-05
+ 2022-11-06
+ 2022-11-12
+ 2022-11-13
+ 2022-11-15
+ 2022-11-17
+ 2022-11-18
+ 2022-11-25
+ 2022-11-26
+ 2022-12-03
+ 2022-12-05
+ 2022-12-06
+ 2022-12-07
+ 2022-12-08
+ 2022-12-09
+ 2022-12-11
+ 2022-12-12
+ 2022-12-14
+ 2022-12-15
+ 2022-12-16
+ 2022-12-17
+ 2022-12-18
+ 2022-12-19
+ 2022-12-20
+ 2022-12-23
+ 2022-12-27
+ 2022-12-28
+ 2022-12-29
+ 2023-01-01
+ 2023-01-02
+ nl
+ nl-BE
+ pl
+ pt
+ pt-BR
+ ref
+ ro
+ ru
+ runtimes
+ alpine-x64
+ native
+ linux
+ lib
+ netcoreapp2.0
+ linux-arm
+ native
+ linux-arm64
+ native
+ linux-armel
+ native
+ linux-mips64
+ native
+ linux-musl-x64
+ native
+ linux-s390x
+ native
+ linux-x64
+ native
+ linux-x86
+ native
+ osx
+ lib
+ netcoreapp2.0
+ native
+ osx-arm64
+ native
+ osx-x64
+ native
+ unix
+ lib
+ net6.0
+ netcoreapp2.1
+ netcoreapp3.1
+ win
+ lib
+ net6.0
+ netcoreapp2.0
+ netcoreapp2.1
+ netcoreapp3.1
+ netstandard2.0
+ win-arm
+ native
+ win-arm64
+ native
+ win-x64
+ native
+ win-x86
+ native
+ sk
+ sv
+ svg
+ fill
+ outline
+ twotone
+ th
+ tr
+ Users
+ zh
+ zh-Hans
+ zh-Hant
+ zh-tw
+ obj
+ Debug
+ net6-windows
+ ref
+ refint
+ Views
+ Properties
+ PublishProfiles
+ Update
+ ViewModels
+ Views
+ AIStudio.Wpf.Entity
+ bin
+ Debug
+ net6-windows
+ ref
+ DTOModels
+ Base_Manage
+ OA_Manage
+ Quartz_Manage
+ Models
+ obj
+ Debug
+ net6-windows
+ ref
+ refint
+ api
+ AIStudio.Wpf.ApiBusiness
+ bin
+ Debug
+ net6-windows
+ ref
+ Models
+ obj
+ Debug
+ net6-windows
+ ref
+ refint
+ interface
+ AIStudio.Wpf.IBussiness
+ AIStudio.Wpf.IBusiness
+Common
+ AIStudio.AOP
+ Abstraction
+ bin
+ Debug
+ net6-windows
+ ref
+ obj
+ Debug
+ net6-windows
+ ref
+ refint
+ AIStudio.Core
+ bin
+ Debug
+ net6-windows
+ ref
+ ClassLibrary
+ Command
+ Configuration
+ ControlHelpers
+ Converters
+ DI
+ Enum
+ ExCommand
+ Extention
+ Helper
+ Models
+ obj
+ Debug
+ net6-windows
+ ref
+ refint
+ Primitives
+ Properties
+ Validation
+ AIStudio.DbFactory
+ bin
+ Debug
+ net6-windows
+ net6.0
+ ref
+ DataAccess
+ obj
+ Debug
+ net6-windows
+ ref
+ refint
+ net6.0
+ ref
+ refint
+ AIStudio.LocalConfiguration
+ bin
+ Debug
+ net6-windows
+ ref
+ Helper
+ Interfaces
+ Models
+ obj
+ Debug
+ net6-windows
+ ref
+ refint
+ AIStudio.Resource
+ bin
+ Debug
+ net6-windows
+ ref
+ svg
+ fill
+ outline
+ twotone
+ Brushs
+ Images
+ obj
+ Debug
+ net6-windows
+ Brushs
+ ref
+ refint
+ Themes
+ Properties
+ svg
+ fill
+ outline
+ twotone
+ Themes
+Others
+ ControlzEx
+ .github
+ ISSUE_TEMPLATE
+ src
+ ControlzEx
+ Automation
+ Peers
+ Behaviors
+ Controls
+ Internal
+ Microsoft.Windows.Shell
+ Standard
+ Native
+ Properties
+ Themes
+ Theming
+ ControlzEx.Showcase
+ Themes
+ Themes
+ Theming
+ Views
+ ControlzEx.Tests
+ Controls
+ Native
+ Properties
+ TestClasses
+ Themes
+ Themes
+ Theming
+ Wiki
+ XamlStyler
+ Options
+ Dirkster.AvalonDock
+ Accelerider.Extensions
+ bin
+ Debug
+ net6-windows
+ ref
+ Mvvm
+ obj
+ Debug
+ net6-windows
+ ref
+ refint
+ AIStudio.Wpf.PrismAvalonExtensions
+ bin
+ Debug
+ net6-windows
+ ref
+ DockStrategies
+ Events
+ obj
+ Debug
+ net6-windows
+ ref
+ refint
+ Properties
+ Regions
+ ViewModels
+ AvalonDock.Themes.MyVS2013
+ bin
+ Debug
+ net6-windows
+ ref
+ obj
+ Debug
+ net6-windows
+ ref
+ refint
+ Themes
+ Icons
+ Menu
+ Properties
+ Themes
+ Icons
+ Menu
+ gong-wpf-dragdrop
+ .github
+ screenshots
+ src
+ GongSolutions.WPF.DragDrop
+ Icons
+ Properties
+ Utilities
+ Showcase
+ CustomControls
+ Models
+ Properties
+ ViewModels
+ Views
+ XamlStyler
+ Options
+ MahApps.Metro
+ .github
+ ISSUE_TEMPLATE
+ docs
+ src
+ MahApps.Metro
+ Accessibility
+ Actions
+ Assets
+ Automation
+ Peers
+ Behaviors
+ Controls
+ ColorPicker
+ Dialogs
+ HamburgerMenu
+ MenuItems
+ Helper
+ SplitView
+ TimePicker
+ Converters
+ Lang
+ Markup
+ Properties
+ Styles
+ Clean
+ Themes
+ VS
+ Themes
+ ColorPicker
+ Dialogs
+ Theming
+ ValueBoxes
+ MahApps.Metro.Samples
+ MahApps.Metro.Caliburn.Demo
+ Controls
+ Properties
+ Resources
+ Services
+ ViewModels
+ Flyouts
+ Views
+ Flyouts
+ MahApps.Metro.Demo
+ Assets
+ Photos
+ Behaviors
+ Core
+ ExampleViews
+ ExampleWindows
+ HamburgerMenuRipple
+ Markup
+ Models
+ Navigation
+ Properties
+ ValueConverter
+ Mahapps.Metro.Tests
+ TestHelpers
+ Tests
+ Views
+ Visual Studio Templates
+ XamlStyler
+ Options
+ Prism8
+ Containers
+ Prism.DryIoc.Shared
+ Prism.Unity.Shared
+ Prism.Core
+ Commands
+ Common
+ Events
+ Extensions
+ Ioc
+ Internals
+ Modularity
+ Mvvm
+ Navigation
+ Properties
+ Wpf
+ Prism.DryIoc.Wpf
+ Properties
+ Prism.Unity.Wpf
+ Properties
+ Prism.Wpf
+ Common
+ Extensions
+ Interactivity
+ Ioc
+ Modularity
+ Mvvm
+ Properties
+ Regions
+ Behaviors
+ Services
+ Dialogs
+ WpfAnimatedGif
+ WpfAnimatedGif
+ Decoding
+ Xceed.Wpf
+ Dataforge.PrismAvalonExtensions
+ DockStrategies
+ Events
+ Properties
+ Regions
+ ViewModels
+ Dataforge.PrismAvalonExtensions.Test
+ ViewModels
+ Views
+ Xceed.Wpf.AvalonDock
+ Commands
+ Controls
+ Shell
+ Standard
+ Converters
+ Layout
+ Serialization
+ Properties
+ Themes
+ Generic
+ Images
+ Xceed.Wpf.AvalonDock.Themes.Aero
+ Controls
+ Images
+ Properties
+ Xceed.Wpf.AvalonDock.Themes.Metro
+ Images
+ Properties
+ Xceed.Wpf.AvalonDock.Themes.MyMetro
+ Images
+ Properties
+ Xceed.Wpf.AvalonDock.Themes.VS2010
+ Images
+ Properties
+ Xceed.Wpf.DataGrid
+ (CollectionView)
+ (DataVirtualization)
+ (ForeignKeys)
+ (enums)
+ (ForeignKeys)
+ (Generator)
+ Automation
+ Converters
+ Export
+ (Clipboard)
+ FilterCriteria
+ Markup
+ Properties
+ Stats
+ themes
+ Aero
+ Resources
+ Aero2
+ Resources
+ Classic
+ Resources
+ Common
+ Controls
+ Luna
+ Resources
+ Royale
+ Resources
+ Windows7
+ Resources
+ Zune
+ Resources
+ Utils
+ Collections
+ Data
+ Math
+ Wpf
+ DragDrop
+ Markup
+ XmlSerialization
+ ValidationRules
+ Views
+ (ColumnVirtualization)
+ (Enums)
+ (TableflowView)
+ Xceed.Wpf.Toolkit
+ AutoSelectTextBox
+ Implementation
+ BusyIndicator
+ Implementation
+ Converters
+ Themes
+ ButtonSpinner
+ Implementation
+ Themes
+ Calculator
+ Implementation
+ Themes
+ CalculatorUpDown
+ Implementation
+ Themes
+ CheckComboBox
+ Implementation
+ Themes
+ CheckListBox
+ Implementation
+ Themes
+ ChildWindow
+ Implementation
+ Themes
+ Chromes
+ Implementation
+ Themes
+ CollectionControl
+ Images
+ Implementation
+ Converters
+ Themes
+ ColorCanvas
+ Implementation
+ Themes
+ ColorPicker
+ Implementation
+ Themes
+ Core
+ Converters
+ Input
+ Media
+ Animation
+ Utilities
+ DateTimePicker
+ Implementation
+ Themes
+ DateTimeUpDown
+ Implementation
+ Themes
+ DropDownButton
+ Implementation
+ Themes
+ IconButton
+ Implementation
+ Themes
+ Magnifier
+ Implementation
+ Converters
+ Themes
+ MaskedTextBox
+ Implementation
+ MessageBox
+ Icons
+ Implementation
+ Themes
+ MultiLineTextEditor
+ Images
+ Implementation
+ Themes
+ NumericUpDown
+ Implementation
+ Themes
+ Obselete
+ MaskedTextBox
+ Implementation
+ Panels
+ Pie
+ Implementation
+ Themes
+ Primitives
+ Themes
+ Aero2
+ Generic
+ Properties
+ PropertyGrid
+ Images
+ Implementation
+ Attributes
+ Commands
+ Converters
+ Definitions
+ Editors
+ Themes
+ RangeSlider
+ Implementation
+ Converters
+ Themes
+ RichTextBox
+ Formatters
+ RichTextBoxFormatBar
+ Images
+ Themes
+ SplitButton
+ Implementation
+ Themes
+ StyleableWindow
+ Implementation
+ Converters
+ Themes
+ Aero
+ Aero2
+ Generic
+ Images
+ TimelinePanel
+ Implementation
+ TimePicker
+ Implementation
+ Themes
+ TimeSpanUpDown
+ Implementation
+ Themes
+ WatermarkComboBox
+ Implementation
+ Themes
+ WatermarkPasswordBox
+ Implementation
+ WatermarkTextBox
+ Implementation
+ Themes
+ Wizard
+ Implementation
+ Themes
+ Zoombox
+ Resources
+ Themes
+ Xceed.Wpf.Toolkit.LiveExplorer
+ CodeFiles
+ Core
+ CodeFormatting
+ Converters
+ Properties
+ Resources
+ Samples
+ AvalonDock
+ Images
+ Views
+ BusyIndicator
+ Converters
+ Images
+ Resources
+ Views
+ Button
+ Resources
+ Views
+ Calculator
+ Views
+ Chart
+ Converters
+ OpenSourceImages
+ Photo
+ Views
+ CheckLists
+ Views
+ Color
+ Views
+ DataGrid
+ Converters
+ OpenSourceImages
+ Views
+ DateTime
+ Converters
+ Views
+ FilePicker
+ OpenSourceImages
+ Views
+ Gauge
+ OpenSourceImages
+ Resources
+ Views
+ ListBox
+ Converters
+ OpenSourceImages
+ Resources
+ Views
+ Magnifier
+ Converters
+ Resources
+ Views
+ MaterialControls
+ Converters
+ Data
+ OpenSourceImages
+ Resources
+ Views
+ MultiCalendar
+ OpenSourceImages
+ Resources
+ Views
+ Numeric
+ Views
+ Panels
+ Converters
+ OpenSourceImages
+ Views
+ Pie
+ Converters
+ Views
+ PileFlowPanel
+ Converters
+ OpenSourceImages
+ Views
+ PropertyGrid
+ Converters
+ OpenSourceImages
+ Resources
+ Views
+ RangeSlider
+ Converters
+ Views
+ Rating
+ OpenSourceImages
+ Views
+ SlideShow
+ OpenSourceImages
+ Resources
+ Views
+ Text
+ OpenSourceImages
+ Resources
+ Views
+ Theming
+ Converters
+ Images
+ ItemTemplates
+ OpenSourceImages
+ Views
+ TimelinePanel
+ Views
+ TimeSpan
+ Views
+ ToggleSwitch
+ Converters
+ OpenSourceImages
+ Resources
+ Views
+ WatermarkComboBox
+ Resources
+ Views
+ Window
+ Converters
+ Resources
+ Views
+ Wizard
+ Views
+ Zoombox
+ Converters
+ Resources
+ Views
+ Service References
+ NorthwindDataService
+packages
+Page
+ AIStudio.Wpf.Agile_Development
+ Attacheds
+ Attributes
+ bin
+ Debug
+ net6-windows
+ ref
+ svg
+ fill
+ outline
+ twotone
+ Commons
+ Converter
+ Extensions
+ Models
+ obj
+ Debug
+ net6-windows
+ Properties
+ ref
+ refint
+ Themes
+ Views
+ Properties
+ Themes
+ ViewModels
+ Views
+ AIStudio.Wpf.BasePage
+ bin
+ Debug
+ net6-windows
+ ref
+ svg
+ fill
+ outline
+ twotone
+ Controls
+ Converters
+ DTOModels
+ Events
+ Images
+ Models
+ obj
+ Debug
+ net6-windows
+ Controls
+ Properties
+ ref
+ refint
+ Themes
+ Views
+ Permission
+ Properties
+ Themes
+ ViewModels
+ Views
+ AIStudio.Wpf.Base_Manage
+ bin
+ Debug
+ net6-windows
+ ref
+ svg
+ fill
+ outline
+ twotone
+ obj
+ Debug
+ net6-windows
+ Properties
+ ref
+ refint
+ Views
+ Properties
+ ViewModels
+ Views
+ AIStudio.Wpf.D_Manage
+ bin
+ Debug
+ net6-windows
+ obj
+ Debug
+ net6-windows
+ ref
+ refint
+ AIStudio.Wpf.Home
+ bin
+ Debug
+ net6-windows
+ Images
+ Gifs
+ ref
+ svg
+ fill
+ outline
+ twotone
+ BuildCodeTemplate
+ Images
+ Models
+ obj
+ Debug
+ net6-windows
+ Properties
+ ref
+ refint
+ Resources
+ Themes
+ Views
+ ManageViews
+ Properties
+ Resources
+ Themes
+ ViewModels
+ Views
+ ManageViews
+ AIStudio.Wpf.LayoutPage
+ bin
+ Debug
+ net6-windows
+ ref
+ svg
+ fill
+ outline
+ twotone
+ Models
+ obj
+ Debug
+ net6-windows
+ Properties
+ ref
+ refint
+ Views
+ SubViews
+ Properties
+ ViewModels
+ Views
+ SubViews
+ AIStudio.Wpf.OA_Manage
+ bin
+ Debug
+ net6-windows
+ Images
+ Gifs
+ ref
+ svg
+ fill
+ outline
+ twotone
+ obj
+ Debug
+ net6-windows
+ Properties
+ ref
+ refint
+ Views
+ Properties
+ ViewModels
+ Views
+ AIStudio.Wpf.Quartz_Manage
+ bin
+ Debug
+ net6-windows
+ ref
+ svg
+ fill
+ outline
+ twotone
+ obj
+ Debug
+ net6-windows
+ Properties
+ ref
+ refint
+ Themes
+ Views
+ Properties
+ ViewModels
+ Views
+ServiceMonitor
+ ServiceMonitor
+ bin
+ Debug
+ net6.0-windows
+ ca-ES
+ cs
+ cs-CZ
+ de
+ es
+ fr
+ hu
+ it
+ ja
+ ko
+ nl-BE
+ pl
+ pt
+ pt-BR
+ ro
+ ru
+ runtimes
+ linux
+ lib
+ netcoreapp2.0
+ linux-x64
+ native
+ osx
+ lib
+ netcoreapp2.0
+ osx-x64
+ native
+ unix
+ lib
+ netcoreapp2.1
+ win
+ lib
+ netcoreapp2.0
+ netcoreapp2.1
+ win-arm64
+ native
+ win-x64
+ native
+ win-x86
+ native
+ server
+ cs
+ de
+ es
+ fr
+ it
+ ja
+ ko
+ OA_Manage
+ Steps
+ pl
+ pt-BR
+ ru
+ runtimes
+ alpine-x64
+ native
+ linux
+ lib
+ netcoreapp2.0
+ linux-arm
+ native
+ linux-arm64
+ native
+ linux-armel
+ native
+ linux-mips64
+ native
+ linux-musl-x64
+ native
+ linux-s390x
+ native
+ linux-x64
+ native
+ linux-x86
+ native
+ osx
+ lib
+ netcoreapp2.0
+ osx-arm64
+ native
+ osx-x64
+ native
+ unix
+ lib
+ net6.0
+ netcoreapp2.1
+ netcoreapp3.1
+ win
+ lib
+ net6.0
+ net7.0
+ netcoreapp2.0
+ netcoreapp2.1
+ netcoreapp3.1
+ netstandard2.0
+ win-arm
+ native
+ win-arm64
+ native
+ win-x64
+ native
+ win-x86
+ native
+ tr
+ zh-Hans
+ zh-Hant
+ sqlite
+ sqlserver
+ sv
+ svg
+ fill
+ outline
+ twotone
+ tr
+ zh-Hans
+ zh-Hant
+ obj
+ Debug
+ net6.0-windows
+ ref
+ refint
+SetUp
+ AIStudio.Wpf.Bootstrapper
+ AIStudio.Wpf.Bootstrapper
+ AIStudio.Wpf.BootstrapperCustomBA
+ Images
+ adImage
+ imageButton
+ Models
+ Properties
+ Resources
+ Slider
+ ViewModels
+ Views
+ AIStudio.Wpf.Install
+ AIStudio.Wpf.WixSetUp
+ content
+ AIStudio.Wpf.WixXmlGenerate
+ BuildCodeTemplate
+ Properties
+ AutoUpdater.NET
+ AutoUpdater.NET
+ build
+ Properties
+ Resources
+ AutoUpdaterTest
+ Properties
+ AutoUpdaterTestWPF
+ Properties
+ Logo
+ ZipExtractor
+ Properties
+ Resources
+ NetSparkle
+ .github
+ workflows
+ doc
+ generated
+ Extras
+ Release Notes Template
+ Sample Update AppCast
+ MetaData
+ Server Root
+ 1.0.1
+ 1.0.2
+ nuget
+ core
+ tools
+ winformsnetframework
+ src
+ NetSparkle
+ AppCastHandlers
+ ArtWork
+ AssemblyAccessors
+ Configurations
+ Downloaders
+ Enums
+ Events
+ Interfaces
+ Libraries
+ Properties
+ SignatureVerifiers
+ NetSparkle.Samples.Avalonia
+ Assets
+ NetSparkle.Samples.DownloadedExe
+ Properties
+ NetSparkle.Samples.HandleEventsYourself
+ NetSparkle.Samples.NetCore.WinForms
+ NetSparkle.Samples.NetCore.WPF
+ NetSparkle.Samples.NetFramework.WinForms
+ Properties
+ NetSparkle.Samples.NetFramework.WPF
+ Properties
+ NetSparkle.Shared
+ NetSparkle.Tests
+ Properties
+ NetSparkle.Tests.AppCastGenerator
+ NetSparkle.Tools.AppCastGenerator
+ Properties
+ NetSparkle.Tools.DSAHelper
+ Properties
+ NetSparkle.UI.Avalonia
+ Controls
+ Helpers
+ Interfaces
+ Lib
+ ViewModels
+ NetSparkle.UI.WinForms.NetCore
+ NetSparkle.UI.WinForms.NetFramework
+ Properties
+ NetSparkle.UI.WPF
+ Controls
+ Helpers
+ Interfaces
+ Properties
+ ViewModels
+ NetSparkle.Xamarin
+ Properties
+ TestAppFiles
+TestUnit
+ TestHelpers
+ Tests