Snackbar meg ilyesmik

This commit is contained in:
2025-03-28 20:51:00 +01:00
parent d3bfeadc50
commit 146402a96a
5 changed files with 75 additions and 8 deletions
@@ -11,10 +11,14 @@ namespace WorkFlowCheck.MAUI.Pages.CheckList;
public partial class CheckListWorkPage : ContentPage
{
private readonly ICheckListService _checkListService;
private readonly ISyncService _syncService;
private string _checkPointCode;
private int _checkListHeaderId;
private UserDTO _userDTO;
private bool _isLoading;
public bool IsLoading
{
get => _isLoading;
@@ -35,6 +39,7 @@ public partial class CheckListWorkPage : ContentPage
_checkPointCode = checkPointCode;
_checkListHeaderId = checkListHeaderId;
_checkListService = MauiProgram.ServiceProvider.GetRequiredService<ICheckListService>();
_syncService = MauiProgram.ServiceProvider.GetRequiredService<ISyncService>();
_userDTO = MauiProgram.ServiceProvider.GetRequiredService<IUserService>().GetCurrentUser();
SaveCommand = new Command(OnSave);
@@ -43,7 +48,17 @@ public partial class CheckListWorkPage : ContentPage
private async void OnSend()
{
IsLoading = true;
try
{
OnSave();
await _syncService.SyncCheckListHeaderUp(_checkListHeaderId);
}
catch (Exception ex)
{
await Application.Current.MainPage.DisplayAlert("Hiba", ex.Message, "OK");
}
IsLoading = false;
}
private async void OnSave()
{
@@ -74,7 +89,6 @@ public partial class CheckListWorkPage : ContentPage
}
}
protected override async void OnAppearing()
{
base.OnAppearing();
@@ -1,10 +1,13 @@
using CommunityToolkit.Maui.Alerts;
using CommunityToolkit.Maui.Core;
using System.Drawing;
using WorkFlowCheck.MAUI.Services.Interfaces;
namespace WorkFlowCheck.MAUI.Pages.Security;
public partial class LoginPage : ContentPage
{
private IUserService _userService;
private IUserService _userService;
private ISyncService _syncService;
public LoginPage()
{
@@ -36,7 +39,25 @@ public partial class LoginPage : ContentPage
}
else
{
await DisplayAlert("Error", "Invalid login credentials.", "OK");
var visualOptions = new SnackbarOptions
{
ActionButtonTextColor = Colors.Yellow,
CornerRadius = new CornerRadius(10),
Font = Microsoft.Maui.Font.SystemFontOfSize(16),
BackgroundColor = Microsoft.Maui.Graphics.Color.Parse("Red"),
TextColor=Colors.Yellow
};
var snackbar = Snackbar.Make(
"Invalid login credentials.",
duration: TimeSpan.FromSeconds(10),
action: () => Console.WriteLine("Snackbar dismissed"),
actionButtonText: "OK",
visualOptions: visualOptions
);
await snackbar.Show();
}
}
catch (Exception)
@@ -163,7 +163,10 @@ namespace WorkFlowCheck.MAUI.Services
if (checkListRow != null)
{
checkListRow.Answer = checkListRowDTO.Answer;
checkListRow.Photo = checkListRowDTO.Photo;
if (checkListRowDTO.Photo != null && checkListRowDTO.Photo.Length > 0)
{
checkListRow.Photo = checkListRowDTO.Photo;
}
await _dbContext.SaveChangesAsync();
}
}
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WorkFlowCheck.Common.DTO;
namespace WorkFlowCheck.MAUI.Services.Interfaces
{
@@ -14,6 +15,6 @@ namespace WorkFlowCheck.MAUI.Services.Interfaces
Task SyncLocations();
Task SyncEquipments();
Task SyncCheckListHeaderUp(int Id);
}
}
@@ -254,5 +254,33 @@ namespace WorkFlowCheck.MAUI.Services
}
}
public async Task SyncCheckListHeaderUp(int Id)
{
try
{
await PrepareAuthenticatedRequestAsync();
var checkListHeader = await _dbContext.CheckListHeaders
.Include(i => i.CheckListRows)
.AsNoTracking()
.ToListAsync();
var checkListHeaderDTO = _mapper.Map<CheckListHeaderDTO>(checkListHeader);
var endpoint = $"{_httpClient.BaseAddress}api/Sync/UpdateCheckListHeader";
using (HttpResponseMessage httpResponseMessage = await _httpClient.PostAsJsonAsync(endpoint, checkListHeaderDTO))
{
httpResponseMessage.EnsureSuccessStatusCode();
var jsonString = await httpResponseMessage.Content.ReadAsStringAsync();
var response = JsonConvert.DeserializeObject<ApiResponseDTO<CheckListHeaderDTO>>(jsonString);
}
}
catch (Exception ex)
{
// Hiba visszaadása
}
}
}
}