NFC a CheckPoints-hoz
This commit is contained in:
@@ -2,17 +2,28 @@
|
|||||||
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
x:Class="WorkFlowCheck.MAUI.Pages.BaseStock.BaseStockPage"
|
x:Class="WorkFlowCheck.MAUI.Pages.BaseStock.BaseStockPage"
|
||||||
Title="BaseStockPage">
|
Title="Törzs adatok">
|
||||||
<VerticalStackLayout>
|
<VerticalStackLayout Margin="10,0,10,0">
|
||||||
<Label
|
|
||||||
Text="Welcome to .NET MAUI!"
|
|
||||||
VerticalOptions="Center"
|
|
||||||
HorizontalOptions="Center" />
|
|
||||||
<Button
|
<Button
|
||||||
x:Name="ButtonGetCheckPoints"
|
x:Name="ButtonGetCheckPoints"
|
||||||
|
Margin="0,0,0,20"
|
||||||
Text="Ellenőrzési pontok"
|
Text="Ellenőrzési pontok"
|
||||||
SemanticProperties.Hint="Ellenőrzési pontok"
|
SemanticProperties.Hint="Ellenőrzési pontok"
|
||||||
Clicked="OnButtonGetCheckPoints"
|
Clicked="OnButtonGetCheckPoints"
|
||||||
HorizontalOptions="Fill" />
|
HorizontalOptions="Fill" />
|
||||||
|
<Button
|
||||||
|
x:Name="ButtonGetEquipments"
|
||||||
|
Margin="0,0,0,20"
|
||||||
|
Text="Berendezések"
|
||||||
|
SemanticProperties.Hint="Berendezések"
|
||||||
|
Clicked="OnButtonGetCheckPoints"
|
||||||
|
HorizontalOptions="Fill" />
|
||||||
|
<Button
|
||||||
|
x:Name="ButtonGetLocations"
|
||||||
|
Margin="0,0,0,20"
|
||||||
|
Text="Lokációk"
|
||||||
|
SemanticProperties.Hint="Lokációk"
|
||||||
|
Clicked="OnButtonGetCheckPoints"
|
||||||
|
HorizontalOptions="Fill" />
|
||||||
</VerticalStackLayout>
|
</VerticalStackLayout>
|
||||||
</ContentPage>
|
</ContentPage>
|
||||||
@@ -9,6 +9,7 @@
|
|||||||
|
|
||||||
<!-- Editálható név mező -->
|
<!-- Editálható név mező -->
|
||||||
<Entry Text="{Binding CheckPointDTO.ShortName}" Placeholder="Edit item name" />
|
<Entry Text="{Binding CheckPointDTO.ShortName}" Placeholder="Edit item name" />
|
||||||
|
<Entry Text="{Binding CheckPointDTO.Code}" Placeholder="Edit item name" />
|
||||||
|
|
||||||
<Grid ColumnSpacing="10">
|
<Grid ColumnSpacing="10">
|
||||||
<!-- 10 pixel térköz az oszlopok között -->
|
<!-- 10 pixel térköz az oszlopok között -->
|
||||||
|
|||||||
@@ -12,10 +12,10 @@
|
|||||||
<Label Text="{Binding ShortName}" FontSize="16" FontAttributes="Bold" />
|
<Label Text="{Binding ShortName}" FontSize="16" FontAttributes="Bold" />
|
||||||
<Label Text="{Binding Code}" FontSize="14" />
|
<Label Text="{Binding Code}" FontSize="14" />
|
||||||
<HorizontalStackLayout HorizontalOptions="End">
|
<HorizontalStackLayout HorizontalOptions="End">
|
||||||
<Button Text="Edit"
|
<Button Text="Edit" Margin="5,0,0,0"
|
||||||
Command="{Binding BindingContext.EditCommand, Source={x:Reference CheckPointsList}}"
|
Command="{Binding BindingContext.EditCommand, Source={x:Reference CheckPointsList}}"
|
||||||
CommandParameter="{Binding .}" />
|
CommandParameter="{Binding .}" />
|
||||||
<Button Text="Pair"
|
<Button Text="Pair" Margin="5,0,0,0"
|
||||||
Command="{Binding BindingContext.PairCommand, Source={x:Reference CheckPointsList}}"
|
Command="{Binding BindingContext.PairCommand, Source={x:Reference CheckPointsList}}"
|
||||||
CommandParameter="{Binding .}" />
|
CommandParameter="{Binding .}" />
|
||||||
</HorizontalStackLayout>
|
</HorizontalStackLayout>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ using System.Windows.Input;
|
|||||||
using WorkFlowCheck.Common.DTO;
|
using WorkFlowCheck.Common.DTO;
|
||||||
using WorkFlowCheck.MAUI.Pages.BaseStock.CheckPoints;
|
using WorkFlowCheck.MAUI.Pages.BaseStock.CheckPoints;
|
||||||
using WorkFlowCheck.MAUI.Services.Interfaces;
|
using WorkFlowCheck.MAUI.Services.Interfaces;
|
||||||
|
using Plugin.NFC;
|
||||||
|
|
||||||
namespace WorkFlowCheck.MAUI.Pages.BaseStock;
|
namespace WorkFlowCheck.MAUI.Pages.BaseStock;
|
||||||
|
|
||||||
@@ -33,6 +34,7 @@ public partial class CheckPointsPage : ContentPage
|
|||||||
|
|
||||||
BindingContext = this;
|
BindingContext = this;
|
||||||
await LoadCheckPoints();
|
await LoadCheckPoints();
|
||||||
|
|
||||||
}
|
}
|
||||||
private async Task LoadCheckPoints()
|
private async Task LoadCheckPoints()
|
||||||
{
|
{
|
||||||
@@ -42,7 +44,6 @@ public partial class CheckPointsPage : ContentPage
|
|||||||
IsRefreshing = false;
|
IsRefreshing = false;
|
||||||
OnPropertyChanged(nameof(IsRefreshing));
|
OnPropertyChanged(nameof(IsRefreshing));
|
||||||
}
|
}
|
||||||
|
|
||||||
private async void OnEditItem(CheckPointDTO checkPointDTO)
|
private async void OnEditItem(CheckPointDTO checkPointDTO)
|
||||||
{
|
{
|
||||||
// Navigálás a CheckPointEdit.xaml-ra, és átadjuk az editálni kívánt elemet
|
// 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)
|
private async void OnPairItem(CheckPointDTO checkPointDTO)
|
||||||
{
|
{
|
||||||
// Navigálás a CheckPointEdit.xaml-ra, és átadjuk az editálni kívánt elemet
|
_checkPointDTO = checkPointDTO;
|
||||||
await Navigation.PushAsync(new CheckPointEditPage(checkPointDTO));
|
await BeginListening();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override bool OnBackButtonPressed()
|
protected override bool OnBackButtonPressed()
|
||||||
{
|
{
|
||||||
Shell.Current.GoToAsync("//BaseStockPage");
|
Shell.Current.GoToAsync("//BaseStockPage");
|
||||||
return true;
|
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
|
||||||
}
|
}
|
||||||
@@ -29,5 +29,14 @@ namespace WorkFlowCheck.MAUI.Services
|
|||||||
return _mapper.Map<CheckPointDTO>(await _dbContext.CheckPoints.Where(w => w.Id == id).FirstOrDefaultAsync());
|
return _mapper.Map<CheckPointDTO>(await _dbContext.CheckPoints.Where(w => w.Id == id).FirstOrDefaultAsync());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<CheckPointDTO> UpdateCheckPoint(CheckPointDTO checkPoint)
|
||||||
|
{
|
||||||
|
var retVal = checkPoint;
|
||||||
|
|
||||||
|
_dbContext.CheckPoints.Update(_mapper.Map<CheckPoint>(checkPoint));
|
||||||
|
_dbContext.SaveChanges();
|
||||||
|
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ namespace WorkFlowCheck.MAUI.Services.Interfaces
|
|||||||
{
|
{
|
||||||
Task<List<CheckPointDTO>> GetAllCheckPoints();
|
Task<List<CheckPointDTO>> GetAllCheckPoints();
|
||||||
Task<CheckPointDTO> GetCheckPoint(int id);
|
Task<CheckPointDTO> GetCheckPoint(int id);
|
||||||
|
Task<CheckPointDTO> UpdateCheckPoint(CheckPointDTO checkPoint);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user