Using dependency injection and viewmodel etc
This commit is contained in:
@ -7,6 +7,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\AdventureWorks.DataLayer\AdventureWorks.DataLayer.csproj" />
|
||||
<ProjectReference Include="..\AdventureWorks.EntityLayer\AdventureWorks.EntityLayer.csproj" />
|
||||
<ProjectReference Include="..\Common.Library\Common.Library.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
@ -6,8 +6,28 @@ 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 readonly IRepository<User>? Repository;
|
||||
private readonly IRepository<PhoneType>? _PhoneTypeRepository;
|
||||
private ObservableCollection<string> _PhoneTypesList = new();
|
||||
#endregion
|
||||
|
||||
#region public Properties
|
||||
@ -22,6 +42,18 @@ public class UserViewModel : ViewModelBase
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public ObservableCollection<string> PhoneTypesList
|
||||
{
|
||||
get { return _PhoneTypesList; }
|
||||
set
|
||||
{
|
||||
_PhoneTypesList = value;
|
||||
RaisePropertyChanged(nameof(PhoneTypesList));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Get Method
|
||||
@ -37,26 +69,34 @@ public class UserViewModel : ViewModelBase
|
||||
{
|
||||
try
|
||||
{
|
||||
UserObject = new User
|
||||
if (Repository != null)
|
||||
{
|
||||
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)
|
||||
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)
|
||||
{
|
||||
@ -65,9 +105,19 @@ public class UserViewModel : ViewModelBase
|
||||
|
||||
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()
|
||||
|
||||
Reference in New Issue
Block a user