diff --git a/AdventureWorks.EntityLayer/EntityClasses/User.cs b/AdventureWorks.EntityLayer/EntityClasses/User.cs
index 780fe6c..22a106f 100644
--- a/AdventureWorks.EntityLayer/EntityClasses/User.cs
+++ b/AdventureWorks.EntityLayer/EntityClasses/User.cs
@@ -1,6 +1,6 @@
using Common.Library;
-namespace AdventureWorks.EntityLayer.EntityClasses;
+namespace AdventureWorks.EntityLayer;
public class User : EntityBase
{
diff --git a/AdventureWorks.MAUI.sln b/AdventureWorks.MAUI.sln
index 382184e..485093d 100644
--- a/AdventureWorks.MAUI.sln
+++ b/AdventureWorks.MAUI.sln
@@ -9,6 +9,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventureWorks.EntityLayer"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Common.Library", "Common.Library\Common.Library.csproj", "{FEDB6441-2564-4DD5-A3C9-1B2F0A761BB4}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdventureWorks.ViewModelLayer", "AdventureWorks.ViewModelLayer\AdventureWorks.ViewModelLayer.csproj", "{3E3C685B-CA66-4E12-83BC-B872BC5FD933}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -28,6 +30,10 @@ Global
{FEDB6441-2564-4DD5-A3C9-1B2F0A761BB4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FEDB6441-2564-4DD5-A3C9-1B2F0A761BB4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FEDB6441-2564-4DD5-A3C9-1B2F0A761BB4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3E3C685B-CA66-4E12-83BC-B872BC5FD933}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3E3C685B-CA66-4E12-83BC-B872BC5FD933}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3E3C685B-CA66-4E12-83BC-B872BC5FD933}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3E3C685B-CA66-4E12-83BC-B872BC5FD933}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/AdventureWorks.MAUI/AdventureWorks.MAUI.csproj b/AdventureWorks.MAUI/AdventureWorks.MAUI.csproj
index c379c49..7cc1bff 100644
--- a/AdventureWorks.MAUI/AdventureWorks.MAUI.csproj
+++ b/AdventureWorks.MAUI/AdventureWorks.MAUI.csproj
@@ -66,6 +66,7 @@
+
diff --git a/AdventureWorks.MAUI/Views/UserDetailView.xaml b/AdventureWorks.MAUI/Views/UserDetailView.xaml
index f667d6c..b88c88d 100644
--- a/AdventureWorks.MAUI/Views/UserDetailView.xaml
+++ b/AdventureWorks.MAUI/Views/UserDetailView.xaml
@@ -4,13 +4,13 @@
x:Class="AdventureWorks.MAUI.Views.UserDetailView"
xmlns:partial="clr-namespace:AdventureWorks.MAUI.ViewsPartial"
xmlns:converters="clr-namespace:AdventureWorks.MAUI.Converters"
- xmlns:vm="clr-namespace:AdventureWorks.EntityLayer.EntityClasses;assembly=AdventureWorks.EntityLayer"
- x:DataType="vm:User"
+ xmlns:vm="clr-namespace:AdventureWorks.ViewModelLayer;assembly=AdventureWorks.ViewModelLayer"
+ x:DataType="vm:UserViewModel"
Title="User Information">
-
+ />-->
-
+
-
@@ -54,17 +53,17 @@
Text="First Name" />
+ Text="{Binding UserObject.FirstName}"/>
+ Text="{Binding UserObject.LastName}"/>
+ Text="{Binding UserObject.Email}"/>
-
+
-
+
-
+
-
+
@@ -93,7 +92,7 @@
Text="Still Employed"/>
+ IsToggled="{Binding UserObject.IsActive}"/>
-
+
@@ -116,14 +115,14 @@
Grid.Row="8"/>
+ Time="{Binding UserObject.StartTime}"
+ IsEnabled="{Binding UserObject.IsFullTime, Converter={StaticResource invertedBoolean}}"/>
@@ -133,11 +132,11 @@
Direction="Row">
+ Text="{Binding UserObject.Phone}"/>
-
+
diff --git a/AdventureWorks.MAUI/Views/UserDetailView.xaml.cs b/AdventureWorks.MAUI/Views/UserDetailView.xaml.cs
index 04e1b0d..bb9d695 100644
--- a/AdventureWorks.MAUI/Views/UserDetailView.xaml.cs
+++ b/AdventureWorks.MAUI/Views/UserDetailView.xaml.cs
@@ -1,5 +1,4 @@
-using AdventureWorks.EntityLayer.EntityClasses;
-
+using AdventureWorks.ViewModelLayer;
namespace AdventureWorks.MAUI.Views;
public partial class UserDetailView : ContentPage
@@ -7,20 +6,20 @@ public partial class UserDetailView : ContentPage
public UserDetailView()
{
InitializeComponent();
- UserObject = (User)this.Resources["viewModel"];
- UserObject.LoginId = "jkzxck0q94375";
+
}
- public User UserObject { get; set; }
+ public UserViewModel ViewModel { get; set; }
protected override void OnAppearing()
{
base.OnAppearing();
- UserObject.LoginId = "PeterPiper384";
- UserObject.FirstName = "Peter";
- UserObject.LastName = "Piper";
- UserObject.Email = "peter@piper.com";
+ ViewModel = new();
+
+ BindingContext = ViewModel;
+
+ ViewModel.Get(1); // Assuming you want to get the user with ID 1
}
private void SaveButton_Clicked(object sender, EventArgs e)
{
diff --git a/AdventureWorks.ViewModelLayer/AdventureWorks.ViewModelLayer.csproj b/AdventureWorks.ViewModelLayer/AdventureWorks.ViewModelLayer.csproj
new file mode 100644
index 0000000..72b9661
--- /dev/null
+++ b/AdventureWorks.ViewModelLayer/AdventureWorks.ViewModelLayer.csproj
@@ -0,0 +1,14 @@
+
+
+
+ net9.0
+ enable
+ enable
+
+
+
+
+
+
+
+
diff --git a/AdventureWorks.ViewModelLayer/ViewModelClasses/UserViewModel.cs b/AdventureWorks.ViewModelLayer/ViewModelClasses/UserViewModel.cs
new file mode 100644
index 0000000..4d69bec
--- /dev/null
+++ b/AdventureWorks.ViewModelLayer/ViewModelClasses/UserViewModel.cs
@@ -0,0 +1,81 @@
+using AdventureWorks.EntityLayer;
+using Common.Library;
+using System.Collections.ObjectModel;
+
+namespace AdventureWorks.ViewModelLayer;
+
+public class UserViewModel : ViewModelBase
+{
+ #region Private Variables
+ private User? _UserObject = new();
+ #endregion
+
+ #region public Properties
+
+ public User? UserObject
+ {
+ get { return _UserObject; }
+ set
+ {
+ _UserObject = value;
+ RaisePropertyChanged(nameof(UserObject));
+ }
+
+ }
+ #endregion
+
+ #region Get Method
+ public ObservableCollection Get()
+ {
+ return new();
+ }
+
+ #endregion
+
+ #region Get(id) Method
+ public User? Get(int id)
+ {
+ try
+ {
+ 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 Save Method
+ public virtual bool Save()
+ {
+ System.Diagnostics.Debugger.Break();
+ return true;
+ }
+ #endregion
+
+
+}
\ No newline at end of file
diff --git a/Common.Library/BaseClasses/ViewModelBase.cs b/Common.Library/BaseClasses/ViewModelBase.cs
new file mode 100644
index 0000000..14c6c2a
--- /dev/null
+++ b/Common.Library/BaseClasses/ViewModelBase.cs
@@ -0,0 +1,6 @@
+
+namespace Common.Library;
+
+public class ViewModelBase : CommonBase
+{
+}