diff --git a/src/WorkFlowCheck.MAUI/Pages/BaseStock/BaseStockPage.xaml b/src/WorkFlowCheck.MAUI/Pages/BaseStock/BaseStockPage.xaml
index 3842259..2cb6290 100644
--- a/src/WorkFlowCheck.MAUI/Pages/BaseStock/BaseStockPage.xaml
+++ b/src/WorkFlowCheck.MAUI/Pages/BaseStock/BaseStockPage.xaml
@@ -2,17 +2,28 @@
-
-
+ Title="Törzs adatok">
+
+
+
\ No newline at end of file
diff --git a/src/WorkFlowCheck.MAUI/Pages/BaseStock/CheckPoints/CheckPointEditPage.xaml b/src/WorkFlowCheck.MAUI/Pages/BaseStock/CheckPoints/CheckPointEditPage.xaml
index 418d66e..8291252 100644
--- a/src/WorkFlowCheck.MAUI/Pages/BaseStock/CheckPoints/CheckPointEditPage.xaml
+++ b/src/WorkFlowCheck.MAUI/Pages/BaseStock/CheckPoints/CheckPointEditPage.xaml
@@ -9,6 +9,7 @@
+
diff --git a/src/WorkFlowCheck.MAUI/Pages/BaseStock/CheckPoints/CheckPointsPage.xaml b/src/WorkFlowCheck.MAUI/Pages/BaseStock/CheckPoints/CheckPointsPage.xaml
index 8a05b12..023788e 100644
--- a/src/WorkFlowCheck.MAUI/Pages/BaseStock/CheckPoints/CheckPointsPage.xaml
+++ b/src/WorkFlowCheck.MAUI/Pages/BaseStock/CheckPoints/CheckPointsPage.xaml
@@ -12,10 +12,10 @@
-
-
diff --git a/src/WorkFlowCheck.MAUI/Pages/BaseStock/CheckPoints/CheckPointsPage.xaml.cs b/src/WorkFlowCheck.MAUI/Pages/BaseStock/CheckPoints/CheckPointsPage.xaml.cs
index 3df3e18..c44afcb 100644
--- a/src/WorkFlowCheck.MAUI/Pages/BaseStock/CheckPoints/CheckPointsPage.xaml.cs
+++ b/src/WorkFlowCheck.MAUI/Pages/BaseStock/CheckPoints/CheckPointsPage.xaml.cs
@@ -3,6 +3,7 @@ using System.Windows.Input;
using WorkFlowCheck.Common.DTO;
using WorkFlowCheck.MAUI.Pages.BaseStock.CheckPoints;
using WorkFlowCheck.MAUI.Services.Interfaces;
+using Plugin.NFC;
namespace WorkFlowCheck.MAUI.Pages.BaseStock;
@@ -33,6 +34,7 @@ public partial class CheckPointsPage : ContentPage
BindingContext = this;
await LoadCheckPoints();
+
}
private async Task LoadCheckPoints()
{
@@ -42,7 +44,6 @@ public partial class CheckPointsPage : ContentPage
IsRefreshing = false;
OnPropertyChanged(nameof(IsRefreshing));
}
-
private async void OnEditItem(CheckPointDTO checkPointDTO)
{
// Navigálás a CheckPointEdit.xaml-ra, és átadjuk az editálni kívánt elemet
@@ -50,13 +51,65 @@ public partial class CheckPointsPage : ContentPage
}
private async void OnPairItem(CheckPointDTO checkPointDTO)
{
- // Navigálás a CheckPointEdit.xaml-ra, és átadjuk az editálni kívánt elemet
- await Navigation.PushAsync(new CheckPointEditPage(checkPointDTO));
+ _checkPointDTO = checkPointDTO;
+ await BeginListening();
}
-
protected override bool OnBackButtonPressed()
{
Shell.Current.GoToAsync("//BaseStockPage");
return true;
}
+
+ #region NFC
+ bool _eventsAlreadySubscribed = false;
+ CheckPointDTO _checkPointDTO = null;
+ async Task BeginListening()
+ {
+ try
+ {
+ MainThread.BeginInvokeOnMainThread(() =>
+ {
+ SubscribeEvents();
+ CrossNFC.Current.StartListening();
+ });
+ }
+ catch (Exception ex)
+ {
+
+ }
+ }
+ void SubscribeEvents()
+ {
+ if (_eventsAlreadySubscribed)
+ UnsubscribeEvents();
+
+ _eventsAlreadySubscribed = true;
+ CrossNFC.Current.OnMessageReceived += Current_OnMessageReceived_NFCData;
+ }
+ void UnsubscribeEvents()
+ {
+ CrossNFC.Current.OnMessageReceived -= Current_OnMessageReceived_NFCData;
+ _eventsAlreadySubscribed = false;
+ }
+ async void Current_OnMessageReceived_NFCData(ITagInfo tagInfo)
+ {
+
+ if (tagInfo == null)
+ {
+ return;
+ }
+ var identifier = tagInfo.Identifier;
+ var serialNumber = NFCUtils.ByteArrayToHexString(identifier, ":");
+
+ if (_checkPointDTO != null)
+ {
+ _checkPointDTO.Code = serialNumber;
+ await _baseStockService.UpdateCheckPoint(_checkPointDTO);
+ UnsubscribeEvents();
+ CrossNFC.Current.StopListening();
+ await LoadCheckPoints();
+ }
+ }
+
+ #endregion
}
\ No newline at end of file
diff --git a/src/WorkFlowCheck.MAUI/Services/BaseStockService.cs b/src/WorkFlowCheck.MAUI/Services/BaseStockService.cs
index 9800eae..ba18dd1 100644
--- a/src/WorkFlowCheck.MAUI/Services/BaseStockService.cs
+++ b/src/WorkFlowCheck.MAUI/Services/BaseStockService.cs
@@ -29,5 +29,14 @@ namespace WorkFlowCheck.MAUI.Services
return _mapper.Map(await _dbContext.CheckPoints.Where(w => w.Id == id).FirstOrDefaultAsync());
}
+ public async Task UpdateCheckPoint(CheckPointDTO checkPoint)
+ {
+ var retVal = checkPoint;
+
+ _dbContext.CheckPoints.Update(_mapper.Map(checkPoint));
+ _dbContext.SaveChanges();
+
+ return retVal;
+ }
}
}
diff --git a/src/WorkFlowCheck.MAUI/Services/Interfaces/IBaseStockService.cs b/src/WorkFlowCheck.MAUI/Services/Interfaces/IBaseStockService.cs
index f74c96c..d43562a 100644
--- a/src/WorkFlowCheck.MAUI/Services/Interfaces/IBaseStockService.cs
+++ b/src/WorkFlowCheck.MAUI/Services/Interfaces/IBaseStockService.cs
@@ -11,7 +11,7 @@ namespace WorkFlowCheck.MAUI.Services.Interfaces
{
Task> GetAllCheckPoints();
Task GetCheckPoint(int id);
-
+ Task UpdateCheckPoint(CheckPointDTO checkPoint);
}