WS archive client first look
authorVásáry Dániel <vasary@elgekko.net>
Thu, 22 Feb 2024 23:10:08 +0000 (00:10 +0100)
committerVásáry Dániel <vasary@elgekko.net>
Thu, 22 Feb 2024 23:10:08 +0000 (00:10 +0100)
12 files changed:
client/IntegrationTests/App.config
client/IntegrationTests/IntegrationTests.csproj
client/IntegrationTests/JobEngineIT.cs
client/IntegrationTests/nlog.config
client/IntegrationTests/packages.config
client/Maestro/Maestro.csproj
client/Maestro/packages.config
client/MaestroShared/Configuration/ConfigurationInfo.cs
client/MediaCubeClient/MediaCubeArchiveWSApi.cs [new file with mode: 0644]
client/MediaCubeClient/MediaCubeClient.csproj
client/MediaCubeClient/MediaCubeWSApi.cs
client/MediaCubeClient/packages.config

index acd65b49ebe8c9cb2a8eba3b09eb7811010df81e..7cf8d2bbae6f68d094f38fa885732abffc226019 100644 (file)
         <assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />\r
         <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />\r
       </dependentAssembly>\r
+      <dependentAssembly>\r
+        <assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />\r
+        <bindingRedirect oldVersion="0.0.0.0-4.0.2.0" newVersion="4.0.2.0" />\r
+      </dependentAssembly>\r
     </assemblyBinding>\r
   </runtime>\r
 </configuration>\r
index a2503bc4de98afa620c971b859182671201ff058..7b6e2e5c8ae1fe0c0945fd691fd61ffef09e6c35 100644 (file)
       <HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>\r
     </Reference>\r
     <Reference Include="System.Windows.Forms" />\r
-    <Reference Include="websocket-sharp, Version=1.0.2.42480, Culture=neutral, PublicKeyToken=5660b08a1845a91e" />\r
+    <Reference Include="websocket-sharp-latest, Version=1.0.2.0, Culture=neutral, PublicKeyToken=5660b08a1845a91e, processorArchitecture=MSIL">\r
+      <HintPath>..\packages\websocket-sharp-latest.1.0.2\lib\netstandard2.0\websocket-sharp-latest.dll</HintPath>\r
+    </Reference>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <Compile Include="JobEngineIT.cs" />\r
   <ItemGroup>\r
     <None Include="App.config" />\r
     <None Include="nlog.config">\r
-      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>\r
+      <CopyToOutputDirectory>Always</CopyToOutputDirectory>\r
+      <SubType>Designer</SubType>\r
     </None>\r
     <None Include="packages.config" />\r
   </ItemGroup>\r
index ffe0859e2a8dac219ce2171c2ffc84f259abbb17..9804539bf4479c9f5c27f4055acc88c8db9f9e76 100644 (file)
@@ -1,4 +1,5 @@
-using MaestroShared.Model;\r
+using MaestroShared.Configuration;\r
+using MaestroShared.Model;\r
 using MediaCubeClient;\r
 using Microsoft.VisualStudio.TestTools.UnitTesting;\r
 using System;\r
@@ -75,9 +76,14 @@ namespace IntegrationTests {
         }\r
 \r
         [TestMethod]\r
-        public void TestNotify() {\r
-            MediaCubeApi client = new MediaCubeApi("http://localhost:8080/services/rest/jobengine/", null, null, 100, null);\r
-            client.Notify("vasay@elgekko.net", null, "Újravágást kérek!");\r
+        public void TestArchiveWSApi() {\r
+            Connection connection = new Connection {\r
+                Address = new Uri("ws://localhost:9080/services/wsapi-archive"),\r
+                Timeout = 5000\r
+            };\r
+            MediaCubeArchiveWSApi client = new MediaCubeArchiveWSApi(connection);\r
+            var message = new byte[] { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26 };\r
+            client.Submit(message);\r
         }\r
 \r
     }\r
index 4fed02b588e9a3d42f773919a61d33cc2034b0be..a4f110a9e1680a1240a3803cafd48f6e862411da 100644 (file)
@@ -3,14 +3,12 @@
 <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true">\r
   <!--Kimenetek-->\r
   <targets>\r
-    <target name="console" xsi:type="Console" layout="${date:format=yyyy.MM.dd HH\:mm\:ss} ${level} ${message}"/>\r
-    <target name="debug" xsi:type="OutputDebugString" layout="${date:format=yyyy.MM.dd HH\:mm\:ss} ${level} ${message} ${newline}" />\r
-    <target name="file" xsi:type="File" layout="${date:format=yyyy.MM.dd HH\:mm\:ss} ${level} ${message}" fileName="${basedir}/logs/thumbnailserver.log" keepFileOpen="false" encoding="utf-8" archiveEvery="Day" archiveNumbering="Rolling" maxArchiveFiles="7" />\r
+    <target name="t1" xsi:type="Debugger" layout="${date:format=HH\:mm\:ss} ${level:uppercase=true} ${callsite:includeNamespace=false:includeSourcePath=false} | ${message} ${callsite:fileName=true:className=false:includeSourcePath=false:methodName=false:includeNamespace=false}" />\r
+    <target name="t2" xsi:type="Debugger" layout="ERROR stack: ${stacktrace:format=Raw}" />\r
   </targets>\r
   <!--Naplózási szint-->\r
   <rules>\r
-    <logger name="*" minlevel="Trace" writeTo="console" />\r
-    <logger name="*" minlevel="Trace" writeTo="debug" />\r
-    <logger name="*" minlevel="Trace" writeTo="file" />\r
+    <logger name="*" minlevel="Trace" writeTo="t1" />\r
+    <logger name="*" minlevel="Error" writeTo="t2" />\r
   </rules>\r
 </nlog>\r
index 351b7b276e6b31bbe307ea8ee193c23e7496c102..3a4ae29e231305905e3002266e4558f9a9ee5fd9 100644 (file)
@@ -17,4 +17,5 @@
   <package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net461" />\r
   <package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net461" />\r
   <package id="System.Threading.Tasks" version="4.3.0" targetFramework="net461" />\r
+  <package id="websocket-sharp-latest" version="1.0.2" targetFramework="net461" />\r
 </packages>
\ No newline at end of file
index 63600b00aa69425b330e1b9cefb7237536fec27a..0b71a1d6f66241f1152b88fb482ff966e9bcb0e5 100644 (file)
     <Reference Include="System.Windows.Forms" />\r
     <Reference Include="System.Xml" />\r
     <Reference Include="System.Xml.Linq" />\r
-    <Reference Include="websocket-sharp, Version=1.0.2.42480, Culture=neutral, PublicKeyToken=5660b08a1845a91e" />\r
+    <Reference Include="websocket-sharp-latest, Version=1.0.2.0, Culture=neutral, PublicKeyToken=5660b08a1845a91e, processorArchitecture=MSIL">\r
+      <HintPath>..\packages\websocket-sharp-latest.1.0.2\lib\netstandard2.0\websocket-sharp-latest.dll</HintPath>\r
+    </Reference>\r
     <Reference Include="WindowsBase" />\r
   </ItemGroup>\r
   <ItemGroup>\r
index 8df054a48a63d901f3127305d12438732e246f76..86a8bcfb3d3731adeadae73246c3e6323b52b27c 100644 (file)
@@ -13,4 +13,5 @@
   <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net461" />\r
   <package id="NLog" version="4.4.11" targetFramework="net461" />\r
   <package id="NLog.Windows.Forms" version="4.2.3" targetFramework="net461" />\r
+  <package id="websocket-sharp-latest" version="1.0.2" targetFramework="net461" />\r
 </packages>
\ No newline at end of file
index 0abf1da9c76ef90d06d8a50affba67fa82022ba3..7d73da281847ad786d6f467f69e03551955a4709 100644 (file)
@@ -216,6 +216,7 @@ namespace MaestroShared.Configuration {
         public string MetadataTitleFormat { get; set; }\r
         public string MetadataIDFormat { get; set; }\r
         public Connection WSServer { get; set; }\r
+        public Connection WSArchiveServer { get; set; }\r
         public string JobTemplate { get; set; }\r
         public int KillDateDays { get; set; }\r
         public Uri ArchiveFolder { get; set; }\r
diff --git a/client/MediaCubeClient/MediaCubeArchiveWSApi.cs b/client/MediaCubeClient/MediaCubeArchiveWSApi.cs
new file mode 100644 (file)
index 0000000..7a43877
--- /dev/null
@@ -0,0 +1,54 @@
+using MaestroShared.Configuration;
+using NLog;
+using System;
+using System.IO;
+using WebSocketSharp;
+
+namespace MediaCubeClient {
+
+    public class MediaCubeArchiveWSApi {
+        private const string DATEFORMAT = "yyyy'-'MM'-'dd'T'HH':'mm':'ssK";
+        private static NLog.Logger logger = LogManager.GetCurrentClassLogger();
+        private readonly Connection connection;
+        private WebSocket ws;
+
+        public MediaCubeArchiveWSApi(Connection connection) {
+            this.connection = connection;
+        }
+
+        public void Submit(byte[] message) {
+
+            try {
+                ws = new WebSocket(connection.Address.ToString()) {
+                    WaitTime = TimeSpan.FromMilliseconds(connection.Timeout)
+                };
+
+                //ws.SslConfiguration.ServerCertificateValidationCallback = (s, c, ch, e) => {
+                //    return true;
+                //};
+                ws.OnMessage += (s, e) => {
+                    logger.Info(e.Data);
+                };
+                ws.OnError += (s, e) => {
+                    ws.Close();
+                    logger.Info(e.Message);
+                };
+
+                ws.Connect();
+                //ws.Send("valami.txt");
+                //65536
+                FileInfo fi = new FileInfo(@"c:\Downloads\Tajekoztatas_a_kamarai_hozzajarulas_fizetesi_hataridorol_2024.pdf");
+                ws.Send(fi);
+            } catch (Exception e) {
+                logger.Error(e.Message);
+            }
+        }
+
+
+        public void Close() {
+            if (ws != null)
+                ws.Close();
+        }
+    }
+
+}
index 03a2b9e3a29bb46fd4d47f8376c74f8d78bb85a1..bfc8f66cafbd5e011478c7b2ea2f8f4299e81f75 100644 (file)
     <Reference Include="System.Drawing" />\r
     <Reference Include="System.Runtime.Serialization" />\r
     <Reference Include="System.Xml" />\r
-    <Reference Include="websocket-sharp, Version=1.0.2.42480, Culture=neutral, PublicKeyToken=5660b08a1845a91e, processorArchitecture=MSIL">\r
-      <SpecificVersion>False</SpecificVersion>\r
-      <HintPath>lib\websocket-sharp.dll</HintPath>\r
+    <Reference Include="websocket-sharp-latest, Version=1.0.2.0, Culture=neutral, PublicKeyToken=5660b08a1845a91e, processorArchitecture=MSIL">\r
+      <HintPath>..\packages\websocket-sharp-latest.1.0.2\lib\netstandard2.0\websocket-sharp-latest.dll</HintPath>\r
     </Reference>\r
   </ItemGroup>\r
   <ItemGroup>\r
     <Compile Include="MediaCubeJsonConvert.cs" />\r
+    <Compile Include="MediaCubeArchiveWSApi.cs" />\r
     <Compile Include="MediaCubeWSApi.cs" />\r
     <Compile Include="MediaCubeApi.cs" />\r
     <Compile Include="MediaCubeStrings.cs" />\r
index 32f8abad90ae98f6bc53ab81b79f40ed61258ef9..8325afa34682600fc19e163ca587ed04147d8dab 100644 (file)
@@ -137,7 +137,7 @@ namespace MediaCubeClient {
                 barrier.SignalAndWait();\r
             } catch (Exception e) {\r
                 messageBus?.Send(new MediaCubeWSMessage($"Sikertelen MediaCube folyamatindítás. A rendszer üzenete: {e.Message}"));\r
-            } \r
+            }\r
             return result;\r
         }\r
 \r
index 0693a580ef50d04b8d4c6b7c136a89028274168c..d47178c23b8a8ab5d75508fdf9b49b162f839011 100644 (file)
@@ -4,4 +4,5 @@
   <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net461" />\r
   <package id="NLog" version="4.4.12" targetFramework="net461" />\r
   <package id="RestSharp" version="105.2.3" targetFramework="net461" />\r
+  <package id="websocket-sharp-latest" version="1.0.2" targetFramework="net461" />\r
 </packages>
\ No newline at end of file