borepin/Borepin/Borepin/Model/MachineVisualize.cs

174 lines
4.7 KiB
C#

using FabAccessAPI.Schema;
using Prism.Mvvm;
using static FabAccessAPI.Schema.Machine;
namespace Borepin.Model
{
public class MachineVisualize : BindableBase
{
#region Private Fields
public readonly Machine _Machine;
#endregion
#region Constructors
public MachineVisualize(Machine machine)
{
_Machine = machine;
LoadData();
}
#endregion
#region Methods
public async void LoadData()
{
//ID = _Machine.Id;
//Space = new SpaceVisualize(_Machine.Space);
Name = _Machine.Name;
Description = _Machine.Description;
State = _Machine.State;
Manager = new UserVisualize(_Machine.Manager);
Manager.LoadData();
CanUse = !((UseInterface_Proxy)_Machine.Use).IsNull;
CanInUse = !((InUseInterface_Proxy) _Machine.Inuse).IsNull;
CanTakeOver = !((TakeoverInterface_Proxy) _Machine.Takeover).IsNull;
CanCheck = !((CheckInterface_Proxy) _Machine.Check).IsNull;
CanManage = !((ManageInterface_Proxy) _Machine.Manage).IsNull;
CanAdmin = !((AdminInterface_Proxy) _Machine.Admin).IsNull;
CurrentUser = null;
LastUser = null;
if (CanManage)
{
MachineInfoExtended machineInfoExtended = await _Machine.Manage.GetMachineInfoExtended().ConfigureAwait(false);
if (machineInfoExtended != null)
{
if (machineInfoExtended.CurrentUser == null || machineInfoExtended.CurrentUser.Username == null)
{
CurrentUser = null;
}
else
{
CurrentUser = new UserVisualize(machineInfoExtended.CurrentUser);
CurrentUser.LoadData();
}
if (machineInfoExtended.LastUser == null || machineInfoExtended.LastUser.Username == null)
{
LastUser = null;
}
else
{
LastUser = new UserVisualize(machineInfoExtended.LastUser);
LastUser.LoadData();
}
}
}
}
#endregion
#region Fields
private UUID _ID;
public UUID ID
{
get => _ID;
set => SetProperty(ref _ID, value);
}
private SpaceVisualize _Space;
public SpaceVisualize Space
{
get => _Space;
set => SetProperty(ref _Space, value);
}
private string _Name;
public string Name
{
get => _Name;
set => SetProperty(ref _Name, value);
}
private string _Description;
public string Description
{
get => _Description;
set => SetProperty(ref _Description, value);
}
private MachineState _State;
public MachineState State
{
get => _State;
set => SetProperty(ref _State, value);
}
private UserVisualize _Manager;
public UserVisualize Manager
{
get => _Manager;
set => SetProperty(ref _Manager, value);
}
private UserVisualize _CurrentUser;
public UserVisualize CurrentUser
{
get => _CurrentUser;
set => SetProperty(ref _CurrentUser, value);
}
private UserVisualize _LastUser;
public UserVisualize LastUser
{
get => _LastUser;
set => SetProperty(ref _LastUser, value);
}
private bool _CanUse;
public bool CanUse
{
get => _CanUse;
set => SetProperty(ref _CanUse, value);
}
private bool _CanInUse;
public bool CanInUse
{
get => _CanInUse;
set => SetProperty(ref _CanInUse, value);
}
private bool _CanTransfer;
public bool CanTakeOver
{
get => _CanTransfer;
set => SetProperty(ref _CanTransfer, value);
}
private bool _CanCheck;
public bool CanCheck
{
get => _CanCheck;
set => SetProperty(ref _CanCheck, value);
}
private bool _CanManage;
public bool CanManage
{
get => _CanManage;
set => SetProperty(ref _CanManage, value);
}
private bool _CanAdmin;
public bool CanAdmin
{
get => _CanAdmin;
set => SetProperty(ref _CanAdmin, value);
}
#endregion
}
}