From c7a3a608baecbe2c22893fb6da882fa2521ae503 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Szab=C3=B3?= Date: Wed, 2 Apr 2025 09:04:28 +0200 Subject: [PATCH] =?UTF-8?q?UI=20jav=C3=ADt=C3=A1s=20+=20bek=C3=BCld=C3=A9s?= =?UTF-8?q?,=20k=C3=A9pm=C3=A9retez=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Handlers/ProgressableStreamContent.cs | 44 ++++ src/WorkFlowCheck.MAUI/MainPage.xaml | 25 +- .../CheckPoints/CheckPointsPage.xaml | 2 + .../CheckPoints/CheckPointsPage.xaml.cs | 36 ++- .../Pages/CheckList/CheckListPage.xaml | 33 ++- .../Pages/CheckList/CheckListWorkPage.xaml | 11 +- .../Pages/CheckList/CheckListWorkPage.xaml.cs | 74 +++++- .../Pages/Security/LoginPage.xaml.cs | 5 +- .../Pages/System/SyncPage.xaml | 34 ++- .../Pages/System/SyncPage.xaml.cs | 46 +++- .../Services/CheckListService.cs | 4 +- .../Services/Interfaces/ISyncService.cs | 17 +- .../Services/SyncService.cs | 246 ++++++++---------- .../WorkFlowCheck.MAUI.csproj | 2 + 14 files changed, 391 insertions(+), 188 deletions(-) create mode 100644 src/WorkFlowCheck.MAUI/Handlers/ProgressableStreamContent.cs diff --git a/src/WorkFlowCheck.MAUI/Handlers/ProgressableStreamContent.cs b/src/WorkFlowCheck.MAUI/Handlers/ProgressableStreamContent.cs new file mode 100644 index 0000000..0605057 --- /dev/null +++ b/src/WorkFlowCheck.MAUI/Handlers/ProgressableStreamContent.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Text; +using System.Threading.Tasks; + +namespace WorkFlowCheck.MAUI.Handlers +{ + public class ProgressableStreamContent : HttpContent + { + private readonly Stream _stream; + private readonly int _bufferSize; + private readonly Action _progress; + + public ProgressableStreamContent(Stream stream, int bufferSize, Action progress) + { + _stream = stream; + _bufferSize = bufferSize; + _progress = progress; + } + + protected override async Task SerializeToStreamAsync(Stream stream, TransportContext context) + { + var buffer = new byte[_bufferSize]; + long totalBytesRead = 0; + int bytesRead; + + while ((bytesRead = await _stream.ReadAsync(buffer, 0, buffer.Length)) > 0) + { + await stream.WriteAsync(buffer, 0, bytesRead); + totalBytesRead += bytesRead; + _progress(totalBytesRead, _stream.Length); + } + } + + protected override bool TryComputeLength(out long length) + { + length = _stream.Length; + return true; + } + } + +} diff --git a/src/WorkFlowCheck.MAUI/MainPage.xaml b/src/WorkFlowCheck.MAUI/MainPage.xaml index be85abe..fd3f6af 100644 --- a/src/WorkFlowCheck.MAUI/MainPage.xaml +++ b/src/WorkFlowCheck.MAUI/MainPage.xaml @@ -2,13 +2,19 @@ + Title="Főmenü" + BackgroundColor="#f0f0f0"> - + - +