You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
2.0 KiB
89 lines
2.0 KiB
using CommunityToolkit.Mvvm.ComponentModel;
|
|
using CommunityToolkit.Mvvm.Input;
|
|
using CommunityToolkit.Mvvm.Messaging;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using UseRestService.Data;
|
|
|
|
namespace UseRestService.ViewModels
|
|
{
|
|
public partial class AddPartViewModel : ObservableObject
|
|
{
|
|
[ObservableProperty]
|
|
string _partID;
|
|
|
|
[ObservableProperty]
|
|
string _partName;
|
|
|
|
[ObservableProperty]
|
|
string _suppliers;
|
|
|
|
[ObservableProperty]
|
|
string _partType;
|
|
|
|
public AddPartViewModel()
|
|
{
|
|
}
|
|
|
|
[RelayCommand]
|
|
async Task SaveData()
|
|
{
|
|
if (string.IsNullOrWhiteSpace(PartID))
|
|
await InsertPart();
|
|
else
|
|
await UpdatePart();
|
|
}
|
|
|
|
|
|
[RelayCommand]
|
|
async Task InsertPart()
|
|
{
|
|
await PartsManager.Add(PartName, Suppliers, PartType);
|
|
|
|
WeakReferenceMessenger.Default.Send(new RefreshMessage(true));
|
|
|
|
await Shell.Current.GoToAsync("..");
|
|
}
|
|
|
|
|
|
[RelayCommand]
|
|
async Task UpdatePart()
|
|
{
|
|
Part partToSave = new()
|
|
{
|
|
PartID = PartID,
|
|
PartName = PartName,
|
|
PartType = PartType,
|
|
Suppliers = Suppliers.Split(",").ToList()
|
|
};
|
|
|
|
await PartsManager.Update(partToSave);
|
|
|
|
WeakReferenceMessenger.Default.Send(new RefreshMessage(true));
|
|
|
|
await Shell.Current.GoToAsync("..");
|
|
}
|
|
|
|
[RelayCommand]
|
|
async Task DeletePart()
|
|
{
|
|
if (string.IsNullOrWhiteSpace(PartID))
|
|
return;
|
|
|
|
await PartsManager.Delete(PartID);
|
|
|
|
WeakReferenceMessenger.Default.Send(new RefreshMessage(true));
|
|
|
|
await Shell.Current.GoToAsync("..");
|
|
}
|
|
|
|
[RelayCommand]
|
|
async Task DoneEditing()
|
|
{
|
|
await Shell.Current.GoToAsync("..");
|
|
}
|
|
}
|
|
}
|
|
|