Files
MauiCourse/AdventureWorks.ViewModelLayer/ViewModelClasses/UserViewModel.cs

147 lines
3.5 KiB
C#

using AdventureWorks.EntityLayer;
using Common.Library;
using System.Collections.ObjectModel;
namespace AdventureWorks.ViewModelLayer;
public class UserViewModel : ViewModelBase
{
#region Constructors
public UserViewModel() : base()
{
}
public UserViewModel(IRepository<User> repo) : base()
{
Repository = repo;
}
public UserViewModel(IRepository<User> repo, IRepository<PhoneType> phoneRepo)
{
Repository = repo;
_PhoneTypeRepository = phoneRepo;
}
#endregion
#region Private Variables
private User? _UserObject = new();
private ObservableCollection<User> _UserList = new();
private readonly IRepository<User>? Repository;
private readonly IRepository<PhoneType>? _PhoneTypeRepository;
private ObservableCollection<string> _PhoneTypesList = new();
#endregion
#region public Properties
public User? UserObject
{
get { return _UserObject; }
set
{
_UserObject = value;
RaisePropertyChanged(nameof(UserObject));
}
}
public ObservableCollection<User> UserList
{
get { return _UserList; }
set
{
_UserList = value;
RaisePropertyChanged(nameof(UserList));
}
}
public ObservableCollection<string> PhoneTypesList
{
get { return _PhoneTypesList; }
set
{
_PhoneTypesList = value;
RaisePropertyChanged(nameof(PhoneTypesList));
}
}
#endregion
#region Get Method
public ObservableCollection<User> Get()
{
if (Repository != null)
{
UserList = new ObservableCollection<User>(Repository.Get());
}
return new();
}
#endregion
#region Get(id) Method
public User? Get(int id)
{
try
{
if (Repository != null)
{
UserObject = Repository.Get(id);
}
else
{
UserObject = new User
{
UserId = id,
LoginId = "SallyJones615",
FirstName = "Sally",
LastName = "Jones",
Email = "sally@jones.com",
Password = "password123",
Phone = "555-1234",
PhoneType = "Mobile",
IsFullTime = true,
IsEnrolledIn401k = false,
IsEnrolledInFlexTime = false,
IsEnrolledInHealthCare = true,
IsEnrolledInHSA = false,
IsActive = true,
BirthDate = Convert.ToDateTime("1975-11-04"),
StartTime = new TimeSpan(8, 0, 0)
};
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine($"Error in Get method: {ex.Message}");
}
return UserObject;
}
#endregion
#region GetPhoneTypesMethod
public ObservableCollection<string> GetPhoneTypes()
{
if (_PhoneTypesList != null)
{
var list = _PhoneTypeRepository.Get();
PhoneTypesList = new ObservableCollection<string>(list.Select(row => row.TypeDescription));
}
return PhoneTypesList;
}
#endregion
#region Save Method
public virtual bool Save()
{
// System.Diagnostics.Debugger.Break();
return true;
}
#endregion
}