147 lines
3.5 KiB
C#
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
|
|
|
|
|
|
} |