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

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("..");
}
}
}