From 0d4cd45083dbbf4787317dae524f6b4dbfd4a50c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=89=BE=E7=AB=B9?= Date: Mon, 2 Jan 2023 19:02:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=B8=8D=E8=A6=81=E7=9A=84?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AIStudio.Wpf.Service.csproj | 25 - .../AppClient/HttpClients/AppSecretHeader.cs | 53 - .../AppClient/HttpClients/AppTokenHeader.cs | 25 - .../HttpClients/HttpClientHelper.Protobuf.cs | 81 -- .../AppClient/HttpClients/HttpClientHelper.cs | 300 ---- .../AppClient/HttpClients/IAppHeader.cs | 9 - .../AppClient/NetworkTransfer.Protobuf.cs | 25 - .../AppClient/NetworkTransfer.cs | 144 -- .../ProtobufModels/AjaxResult_Protobuf.cs | 41 - .../ProtobufModels/Delete_Protobuf.cs | 16 - .../ProtobufModels/IdInputDTO_Protobuf.cs | 16 - .../ProtobufModels/PageInput_Protobuf.cs | 43 - .../ProtobufModels/Search_Protobuf.cs | 18 - .../AIStudio.Wpf.ServiceTest.csproj | 16 - .../api/AIStudio.Wpf.ServiceTest/Admin.db | Bin 184320 -> 0 bytes .../api/AIStudio.Wpf.ServiceTest/Program.cs | 13 - ...6\345\272\223\350\277\201\347\247\273.txt" | 3 - .../AIStudio.Wpf.IBusiness.csproj | 7 - .../AIStudio.Wpf.IBusiness/Class1.cs | 8 - .../ViewModels/BaseEditWithOptionViewModel.cs | 1 - categories.txt | 1219 +++++++++++++++++ 21 files changed, 1219 insertions(+), 844 deletions(-) delete mode 100644 Application/api/AIStudio.Wpf.Service/AIStudio.Wpf.Service.csproj delete mode 100644 Application/api/AIStudio.Wpf.Service/AppClient/HttpClients/AppSecretHeader.cs delete mode 100644 Application/api/AIStudio.Wpf.Service/AppClient/HttpClients/AppTokenHeader.cs delete mode 100644 Application/api/AIStudio.Wpf.Service/AppClient/HttpClients/HttpClientHelper.Protobuf.cs delete mode 100644 Application/api/AIStudio.Wpf.Service/AppClient/HttpClients/HttpClientHelper.cs delete mode 100644 Application/api/AIStudio.Wpf.Service/AppClient/HttpClients/IAppHeader.cs delete mode 100644 Application/api/AIStudio.Wpf.Service/AppClient/NetworkTransfer.Protobuf.cs delete mode 100644 Application/api/AIStudio.Wpf.Service/AppClient/NetworkTransfer.cs delete mode 100644 Application/api/AIStudio.Wpf.Service/AppClient/ProtobufModels/AjaxResult_Protobuf.cs delete mode 100644 Application/api/AIStudio.Wpf.Service/AppClient/ProtobufModels/Delete_Protobuf.cs delete mode 100644 Application/api/AIStudio.Wpf.Service/AppClient/ProtobufModels/IdInputDTO_Protobuf.cs delete mode 100644 Application/api/AIStudio.Wpf.Service/AppClient/ProtobufModels/PageInput_Protobuf.cs delete mode 100644 Application/api/AIStudio.Wpf.Service/AppClient/ProtobufModels/Search_Protobuf.cs delete mode 100644 Application/api/AIStudio.Wpf.ServiceTest/AIStudio.Wpf.ServiceTest.csproj delete mode 100644 Application/api/AIStudio.Wpf.ServiceTest/Admin.db delete mode 100644 Application/api/AIStudio.Wpf.ServiceTest/Program.cs delete mode 100644 "Application/api/AIStudio.Wpf.ServiceTest/\346\225\260\346\215\256\345\272\223\350\277\201\347\247\273.txt" delete mode 100644 Application/interface/AIStudio.Wpf.IBussiness/AIStudio.Wpf.IBusiness/AIStudio.Wpf.IBusiness.csproj delete mode 100644 Application/interface/AIStudio.Wpf.IBussiness/AIStudio.Wpf.IBusiness/Class1.cs create mode 100644 categories.txt 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 bb7566d6..00000000 --- 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 1e316828..00000000 --- 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 92029c44..00000000 --- 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 89e18acd..00000000 --- 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 e697dd78..00000000 --- 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 e366e126..00000000 --- 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 b2e1da84..00000000 --- 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 f2c0b600..00000000 --- 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 9087eb55..00000000 --- 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 bc8f9cb2..00000000 --- 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 ca8267aa..00000000 --- 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 a991e54d..00000000 --- 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 f58acbcc..00000000 --- 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 cc07e8e0..00000000 --- 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 GIT binary patch literal 0 HcmV?d00001 literal 184320 zcmeI(U2hv#dcbi~FQiPHmb39@vaxqHrs5Z^oYaz|Rg1uAX=$u*MNtw-xfap|F%plR zsVR;;9D1c(bz|AIHmQx^ON9ZGjM8GWsoTgetT^<`u8Zo3mN-0etq5(HX@rVK5Lns9~O zyWEknWE49G5VT!zgz1X1wIdE4VX(o9UA3O>hc^iA*>7z-%3Zf(1+&|AsAa2LWy4k| zqFq_k&AQvuE}fcsa50wEhM}?2ig|siqIvOB)S?IYIVqn9sbjAI-JG?HsQbaiR}Yg(ZE`aH zW;s+!TY0Pgyj4d2;+U$0{K$#Rr`<|XI^I4b%4fl@*M)x@D!GoLP8PSy`@5a%c&LER zNe#@6CA8dR-@Cw~4;U%Bw=i_xSuHPw^*?Cx$!Y&)WL73r)c6cx}3p0o%;4Hb1D zqsj|Ks8#EUB9vztizuCQQURYQ658ri-wNpXwTqy$o;)yy{cFJ6&{II@sjsy-qN)IY zOrALX?N*B12R8%77;la6sHeGz>~A>o263cX9-FnM>S|FCqS`vy=(|d8+pa6REZL45 z-RPVY;oQivm!TGKP=S6SjQ-+DJgLpk$G=(iZ$Xuc@o2?*=9u1VN8<~t;o8o=^24Ft zl2mTfEzVA#-K$H)J4r-Gs(N+oYIECtES!cs*q|=j-O9)F+)zUM*?iQnRPLuTbLeCF zDw&y-f4qN9{_(xbY58Y-{2ycTUw#lk009ILKmY**5I_I{1Q0;r%nN)LA2#M^@6FEK zyFWXBZ+>?Evp=ll>XvJnwbtb1?5DGze)fr+rhRE`TlHt3%-p;8li8F!ulV@C$K=2K zAb@N>)=B7gt_ z2q1s}0tg_000Iag!2CZofB*srAbChn&*Oi0sdV|TQ_Gh=7+XzUO^l3P8TpHmm7%{H+8nwybPK8TEHHLu_;0-;I1; zUsx@a%EfH1P}VbR%dIo%?k1zJ6>}@u;-r|AXMNt#3kb9Rq zGM0>D=KzAX3yv^dQMPu(p(6}7Sh1_t)BW%Up*{PpZAZE5cC27_yAHK%b*pUH3PrRl zi@I5Nd)lQ_Q!|$m+A(F~>4mbLeigr%)Fvk4uh)C?+{xjkh}^zQRwMHnahB&KZ3h=F z_+#ytxo!>?#jfeNJEHFTndq*j6#3{zPnwl*OT}1=$jh4P$OG%CzF?dLp++!{LdD*S zd3~y)dGS)zqDSaCsf7orV=vp?oV5pX_k)YC9ww98czMtBm}`F;xlq zkrS6syOpAJynRNL&w^dA3;(`TavepTEN+$ecRLs2PywBj8kiePXt~M0x9&wBKFGhn za^ck%qe*RQswel^-QAMdc0}tc(pgI=DxecQX%U1PD(XN+l^2RotJWhyD9K_B3PMy{CmVfN$!*(pMVBSpaibfZlOmiOIrcKt;teX$ zFND!wJc%c@`T6)atNtyhQZXK_SkD~Od(UWmVKrRa*;jrz)LW9uZMwzT>9c!viFm1q z=txzsj$LhTyN`v_kOv#oMY~)1e4QIgXg`~e8kWlaRA!VP56idNG4GAm`}_at*xOk8 zH|f`x{`}I+#jB}*9s9Gfo1a8qYPiSAxMIF(i z|5msn8V&QAsLbA*ow;|vGNbx*;-Gjfsm;yB-!A!CQ*ERA>_@#hQ*F{s*|C{YH&-O8 z|J9=?%&Jv?wqiQZRS%j=j@?w>ll(};wdXtx`rskn`z|3@RoQtF4@ea&i#>VK>|CDZ zc=@A`657h`|6O(VmgNr*e)5B)cKdex?ex)l>?xD$eJb!>OHcWpO3ih@YB|NPEl#`U z?thrjmTnwVbEZ}6TnFXywb$3Rq;}&*{8z)_YLk(6smY~}lyxQpCoeL;k?N{uxi!^; zO#jMTSWpkug@verdd&5)q$4(FQn*liX$+0y$6xDZRszbWYe=nge-;BDy zbxtL3KWo31dA-ZE?|<{*dr9r)&G=ze84I_%8eu9odlyo_*=dXRpHq>$Y~3-BTmfW6 ze)s6g@2*4G(sbs^vGXRLVhHrT17qBuH+j3+TcaJyD-n+Gf~b5R^^Pdw60>GD8b7z4 z&TL!gt2KG=uSK*f33)@0`bOrV<+xu}&HWHua9!P74795I_I{1Q0*~0R#|00D+JI z^Zy|X77;)I0R#|0009ILKmY**5ExJa=KlvYv78nH2q1s}0tg_000IagfB*s^fpqHE zv9aOrVyWMby`TDObU*pK;qOKlFU}8t8T*gn>#@I=|D4&M)USvBB{vz5S@o*eYrLpg zuBezz*Y?*d>rK;fzpj+c#`DTdXyvYK_BYz}bo}kGYi`xVYPPb`5Y8jp*(teV_t5Ip zLea>U4ZWOwm^bvyp=d_GlTPXKCzGpY^s@1!tQS`0??yhaFRT_y=V>3(>F(E0eSZAYoljzt_; zt6OEmRw$xfS=7zC+tV(cntE_6p{-9x)z_hfR%Q-;@MAf$=A+9qv~^F@JFouWMpC59w=8>Xo2ToRxokogMjDnKKp(u!ry5%Z9J|}f@Ka zHngAT_VTTRtqDKP-;RgU>|KOfY4(;TRcZDDCr)##ks{51YCF%L*6g4Ew6t1KB+&b~ zXH*2^*9$xrPQ$Y6(N_VlXce7Cm6q63)lkWHC%r9+Lv=t z*GN^iD>JH3Z(JOTjd@R`OV>}>;eBO?_a|gubN$Qx{?P;Z_R(Zgo1Bb)Coe#~&yb<} z`t9Bk5sI8(AoR3S)W5u+c%xQX#O+vQ8T&1N+OX^WT6^(hFZD}~S(Vq>sA2f1W>M#iH1iFA+PU zuDUZRw(8%T_XOYXcv?^RiY>eo@q$sqEr_cJYPKey#;g1N#%pL3bsxvwXCrR)rRG*d zB;twD*xMD`^3`HdzCI`*7MhMDlTom}Vr#u_h29&uE_-jH{qlVDy3F7IKeJzNa9{`^ zfB*srAbIFK>z^+5I_I{1Q0;rgaUJS5?XFD9<%CIvDbJ}vs_Uzo38DzSJs=R<9=N!n~mp{ znb6AJ*Xy^F+T>*XSC(sT)kG*1TAW@e8ria;m$MJ^hMoyUGWwl#N|!>s5PYjVEQj zuquBy@_Bt>wNNS-v$;Z9&#Wzn4}@u;-q<2wWSIb#fzqBxaIv_RWxrl z++wp{wv;DVa!t3{$mr6^STc$ozu@E_+0K?#UELLq>B`>wZ)Q|2H+q{zQ4_9^iHhoE z!4YyN;R9_aGdP$PyJ|h%4{s1kli%8Qx|MJ=7LmkOx5|dCP(-`3sGD`Sr(HTV_25=Q zTc3^^3ai=5MngD~b*JQt-O9|N4}N@b>t<4$o{qmA_J_ow@S)YI-l1_QdV=9`q@`kr z1jpTT!a-_^c1`4}vXEM%Fl6sVJV0ek?3m7TRphw3^zb6ma!%@O?&E%!+)zS$YV6Mc E0Kl9ko&W#< diff --git a/Application/api/AIStudio.Wpf.ServiceTest/Program.cs b/Application/api/AIStudio.Wpf.ServiceTest/Program.cs deleted file mode 100644 index c000198e..00000000 --- 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 83b093c4..00000000 --- "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 f208d303..00000000 --- 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 1ab08fe3..00000000 --- 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 8a2a2823..b9e4506b 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 00000000..9d31c13b --- /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 -- Gitee