|
@@ -1,6 +1,66 @@
|
|
|
+using Avalonia.Controls;
|
|
|
+using Comal.Classes;
|
|
|
+using CommunityToolkit.Mvvm.ComponentModel;
|
|
|
+using CommunityToolkit.Mvvm.Input;
|
|
|
+using InABox.Avalonia.Components;
|
|
|
+using InABox.Core;
|
|
|
+using PRS.Avalonia.Components;
|
|
|
+using PRS.Avalonia.DigitalForms;
|
|
|
+using System;
|
|
|
+using System.Linq;
|
|
|
+using System.Threading.Tasks;
|
|
|
+
|
|
|
namespace PRS.Avalonia.Modules.MyHR;
|
|
|
|
|
|
-public class MyHRDigitalFormsViewModel : ModuleViewModel
|
|
|
+public partial class MyHRDigitalFormsViewModel : ModuleViewModel
|
|
|
{
|
|
|
- public override string Title => "Digital Forms";
|
|
|
+ public override string Title => "My Forms";
|
|
|
+
|
|
|
+ [ObservableProperty]
|
|
|
+ private EmployeeFormModel _forms;
|
|
|
+
|
|
|
+ [ObservableProperty]
|
|
|
+ private DigitalFormModel _digitalForms;
|
|
|
+
|
|
|
+ public MyHRDigitalFormsViewModel()
|
|
|
+ {
|
|
|
+ Forms = new EmployeeFormModel(DataAccess,
|
|
|
+ () => new Filter<EmployeeForm>(x => x.Parent.ID).IsEqualTo(Repositories.Me.ID),
|
|
|
+ () => DefaultCacheFileName<EmployeeFormShell>());
|
|
|
+
|
|
|
+ DigitalForms = Repositories.DigitalForms();
|
|
|
+
|
|
|
+ PrimaryMenu.Add(new AvaloniaMenuItem(Images.plus, AddForm));
|
|
|
+ }
|
|
|
+
|
|
|
+ private async Task<bool> AddForm()
|
|
|
+ {
|
|
|
+ var form = await FormsList.SelectForm<EmployeeForm, Employee, EmployeeLink>(DigitalForms);
|
|
|
+ if (form is null) return true;
|
|
|
+
|
|
|
+ var employeeForm = Forms.CreateItem();
|
|
|
+ employeeForm.ParentID = Repositories.Me.ID;
|
|
|
+ employeeForm.FormID = form.ID;
|
|
|
+ employeeForm.FormCode = form.Code;
|
|
|
+ employeeForm.FormDescription = form.Description;
|
|
|
+ employeeForm.FormDescriptionExpression = form.DescriptionExpression;
|
|
|
+
|
|
|
+ DigitalFormsHostViewModel<EmployeeFormModel, EmployeeFormShell, Employee, EmployeeLink, EmployeeForm>
|
|
|
+ .EditForm(Forms, employeeForm, Repositories.Me.Entity);
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ protected override async Task<TimeSpan> OnRefresh()
|
|
|
+ {
|
|
|
+ await Forms.RefreshAsync(false);
|
|
|
+ return TimeSpan.Zero;
|
|
|
+ }
|
|
|
+
|
|
|
+ [RelayCommand]
|
|
|
+ private void FormClicked(EmployeeFormShell shell)
|
|
|
+ {
|
|
|
+ DigitalFormsHostViewModel<EmployeeFormModel, EmployeeFormShell, Employee, EmployeeLink, EmployeeForm>
|
|
|
+ .EditForm(Forms, shell, Repositories.Me.Entity);
|
|
|
+ }
|
|
|
}
|