From d7f0d6eb18ab4bae6ea221071360323c1f6bf022 Mon Sep 17 00:00:00 2001 From: Georgy Khatuncev Date: Fri, 28 May 2021 20:53:14 +0500 Subject: [PATCH] Socket 2 --- DataClient/Config/config.json | 16 + DataClient/DataClient.csproj | 26 + DataClient/DataClient.csproj.user | 6 + DataClient/NETClient.cs | 66 +++ .../PublishProfiles/FolderProfile.pubxml | 12 + .../PublishProfiles/FolderProfile.pubxml.user | 9 + DataClient/Properties/launchSettings.json | 7 + DataClient/STPClient.cs | 236 ++++++++++ DataClient/Struct.cs | 30 ++ .../obj/DataClient.csproj.nuget.dgspec.json | 83 ++++ .../obj/DataClient.csproj.nuget.g.props | 21 + .../obj/DataClient.csproj.nuget.g.targets | 6 + ...CoreApp,Version=v5.0.AssemblyAttributes.cs | 4 + .../Debug/net5.0/DataClient.AssemblyInfo.cs | 23 + .../DataClient.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 8 + .../obj/Debug/net5.0/DataClient.assets.cache | Bin 0 -> 5279 bytes .../DataClient.csprojAssemblyReference.cache | Bin 0 -> 110010 bytes DataClient/obj/project.assets.json | 444 ++++++++++++++++++ DataClient/obj/project.nuget.cache | 19 + Tests/bin/Debug/netcoreapp3.1/04.txt | 2 + 21 files changed, 1019 insertions(+) create mode 100644 DataClient/Config/config.json create mode 100644 DataClient/DataClient.csproj create mode 100644 DataClient/DataClient.csproj.user create mode 100644 DataClient/NETClient.cs create mode 100644 DataClient/Properties/PublishProfiles/FolderProfile.pubxml create mode 100644 DataClient/Properties/PublishProfiles/FolderProfile.pubxml.user create mode 100644 DataClient/Properties/launchSettings.json create mode 100644 DataClient/STPClient.cs create mode 100644 DataClient/Struct.cs create mode 100644 DataClient/obj/DataClient.csproj.nuget.dgspec.json create mode 100644 DataClient/obj/DataClient.csproj.nuget.g.props create mode 100644 DataClient/obj/DataClient.csproj.nuget.g.targets create mode 100644 DataClient/obj/Debug/net5.0/.NETCoreApp,Version=v5.0.AssemblyAttributes.cs create mode 100644 DataClient/obj/Debug/net5.0/DataClient.AssemblyInfo.cs create mode 100644 DataClient/obj/Debug/net5.0/DataClient.AssemblyInfoInputs.cache create mode 100644 DataClient/obj/Debug/net5.0/DataClient.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 DataClient/obj/Debug/net5.0/DataClient.assets.cache create mode 100644 DataClient/obj/Debug/net5.0/DataClient.csprojAssemblyReference.cache create mode 100644 DataClient/obj/project.assets.json create mode 100644 DataClient/obj/project.nuget.cache create mode 100644 Tests/bin/Debug/netcoreapp3.1/04.txt diff --git a/DataClient/Config/config.json b/DataClient/Config/config.json new file mode 100644 index 0000000..f71d35f --- /dev/null +++ b/DataClient/Config/config.json @@ -0,0 +1,16 @@ +{ + "servers": [ + { + "name": "STP 1", + "ip": "10.10.45.151", + "port": 1070, + "dir": "Y:\\data" + }, + { + "name": "STP 2", + "ip": "10.10.45.152", + "port": 1070, + "dir": "Z:\\data" + } + ] +} diff --git a/DataClient/DataClient.csproj b/DataClient/DataClient.csproj new file mode 100644 index 0000000..015554f --- /dev/null +++ b/DataClient/DataClient.csproj @@ -0,0 +1,26 @@ + + + + net5.0 + DataClient + DataClient + 0.0.3 + + + + + + + + + + + + + + + Always + + + + diff --git a/DataClient/DataClient.csproj.user b/DataClient/DataClient.csproj.user new file mode 100644 index 0000000..b75df9c --- /dev/null +++ b/DataClient/DataClient.csproj.user @@ -0,0 +1,6 @@ + + + + <_LastSelectedProfileId>D:\GIT\ASCKU_PC\STPClient\Properties\PublishProfiles\FolderProfile.pubxml + + \ No newline at end of file diff --git a/DataClient/NETClient.cs b/DataClient/NETClient.cs new file mode 100644 index 0000000..d52d5ab --- /dev/null +++ b/DataClient/NETClient.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; +using NLog; + +namespace DataClient +{ + public class NETClient + { + private Logger log = LogManager.GetCurrentClassLogger(); + private string ip = "127.0.0.1"; + public string Ip + { + get { return ip; } + set + { + if (!IPAddress.TryParse(value, out _)) + throw new Exception("Wrong ip address."); + else + ip = value; + } + } + private int port = 1070; + public int Port + { + get { return port; } + set + { + if (value < 1 && value > 65535) + throw new Exception("Wrong port."); + else + port = value; + } + } + + private enum Code : uint + { + check_command = 4294967295, + version = 0, + pasp_download = 4, + download_nh = 21, + dir_browse = 23, + user_flags = 26 + } + + //Construction + public NETClient(string ip, int port) + { + Ip = ip; + Port = port; + } + + + //Work with socket functions + + + //Support functions + + + //Main functions + + } +} diff --git a/DataClient/Properties/PublishProfiles/FolderProfile.pubxml b/DataClient/Properties/PublishProfiles/FolderProfile.pubxml new file mode 100644 index 0000000..97d40c8 --- /dev/null +++ b/DataClient/Properties/PublishProfiles/FolderProfile.pubxml @@ -0,0 +1,12 @@ + + + + + Release + Any CPU + ..\Release\DataClient\ + FileSystem + + \ No newline at end of file diff --git a/DataClient/Properties/PublishProfiles/FolderProfile.pubxml.user b/DataClient/Properties/PublishProfiles/FolderProfile.pubxml.user new file mode 100644 index 0000000..a7e830d --- /dev/null +++ b/DataClient/Properties/PublishProfiles/FolderProfile.pubxml.user @@ -0,0 +1,9 @@ + + + + + True|2021-05-27T05:25:25.8638099Z;True|2021-05-27T10:16:30.2483150+05:00; + + \ No newline at end of file diff --git a/DataClient/Properties/launchSettings.json b/DataClient/Properties/launchSettings.json new file mode 100644 index 0000000..433eb01 --- /dev/null +++ b/DataClient/Properties/launchSettings.json @@ -0,0 +1,7 @@ +{ + "profiles": { + "DataClient": { + "commandName": "Project" + } + } +} \ No newline at end of file diff --git a/DataClient/STPClient.cs b/DataClient/STPClient.cs new file mode 100644 index 0000000..4f0a86a --- /dev/null +++ b/DataClient/STPClient.cs @@ -0,0 +1,236 @@ +using System; +using System.IO; +using System.Collections.Generic; +using NLog; +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using DataClient.Struct; +using System.Net; + +namespace DataClient +{ + /// + /// Класс для связи с СТП. Содержит все инструменты, для получения данных. + /// + public class STPClient + { + //Переменные + Logger log = LogManager.GetCurrentClassLogger(); + string confDir = Path.Combine(Directory.GetCurrentDirectory(), "Config", "config.json"); + private List servers = new List(); + int serverDefault = -1; + //Геттеры и сеттеры + /// Номер сервера, используемого по умолчанию. + public int UseServer + { + get { return serverDefault; } + set { + serverDefault = + (servers.Count == 0) ? -1 : + (value < 0) ? 0 : + (value >= servers.Count) ? serverDefault = servers.Count - 1 : + value; + } + } + /// Массив серверов, инициализированных в экземпляре класса. + public server[] ListServers { get { return servers.ToArray(); } } + + //Функции + /// Получение номера сервера по его названию. + /// Название сервера. + /// Номер сервера в списке серверов. + public int GetServerIdByName(string name) + { + return servers.FindIndex(x => x.name == name); + } + /// Получение название сервера по его номеру. + /// Номер сервера в списке серверов. + /// Название сервера. + public string GetServerNameById(int id) + { + var res = (id >= servers.Count || id < 0) ? null : servers[id].name; + return res; + } + /// Проверка параметров серевера перед их добавлением в список. + /// IP адресс сервера. + /// Порт сервера. + /// Путь к архиву. + /// Результат выполнения функции. + private bool CheckDataServer(string ip, int port, string dir) + { + if (!IPAddress.TryParse(ip, out _)) + { + log.Warn("Ip address incorrect: " + ip + " ."); + return false; + } + if (port < 1 && port > 65535) + { + log.Warn("Port incorrect: " + port.ToString() + "."); + return false; + } + if (!Directory.Exists(dir)) + { + log.Warn("Directory incorrect or not exist: " + dir + " ."); + return false; + } + return true; + } + /// Добавление сервера в список серверов. + /// Название сервера + /// IP адресс сервера. + /// Порт сервера. + /// Путь к архиву. + /// Результат выполнения функции. + public bool AddServer(string name, string ip, int port, string dir) + { + if (!CheckDataServer(ip, port, dir)) + { + log.Warn("Server not added: Data incorrect."); + return false; + } + if (string.IsNullOrEmpty(name)) + { + log.Warn("Server not added: Incorrect name server."); + return false; + } + if (servers.FindIndex(x => x.name == name) != -1) + { + log.Warn("Server not added: Server with this name exist."); + return false; + } + servers.Add(new server(name, ip, port, dir)); + UseServer = 0; + log.Trace("Server (name=" + name + ";ip=" + ip + ";port=" + port + ";dir=" + dir + ") added."); + return true; + } + /// Изменение сервера в списке серверов по его номеру. + /// Номер сервера в списке серверов. + /// Название сервера. + /// IP адресс сервера. + /// Порт сервера. + /// Путь к архиву. + /// Результат выполнения функции. + public bool ChangeServerById(int id, string name, string ip, int port, string dir) + { + if (servers.Count == 0 || id >= servers.Count || id < 0) + { + log.Warn("Server not changed: Id incorrect."); + return false; + } + if (!CheckDataServer(ip, port, dir)) + { + log.Warn("Server not changed: Data incorrect."); + return false; + } + var tmpId = servers.FindIndex(x => x.name == name); + if (string.IsNullOrEmpty(name) || (tmpId != -1 && tmpId != id)) + { + log.Warn("Server not changed: Name incorrect."); + return false; + } + var tmp = new server(name, ip, port, dir); + log.Trace("Server id=" + id + " changed: name=" + name + ";ip=" + ip + ";port=" + port.ToString() + ";dir=" + dir + ";."); + servers[id] = tmp; + return true; + } + /// Изменение сервера в списке серверов по его названию. + /// Название сервера. + /// IP адресс сервера. + /// Порт сервера. + /// Путь к архиву. + /// Результат выполнения функции. + public bool ChangeServerByName(string name, string ip, int port, string dir) + { + var id = servers.FindIndex(x => x.name == name); + if (id == -1) + { + log.Warn("Server not changed: Name incorrect or server not exist."); + return false; + } + return ChangeServerById(id, name, ip, port, dir); + } + /// Удаление сервера из списка серверов по его номеру. + /// Номер сервера в списке серверов. + /// Результат выполнения функции. + public bool RemoveServerById(int id) + { + if (servers.Count == 0 || id >= servers.Count || id < 0) + { + log.Warn("Server not removed: Id incorrect or list server are empty."); + return false; + } + log.Trace("Server id=" + id.ToString() + ";name=" + servers[id].name + ";ip=" + servers[id].ip + ";port=" + servers[id].port.ToString() + ";dir=" + servers[id].dir + "; removed."); + servers.RemoveAt(id); + UseServer = 0; + return true; + } + /// Удаление сервера из списка серверов по его названию. + /// Название сервера. + /// Результат выполнения функции. + public bool RemoveServerByName(string name) + { + var id = servers.FindIndex(x => x.name == name); + if (id == -1) + { + log.Warn("Server not removed: Name incorrect or server not exist."); + return false; + } + return RemoveServerById(id); + } + /// Чтение конфигурационнного файла и установка параметров по умолчанию. + private void Config() + { + string jsonString; + try + { + jsonString = File.ReadAllText(confDir); + } + catch (Exception e) + { + log.Warn(e, "Can't read config file from " + confDir + "."); + return; + } + var conf = (JObject)JsonConvert.DeserializeObject(jsonString); + if (!conf.HasValues && !conf["servers"].HasValues && conf["servers"].Type != JTokenType.Array) + { + log.Warn("Doesn't exist \"servers\" object in config file."); + return; + } + var count = -1; + foreach (var s in conf["servers"]) + { + count++; + var name = (s["name"].Type == JTokenType.String) ? (string)s["name"] : "default"; + var ip = (s["ip"].Type == JTokenType.String) ? (string)s["ip"] : ""; + var port = (s["port"].Type == JTokenType.Integer) ? (int)s["port"] : -1; + var dir = (s["dir"].Type == JTokenType.String) ? (string)s["dir"] : ""; + var res = false; + if (GetServerIdByName(name) == -1) + res = AddServer(name, ip, port, dir); + else + res = ChangeServerByName(name, ip, port, dir); + if (!res) + log.Trace("Can't add or change server #" + count + " from conf file."); + } + } + /// Создание экземпляра класса. + public STPClient() + { + log.Trace("Create instance class."); + Config(); + } + /// Создание экземпляра класса с указанием конфигурационного файла. + /// Путь к файлу конфигурации. + public STPClient(string confDir) + { + log.Trace("Create instance class with dir:" + confDir + "."); + this.confDir = confDir; + Config(); + } + + + + + } + +} \ No newline at end of file diff --git a/DataClient/Struct.cs b/DataClient/Struct.cs new file mode 100644 index 0000000..d550387 --- /dev/null +++ b/DataClient/Struct.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DataClient.Struct +{ + public struct server + { + public string name; + public string ip; + public int port; + public string dir; + public server(string Ip, int Port, string Dir) + { + name = "default"; + ip = Ip; + port = Port; + dir = Dir; + } + public server(string Name, string Ip, int Port, string Dir) + { + name = Name; + ip = Ip; + port = Port; + dir = Dir; + } + } +} diff --git a/DataClient/obj/DataClient.csproj.nuget.dgspec.json b/DataClient/obj/DataClient.csproj.nuget.dgspec.json new file mode 100644 index 0000000..912f7b5 --- /dev/null +++ b/DataClient/obj/DataClient.csproj.nuget.dgspec.json @@ -0,0 +1,83 @@ +{ + "format": 1, + "restore": { + "D:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj": {} + }, + "projects": { + "D:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj": { + "version": "0.0.3", + "restore": { + "projectUniqueName": "D:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj", + "projectName": "DataClient", + "projectPath": "D:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj", + "packagesPath": "C:\\Users\\google\\.nuget\\packages\\", + "outputPath": "D:\\GIT\\ASCKU_PC\\DataClient\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages", + "C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\", + "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder" + ], + "configFilePaths": [ + "C:\\Users\\google\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config" + ], + "originalTargetFrameworks": [ + "net5.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net5.0": { + "targetAlias": "net5.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + } + }, + "frameworks": { + "net5.0": { + "targetAlias": "net5.0", + "dependencies": { + "NLog": { + "target": "Package", + "version": "[4.7.10, )" + }, + "NLog.Extensions.Logging": { + "target": "Package", + "version": "[1.7.2, )" + }, + "Newtonsoft.Json": { + "target": "Package", + "version": "[13.0.1, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.201\\RuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/DataClient/obj/DataClient.csproj.nuget.g.props b/DataClient/obj/DataClient.csproj.nuget.g.props new file mode 100644 index 0000000..471ec1a --- /dev/null +++ b/DataClient/obj/DataClient.csproj.nuget.g.props @@ -0,0 +1,21 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\google\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages;C:\Program Files (x86)\Microsoft\Xamarin\NuGet\;C:\Program Files\dotnet\sdk\NuGetFallbackFolder + PackageReference + 5.9.0 + + + + + + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + \ No newline at end of file diff --git a/DataClient/obj/DataClient.csproj.nuget.g.targets b/DataClient/obj/DataClient.csproj.nuget.g.targets new file mode 100644 index 0000000..53cfaa1 --- /dev/null +++ b/DataClient/obj/DataClient.csproj.nuget.g.targets @@ -0,0 +1,6 @@ + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + + \ No newline at end of file diff --git a/DataClient/obj/Debug/net5.0/.NETCoreApp,Version=v5.0.AssemblyAttributes.cs b/DataClient/obj/Debug/net5.0/.NETCoreApp,Version=v5.0.AssemblyAttributes.cs new file mode 100644 index 0000000..2f7e5ec --- /dev/null +++ b/DataClient/obj/Debug/net5.0/.NETCoreApp,Version=v5.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v5.0", FrameworkDisplayName = "")] diff --git a/DataClient/obj/Debug/net5.0/DataClient.AssemblyInfo.cs b/DataClient/obj/Debug/net5.0/DataClient.AssemblyInfo.cs new file mode 100644 index 0000000..0f69854 --- /dev/null +++ b/DataClient/obj/Debug/net5.0/DataClient.AssemblyInfo.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// Этот код создан программой. +// Исполняемая версия:4.0.30319.42000 +// +// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае +// повторной генерации кода. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("DataClient")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("0.0.3.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("0.0.3")] +[assembly: System.Reflection.AssemblyProductAttribute("DataClient")] +[assembly: System.Reflection.AssemblyTitleAttribute("DataClient")] +[assembly: System.Reflection.AssemblyVersionAttribute("0.0.3.0")] + +// Создано классом WriteCodeFragment MSBuild. + diff --git a/DataClient/obj/Debug/net5.0/DataClient.AssemblyInfoInputs.cache b/DataClient/obj/Debug/net5.0/DataClient.AssemblyInfoInputs.cache new file mode 100644 index 0000000..1389bef --- /dev/null +++ b/DataClient/obj/Debug/net5.0/DataClient.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +cc24590fdc5285a811154f711782659f77a86794 diff --git a/DataClient/obj/Debug/net5.0/DataClient.GeneratedMSBuildEditorConfig.editorconfig b/DataClient/obj/Debug/net5.0/DataClient.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..d7e2983 --- /dev/null +++ b/DataClient/obj/Debug/net5.0/DataClient.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,8 @@ +is_global = true +build_property.TargetFramework = net5.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.PublishSingleFile = +build_property.IncludeAllContentForSelfExtract = +build_property._SupportedPlatformList = Android,iOS,Linux,macOS,Windows diff --git a/DataClient/obj/Debug/net5.0/DataClient.assets.cache b/DataClient/obj/Debug/net5.0/DataClient.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..520dc202c50d4413719b6e1e628d846f50d8068d GIT binary patch literal 5279 zcmdT|y>lBy6n{x<$0o!98wf^xhy>>gI9nFN2^AhE_81(a8AB$;rda7Vm$g^Bn%h-~ zhn^NHDk>@}{scN|3VJ%2p`d1H7-mnq(&_R}Ix8VDTS=Pt@!R*czo+`gn`_Siz^}jm zHQT!KM`_{s^mjl1{o`-sms4NKxqtpFee=`Q!pskQ(HZC+EC21W^$*Brn#Gz#N=1T^ zKz1T#NSikIX~Z;X@n)>Fx@!XVz%Z$~k~(NAd6!3>m>RBRKpWb`v}r$UQVW)YWg>Wk zNM^L5GNf_15-gLOJwrG8hSmoRt)&bFp%5n=)?)y0902V12>_S`fG@{G9ytW0H4jEJq-YItN^Mu(onh8`AJtg9k|&H z6x;e=j0L3~^A)J$J)-e8YtHnosXBCkFx*}7V(ju zufBOI!D_JLFKKh1cuUPsUyi9^`LYAB-~hbR8~FWWdur*B1KDa{LUoVsPOpIg_a?``d&~hy8FiCohQ*0F*}+fEBcrSdUc{ z(^h$d3#QA9D_0*}eSdM~T7OuUZ*kqBqP%N5Ay;Jg9*tQ@b~>BP)ZLS9ZB>idBDZOa z#$0yQ6AVjPJrXJ-nISsd?}}|uAsV!~zoA6PV(ZJEqt7Mm`)m)!B}%sD0N^zMc-_{6 zP1zCR7#=&uF)-|J{;#-)za7Rsu-lz`dYr^V#W)ED_56|KD*hH2SHW)a)|2Nj9wNqJ zFo=s!ncH~07`MUjUii;Bk4J=Y9t_dN$H;}eZ;T6JzArr~j^u%190>z<**zNmTmgXD z^kcgf9+pPUr`2z<*e=wQ$7MZo!5d41EA(MqSyot>v8_6PwIIh2!t$(x z@mSt=(c58Ov%A+&x>$Y4Qw5J>ib@x!mmfZ4JtunJdNJ&do4!3NC#kJ(6o;)jTm794 z4?~~z+U#ao?^Jj1x`13e!;h_Y!jGrAyHg2Mal2C%D0QFDXUFpuPT+9$CzBsc#8B>sVZ literal 0 HcmV?d00001 diff --git a/DataClient/obj/Debug/net5.0/DataClient.csprojAssemblyReference.cache b/DataClient/obj/Debug/net5.0/DataClient.csprojAssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..476a91a57d417ced1d6f94bc50db0b838d8c4dfa GIT binary patch literal 110010 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
  • 7GgHKI>uZG8&1@=~yWH z;a&gFuIK6%v^QSC^CZNk`;c~ui1GqJ?|^wxssqX>?Y@-u%T9*aGA2}TeT9VBGRjPZ z+1Ch}cE*}Xm0u@)xm3^_d3i@DZ}=p2v4U7-*gmVri2QFZ&8GqWG2GHs|Y$8 z2;cUYduWF@Mg#TXp#Juhcff5I%)1i2t`y$M6yE!Y@H;i6w{Bc7eTngqmcQ(^O(2?aNOzJ!^ed0KCpP_% z0so9}9Os!SUjyVfFyBfvTT+@wQkvg;9NZI|Ii-T+4~Rr)Bs1%pKrv$@(bb^%BN?;k zr6R4JP5&P<{5Qw^L4(dL?Qc`|i9 zK91Syq{6&dfCp3Pl@{RrL>J)wL>J(B(@Xdv*Op{F(mN)epXCg-mRiBm>$Tgeq{*7V zG2={hcY~wPOD?C>Z#7g}0Gk3+q_HC_?I^qND7%(kCl<6zH6CwEj`EVrDfM(W0Z+zk zcA9~w*vlB19wON+?fBR9Q_NZcTx*y%QqKE=()*m!YwKm~b~-%y-?LsY7Oe@_HYE5c z>2S_6vv*F=Ki11wB4g>Z|IH@6oQ!$5r}1)*^O|wkit+x+a9m9)?ZCY~Ob03J?xFBM zrtmv@9gM^3X%p;D@S1U0{gWoJ$(V6_8Ej4@Y!L0O#JaIgz|t9}i^S%A%H}=FrmK@| z^t1^!rw}&!C%Ix%YOp!gYp&|FH2=dAu~a0ibOWRAFg+wtZ&FZiP*6R+4zB9Vm{38@ zk7grtcSiWr6oi?EynPIWy}XRMu^v(>0i{xy-cn`vGDY~V_hF^X)2*TF%(C5eLAIbL&6ZxQ4Q*gyl=NUympa8e==O$PYN%cL?2 zpekTSONDGJrS%}CHP-9kvOtVgWR4BQ z<7x=Q(WFudR1;t(O1Wz@<#i9`HQDRnmEoDvDY#AXnpcKrQknb?uV4-~_)R618Jby4 zca8}sQ)*OADARy#I?N1--5r$O?UdatCo3~+8U?rWNo8hLG=W*hD9G6cv)NuV3S#b> zPNKsbY)B-qzI+a#1z@Tra_cF%nNGfpvoDY+bvg1{h;+2$QgQEr6l12e<0WHWDg~{yjD!&m1vxTIQ zMYW;tgHjd&RU^z|iPv(<>r%>ViIa^iO`l+OA!%gkr@7)Z(%`hzYaVK?_k7IwhjI}> zErYpOqP2w5x`5JJ?sf1`YdMvI*=1hyP-|I}D{>VExy!xgdJ4QFG7)$MfUSU8DN$>n z)KZk%RbD4nJ!>Pz^b`tWS9{I%6zQMmiq^RXt!qeU&WPms$1hM55#FOyRsq*)m^Bi! zdde(9nXPrQGnXlyg4}haGnYw~D}G}Qe%E`=Rb^=x+xW|4A+-{BPbxQn-iG^8MJ0L)uqZj*@4qC{s>qIY=z zA2x*8rCFf86LpDJ^!3Wn?l*G9c!I(BF0Z+>l`Jh7tEK`WtSsILqIbh=lCVyuSSL}e zo4rnK@z)`lD~h1|rH9V7njY0g2sM%5Ds0 zx7EoOSx%)u_Yi53Wla;vWgNUsHpo4UX!tmFVG8Hg*QCV7NRI&3qcGbvUgp}y5tP?( z%Ik5fV8V0aXq0?dDSrI!}@oM6VJotMHVkz-c?o(^BRdOktf#VLj_)3u2R0f$lldg4hU6 zl7~06m~Mc4-pg1|t=iCs75=o7V5gOp3@ld@sc=m=7)Yr}wj`NSJ=-pu)peMteutyT)&pqoGGsX?&~l+rDEQb5EX4Dg`>VANOfcDJuS_d+0tT2*$Sfn#dHkC^o5hNtQiw3pnXYZSu@H^gol^6f(F8`Xn2o@suByrLA5d#j;55a0qz@^ zZzXyyDZL{pz3&|j?^)6)!2LkOdlp3#m}TthsRpwjNn=3kfJw1fB&qBJub*J{OVB(N znwvs9;ACSUB~noPnKTBHqzTwEmeyJW+d-1m__>!O7R3{4QryADd{{~cQ|OcKsNF}G z((R*5>3j~(Z(GwSpm}}f{I*q*D`sJXna^iNNX=MJd0ikHRU=8I1%N3qMH02|DYfq? zwU#~yBcyUF1-GMoW`tDMG=W^kLORbNSL`FJDH@`waJ}l+BmYV(AZrcNM&kAb<@Pz{ z*4D|~W=*4@b}Y$lRz(w-Wh|lf2D9UQ=H18R)RfW=gxbS&&@h?9*F6-|#}rdXpM!TF zqju*Vj1zq3-N)lpQp+D+=OSjnIMHXWl)zJ`s@39Fp-uqO8K#SrdETc~-lJ5y`W##- zLDMJjoZ>TAO3+W6kZCd&wD|_7Q+?)PXc%=&8y*Wb)MK)`8yIzm=^=r7lY)AKg6ipW z@G!Kr1PW4qpLrNs+Q&^mm9cy!4OG2+jCsZAODO@DQkdRS*?O76d5OX)^D%awQyqA* zz|F^4g-D|bAp0_vX-!{)0ieIn+}LV10%GS34pOLz#1<+80A(P|ASv5COUXP#$qe>6 zxUtnPtpeFuK67KMozi4^cs=)p2FtU3=2gA~|UpMx`3 zHc1um#`(;dD;r_1K>peQIo`)uS;pn~8P0J`->Xmwv=d+^N;TbP%J&}1ce0PMEj0dk z$S8QmZ88}Sbv&FM3%}&3cso;kj4f&ss3yF$jJp?>7%y$A&%Cw7oIX;f;ayCJnIUEP zJLn6!oxYG+J_m0tF;gcfp6@enEipf90-=m8@=}A)Y|_a)hj0E*`iCZ?rOF)O3BXiK zjMh^|H&I5albt-8K0&F5bn@t@P2iNVlef&^R7*xv=p>0%=~EM7+;Uh4OktS0605b8 z)wPsWy_2IUYZ?WwC>c#z6-{84F>hUBFpH4}nk;@);vh92CL!UvisHJG;%acRfhNfl zq!y3{ntYfmNXrdK3w`DWE4&hfRFp-4(+IOzBV>*{ms3KQQbJ374sNj0(7STv4zIU-xxr?s&%9=oHuUD7wI0kxK(!3!Vkt*0p}a1jyq2S-a%wDLrZGwWEYd3& zUWWEWn~FM=+T@yb&pBgdw!+|gIq4LpA4D@e5njNLfl;mi%@r^!C8P}$X^JAf%E?Zl zO;QETt4XKOM%V<98Ed%T7$C3lnai0n&*+lnOsfEMHOv}`Xgwtwp+wjE99+)yOKBEp zuk)G9nSSXva>e*6gYoq~b5j5UIpfsS!dPM+J*(&jK)n%WokUipWJ8qfdY^-v0y3vm z@Vwb)ZVJe(%Mr!mRfUXgV2l;AlNobg#MrfrF>fJb`1{1Fp{0!9K2*SbukWAw%)Pt5 z{=NUwO~v;fX!+^h19LyW=JNlz7DO%?bK{y59ysHZb-UhtZ~Ob}cJ@2EbK$BZ5@-H& z(b}cYe6+CDHP87Lj_eDx=r+3`{ z*5K5vSkFD*TzLL{#m`(f_>|*UwkcQJb*g{rw|&RX*!kPy)rE|;KuWiqJ$q^EH;V?j z*A$wQzEji$W=Y&g{p_)Uxv_+I_SkR~{~Oj2j)aui6V(M_NU(>#MT-`=#wP8j_=dbe zaibMQ!MZ}mfJ1U>L*6)btK`&ec1~@~8>jA;oZ4jP)RscVTJe&o{U9&nr}%#TOCDZ4 zb4vTZAFe2PK>HG1qW=^>V*4eJN?)?g?n|D^8@$_fr}R3Z;AuO&FXW9=J0z!Gv~%jU zym9Jv$*G-oPQ8;iPVJJMde_dW5A(*Uk0hsd+c~v2Z=Cv6a_TcXr@qb`r@oP#`qs{= zeR<>5Pm)vn?VMt+Ec>qKUiQpi7EStH-)#?dIHMigea6pQ|M>YpmU6f4ch^7uvTNyV z_p8Or=TF|a=ITw||8=1CtAE;j#$8AKeAnZ@?-H4NRsW(fe|7zM%&2+M$GS{ke&>LZ zCq%!W|I(V<181^F_N#9l|H_Ad+4JvU$&L*t4!vaZEx-EeVzCWR$&?P!-=xHNzqyH4Q$Q!2=$*CgEDZN|b(!45e zm910FKFVmVJ7x4J+GtKmUF&vv<5YXesSb8db;{PMW-n8nb*GFn)y2-KZrM83?Afoo z?v#=Jde}Ktk~dD3N>26GoYE@_{ik?9-Z(W-a%zy>n;McgP7Rfu8fNFzsJwBiLUL-f zUG}SV*^R*`=wD)t!6({%$+Wy7GhKJesBLE0z3w^LI@Rp$LO^%QXcwyOoT|$kr^1p` zbM2gpXX{k6H+J)Nr;O~Euyblr-Z<4LIkni%sf+T)sb!K=7uz{?Mcz2ILUL-Qol~o_ zb*kBGzty@^M(wx8&Z!%+b*kAbiW_yOjEZ8Nol_g~#;IE+r*5-zYGd9wb+_cyCOfCL zWb4$w2X%Lkzx(YWJO0>t&~Nu#aOs1I7seg2@~93UUtN3mz8^kVKYQumiT9lJ@yci0 z6@2sF+M*{`b^QI<9ygz{>2Jq$IPUoi|NX4`{`q@6=dOM=_@^`HK5};A4}^7Aa{p7w!F!IGe(xX7ndZ9m$@Qscb}tJ({POOR`&MuBtvG)Dkj4uyg8>Y@KTMGWDqLlu@R(**W!8-Z-^ga_VV2r(Vb#r*=qAy=dpu zYkA|;>ylGD?VNfiZ=BjCIrXlcQy=DyQy)oA?be)rNSYxQ!i|c6sAed&#K|c20H5)~ROi6?fL1GJ3^b?40VB zty9fjg?87SGO}L}JEuzW#;H=tsor)@4agg(21-s1vU6%k-Z(W>a%z~JQ=@F#g$n&k zjCNtP-IrA64VekLQ%1p@Xy??lym4x}Jb5Y(nwM=sAVmqg<$Q!3tNKUP^b81z#PBr`R zaJBA~F+5yj=hO|^I@RpG&>MB9j54*(&Z!M~7Gn z%4L58_B6}?cUVBym9I$$*KKzPGL(zR`VUr-lHh+X!9LLkD|~c<~yVw1@>iU{@d1_9Txv#a+j?`?oZC{ zlCoZfSl6?1xPyaS*-{=2&wd0PJYo|s>{N=0ff4*SUu;tfI_(RWo7he+p z=7AsY=)UvC&PSbf>DcSbPI`NA`@uhKUwZU0cNTZnotn_;qcN`6rk`2RMRSVoC&N#1 zw``qi_A=F7cgiSJJ?!38Nw!WkdyJw~cgl!S^tN+qK(QPL~8>gmAPR+1;Q*-jhset5E zwdRyQ^w58b>+;5_u;kQSyEhfj8>i+=P9^M|T9h|VHA+q`wsY#DY@KTM@zgTiDPuf! zvF4Oi`(5F&TR*l!{}N+5a;4putjd;5v-h=D>rNSctu=P9`-W_tYW8l)jk;4tw`852 zQycQesaqwdZnJZ0W8OG*x8&3&JEykfjZ^naPCcMGCDk^MIK_&VTb-DM!WE$-RpiWZ^*o^J7rX%JMGB4lQ&N7lAL;*HRJ7v77YCEUuZ1Zqf{}Lk)&$Y|L@w_23Uw6tN zldvPRC~urdE?Y-$*DDVPTi0**Uc_Z=AYYa%z*EQ(Llis@c0G_v=m>-I53FoO&c%r@jyT{nQI0 zM^r4SUe)`-RxiKWEn0PfXXMF09^7zj`G_A*J1f+w``a6j{PTp>D<=28a`byE-B+CS z)v7J84)|=zmbbgV`0Yb|{=Dsp7F$XSZrI+U{o3uTx<6Js;kT)Ae^{R!@yMNtX`dhW zdYe}s|I-7vEgQAumCydO{*q0?b;QZ$0e1XH!E8pD%t?cdBIb_NC4H^>wyRHG8}8jqa4uE_`d} z)V^$;YW6DhC*3KdOzpRGiutmfUubrx3VhP}Q9ir*g>0Q__UxzVP8r#+$j+%&**ewi zZ>qKKl#%_~*g4fMZ=7l`In_aPN@{#NW$RS4XTQ$6Q%3gdV)v%HW$RS4XTR>cQ%3gd zVdqqd&u-GBRR0pAuhrY`bq~lJG6Qv|3^If4$PCFFr-n*S4YPAr}JXHq&*dj50OD&Z#-sI@Rp$LO^%QXcwyOoT|&#sb+su zVcjX?P0h7)DxNn^&6k`?*g3Vxwy|r}zr<+l7HeN3^=&T7mQ1tf;bpp0MjpP{j?5L= uI@RoXc!lnik%w2>IkhTpoLVh8wZ_gV+-aZHa=2!HQ#VRZt+R3Ji2nnbY}-iy literal 0 HcmV?d00001 diff --git a/DataClient/obj/project.assets.json b/DataClient/obj/project.assets.json new file mode 100644 index 0000000..2656e41 --- /dev/null +++ b/DataClient/obj/project.assets.json @@ -0,0 +1,444 @@ +{ + "version": 3, + "targets": { + "net5.0": { + "Microsoft.Extensions.Configuration.Abstractions/5.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Primitives": "5.0.0" + }, + "compile": { + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll": {} + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll": {} + } + }, + "Microsoft.Extensions.DependencyInjection/5.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0" + }, + "compile": { + "lib/net5.0/Microsoft.Extensions.DependencyInjection.dll": {} + }, + "runtime": { + "lib/net5.0/Microsoft.Extensions.DependencyInjection.dll": {} + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": { + "type": "package", + "compile": { + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {} + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {} + } + }, + "Microsoft.Extensions.Logging/5.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection": "5.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0", + "Microsoft.Extensions.Logging.Abstractions": "5.0.0", + "Microsoft.Extensions.Options": "5.0.0" + }, + "compile": { + "lib/netstandard2.1/Microsoft.Extensions.Logging.dll": {} + }, + "runtime": { + "lib/netstandard2.1/Microsoft.Extensions.Logging.dll": {} + } + }, + "Microsoft.Extensions.Logging.Abstractions/5.0.0": { + "type": "package", + "compile": { + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll": {} + }, + "runtime": { + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll": {} + } + }, + "Microsoft.Extensions.Options/5.0.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0", + "Microsoft.Extensions.Primitives": "5.0.0" + }, + "compile": { + "lib/net5.0/Microsoft.Extensions.Options.dll": {} + }, + "runtime": { + "lib/net5.0/Microsoft.Extensions.Options.dll": {} + } + }, + "Microsoft.Extensions.Primitives/5.0.0": { + "type": "package", + "compile": { + "lib/netcoreapp3.0/Microsoft.Extensions.Primitives.dll": {} + }, + "runtime": { + "lib/netcoreapp3.0/Microsoft.Extensions.Primitives.dll": {} + } + }, + "Newtonsoft.Json/13.0.1": { + "type": "package", + "compile": { + "lib/netstandard2.0/Newtonsoft.Json.dll": {} + }, + "runtime": { + "lib/netstandard2.0/Newtonsoft.Json.dll": {} + } + }, + "NLog/4.7.10": { + "type": "package", + "compile": { + "lib/netstandard2.0/NLog.dll": {} + }, + "runtime": { + "lib/netstandard2.0/NLog.dll": {} + } + }, + "NLog.Extensions.Logging/1.7.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.Configuration.Abstractions": "5.0.0", + "Microsoft.Extensions.Logging": "5.0.0", + "NLog": "4.7.9" + }, + "compile": { + "lib/net5.0/NLog.Extensions.Logging.dll": {} + }, + "runtime": { + "lib/net5.0/NLog.Extensions.Logging.dll": {} + } + } + } + }, + "libraries": { + "Microsoft.Extensions.Configuration.Abstractions/5.0.0": { + "sha512": "ETjSBHMp3OAZ4HxGQYpwyGsD8Sw5FegQXphi0rpoGMT74S4+I2mm7XJEswwn59XAaKOzC15oDSOWEE8SzDCd6Q==", + "type": "package", + "path": "microsoft.extensions.configuration.abstractions/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/net461/Microsoft.Extensions.Configuration.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.xml", + "microsoft.extensions.configuration.abstractions.5.0.0.nupkg.sha512", + "microsoft.extensions.configuration.abstractions.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection/5.0.0": { + "sha512": "Rc2kb/p3Ze6cP6rhFC3PJRdWGbLvSHZc0ev7YlyeU6FmHciDMLrhoVoTUEzKPhN5ZjFgKF1Cf5fOz8mCMIkvpA==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/Microsoft.Extensions.DependencyInjection.dll", + "lib/net461/Microsoft.Extensions.DependencyInjection.xml", + "lib/net5.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/net5.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.xml", + "microsoft.extensions.dependencyinjection.5.0.0.nupkg.sha512", + "microsoft.extensions.dependencyinjection.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": { + "sha512": "ORj7Zh81gC69TyvmcUm9tSzytcy8AVousi+IVRAI8nLieQjOFryRusSFh7+aLk16FN9pQNqJAiMd7BTKINK0kA==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection.abstractions/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net461/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512", + "microsoft.extensions.dependencyinjection.abstractions.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "Microsoft.Extensions.Logging/5.0.0": { + "sha512": "MgOwK6tPzB6YNH21wssJcw/2MKwee8b2gI7SllYfn6rvTpIrVvVS5HAjSU2vqSku1fwqRvWP0MdIi14qjd93Aw==", + "type": "package", + "path": "microsoft.extensions.logging/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/Microsoft.Extensions.Logging.dll", + "lib/net461/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.xml", + "lib/netstandard2.1/Microsoft.Extensions.Logging.dll", + "lib/netstandard2.1/Microsoft.Extensions.Logging.xml", + "microsoft.extensions.logging.5.0.0.nupkg.sha512", + "microsoft.extensions.logging.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "Microsoft.Extensions.Logging.Abstractions/5.0.0": { + "sha512": "NxP6ahFcBnnSfwNBi2KH2Oz8Xl5Sm2krjId/jRR3I7teFphwiUoUeZPwTNA21EX+5PtjqmyAvKaOeBXcJjcH/w==", + "type": "package", + "path": "microsoft.extensions.logging.abstractions/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net461/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml", + "microsoft.extensions.logging.abstractions.5.0.0.nupkg.sha512", + "microsoft.extensions.logging.abstractions.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "Microsoft.Extensions.Options/5.0.0": { + "sha512": "CBvR92TCJ5uBIdd9/HzDSrxYak+0W/3+yxrNg8Qm6Bmrkh5L+nu6m3WeazQehcZ5q1/6dDA7J5YdQjim0165zg==", + "type": "package", + "path": "microsoft.extensions.options/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/Microsoft.Extensions.Options.dll", + "lib/net461/Microsoft.Extensions.Options.xml", + "lib/net5.0/Microsoft.Extensions.Options.dll", + "lib/net5.0/Microsoft.Extensions.Options.xml", + "lib/netstandard2.0/Microsoft.Extensions.Options.dll", + "lib/netstandard2.0/Microsoft.Extensions.Options.xml", + "microsoft.extensions.options.5.0.0.nupkg.sha512", + "microsoft.extensions.options.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "Microsoft.Extensions.Primitives/5.0.0": { + "sha512": "cI/VWn9G1fghXrNDagX9nYaaB/nokkZn0HYAawGaELQrl8InSezfe9OnfPZLcJq3esXxygh3hkq2c3qoV3SDyQ==", + "type": "package", + "path": "microsoft.extensions.primitives/5.0.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "THIRD-PARTY-NOTICES.TXT", + "lib/net461/Microsoft.Extensions.Primitives.dll", + "lib/net461/Microsoft.Extensions.Primitives.xml", + "lib/netcoreapp3.0/Microsoft.Extensions.Primitives.dll", + "lib/netcoreapp3.0/Microsoft.Extensions.Primitives.xml", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll", + "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml", + "microsoft.extensions.primitives.5.0.0.nupkg.sha512", + "microsoft.extensions.primitives.nuspec", + "useSharedDesignerContext.txt", + "version.txt" + ] + }, + "Newtonsoft.Json/13.0.1": { + "sha512": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", + "type": "package", + "path": "newtonsoft.json/13.0.1", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "LICENSE.md", + "lib/net20/Newtonsoft.Json.dll", + "lib/net20/Newtonsoft.Json.xml", + "lib/net35/Newtonsoft.Json.dll", + "lib/net35/Newtonsoft.Json.xml", + "lib/net40/Newtonsoft.Json.dll", + "lib/net40/Newtonsoft.Json.xml", + "lib/net45/Newtonsoft.Json.dll", + "lib/net45/Newtonsoft.Json.xml", + "lib/netstandard1.0/Newtonsoft.Json.dll", + "lib/netstandard1.0/Newtonsoft.Json.xml", + "lib/netstandard1.3/Newtonsoft.Json.dll", + "lib/netstandard1.3/Newtonsoft.Json.xml", + "lib/netstandard2.0/Newtonsoft.Json.dll", + "lib/netstandard2.0/Newtonsoft.Json.xml", + "newtonsoft.json.13.0.1.nupkg.sha512", + "newtonsoft.json.nuspec", + "packageIcon.png" + ] + }, + "NLog/4.7.10": { + "sha512": "rcegW7kYOCjl7wX0SzsqpPBqnJ51JKi1WkYb6QBVX0Wc5IgH19Pv4t/co+T0s06OS0Ne44xgkY/mHg0PdrmJow==", + "type": "package", + "path": "nlog/4.7.10", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/monoandroid44/NLog.dll", + "lib/monoandroid44/NLog.xml", + "lib/net35/NLog.dll", + "lib/net35/NLog.xml", + "lib/net40-client/NLog.dll", + "lib/net40-client/NLog.xml", + "lib/net45/NLog.dll", + "lib/net45/NLog.xml", + "lib/netstandard1.3/NLog.dll", + "lib/netstandard1.3/NLog.xml", + "lib/netstandard1.5/NLog.dll", + "lib/netstandard1.5/NLog.xml", + "lib/netstandard2.0/NLog.dll", + "lib/netstandard2.0/NLog.xml", + "lib/sl4/NLog.dll", + "lib/sl4/NLog.xml", + "lib/sl5/NLog.dll", + "lib/sl5/NLog.xml", + "lib/wp8/NLog.dll", + "lib/wp8/NLog.xml", + "lib/xamarinios10/NLog.dll", + "lib/xamarinios10/NLog.xml", + "nlog.4.7.10.nupkg.sha512", + "nlog.nuspec" + ] + }, + "NLog.Extensions.Logging/1.7.2": { + "sha512": "0y1QziAUCdePQc4itPOQF3xDcs0iE9NHlIK0hE0eA0+Ef6E9dnJDPveNu7w2ckYaDfJIFHpOoLK8sZmNEyiBCw==", + "type": "package", + "path": "nlog.extensions.logging/1.7.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "N.png", + "lib/net451/NLog.Extensions.Logging.dll", + "lib/net451/NLog.Extensions.Logging.xml", + "lib/net461/NLog.Extensions.Logging.dll", + "lib/net461/NLog.Extensions.Logging.xml", + "lib/net5.0/NLog.Extensions.Logging.dll", + "lib/net5.0/NLog.Extensions.Logging.xml", + "lib/netcoreapp3.0/NLog.Extensions.Logging.dll", + "lib/netcoreapp3.0/NLog.Extensions.Logging.xml", + "lib/netstandard1.3/NLog.Extensions.Logging.dll", + "lib/netstandard1.3/NLog.Extensions.Logging.xml", + "lib/netstandard1.5/NLog.Extensions.Logging.dll", + "lib/netstandard1.5/NLog.Extensions.Logging.xml", + "lib/netstandard2.0/NLog.Extensions.Logging.dll", + "lib/netstandard2.0/NLog.Extensions.Logging.xml", + "nlog.extensions.logging.1.7.2.nupkg.sha512", + "nlog.extensions.logging.nuspec" + ] + } + }, + "projectFileDependencyGroups": { + "net5.0": [ + "NLog >= 4.7.10", + "NLog.Extensions.Logging >= 1.7.2", + "Newtonsoft.Json >= 13.0.1" + ] + }, + "packageFolders": { + "C:\\Users\\google\\.nuget\\packages\\": {}, + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {}, + "C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\": {}, + "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder": {} + }, + "project": { + "version": "0.0.3", + "restore": { + "projectUniqueName": "D:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj", + "projectName": "DataClient", + "projectPath": "D:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj", + "packagesPath": "C:\\Users\\google\\.nuget\\packages\\", + "outputPath": "D:\\GIT\\ASCKU_PC\\DataClient\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages", + "C:\\Program Files (x86)\\Microsoft\\Xamarin\\NuGet\\", + "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder" + ], + "configFilePaths": [ + "C:\\Users\\google\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Xamarin.Offline.config" + ], + "originalTargetFrameworks": [ + "net5.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net5.0": { + "targetAlias": "net5.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + } + }, + "frameworks": { + "net5.0": { + "targetAlias": "net5.0", + "dependencies": { + "NLog": { + "target": "Package", + "version": "[4.7.10, )" + }, + "NLog.Extensions.Logging": { + "target": "Package", + "version": "[1.7.2, )" + }, + "Newtonsoft.Json": { + "target": "Package", + "version": "[13.0.1, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\5.0.201\\RuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/DataClient/obj/project.nuget.cache b/DataClient/obj/project.nuget.cache new file mode 100644 index 0000000..1486ebf --- /dev/null +++ b/DataClient/obj/project.nuget.cache @@ -0,0 +1,19 @@ +{ + "version": 2, + "dgSpecHash": "fLzCMyL0TTYR6ScHYw8lseE4tuHRjlfRhsrbzgdqw/qeVRrQYigyT797G0cUiPOmrt1GVD0KWz3n3AZIE22bzQ==", + "success": true, + "projectFilePath": "D:\\GIT\\ASCKU_PC\\DataClient\\DataClient.csproj", + "expectedPackageFiles": [ + "C:\\Users\\google\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\5.0.0\\microsoft.extensions.configuration.abstractions.5.0.0.nupkg.sha512", + "C:\\Users\\google\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\5.0.0\\microsoft.extensions.dependencyinjection.5.0.0.nupkg.sha512", + "C:\\Users\\google\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\5.0.0\\microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512", + "C:\\Users\\google\\.nuget\\packages\\microsoft.extensions.logging\\5.0.0\\microsoft.extensions.logging.5.0.0.nupkg.sha512", + "C:\\Users\\google\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\5.0.0\\microsoft.extensions.logging.abstractions.5.0.0.nupkg.sha512", + "C:\\Users\\google\\.nuget\\packages\\microsoft.extensions.options\\5.0.0\\microsoft.extensions.options.5.0.0.nupkg.sha512", + "C:\\Users\\google\\.nuget\\packages\\microsoft.extensions.primitives\\5.0.0\\microsoft.extensions.primitives.5.0.0.nupkg.sha512", + "C:\\Users\\google\\.nuget\\packages\\newtonsoft.json\\13.0.1\\newtonsoft.json.13.0.1.nupkg.sha512", + "C:\\Users\\google\\.nuget\\packages\\nlog\\4.7.10\\nlog.4.7.10.nupkg.sha512", + "C:\\Users\\google\\.nuget\\packages\\nlog.extensions.logging\\1.7.2\\nlog.extensions.logging.1.7.2.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file diff --git a/Tests/bin/Debug/netcoreapp3.1/04.txt b/Tests/bin/Debug/netcoreapp3.1/04.txt new file mode 100644 index 0000000..0de3bad --- /dev/null +++ b/Tests/bin/Debug/netcoreapp3.1/04.txt @@ -0,0 +1,2 @@ +2021-05-26 11:44:42.8 035 Отс. связь ГМП 01 +2021-05-26 11:44:43.4 035 Отс. связь ГМП 00