aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs31
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/UserCreationDialogVM.cs74
2 files changed, 95 insertions, 10 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs
index 2f4e5c9a3..81ef04dd4 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/MainViewVM.cs
@@ -370,20 +370,19 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
}
}
- private async void AddNewUser()
+ private void AddNewUser()
{
- String email = _notification.ShowTextInput("Enter user email", "email");
-
- if (!String.IsNullOrWhiteSpace(email))
+ _notification.ShowModalDialog<UserCreationDialogVM>(async (vm) =>
{
User user = new User();
- user.Email = email;
- user.Password = "1111";
+ user.Email = vm.Email;
+ user.Password = User.GetPasswordHash(vm.Password);
+ user.PasswordChangeRequired = true;
user.Contact = new Contact()
{
- FirstName = "Twine",
- LastName = "User",
- Email = email,
+ FirstName = vm.FirstName,
+ LastName = vm.LastName,
+ Email = vm.Email,
};
user.Address = new Address();
@@ -394,6 +393,18 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
Role = _manageContext.Roles.SingleOrDefault(x => x.Code == (int)BL.Enumerations.Roles.User)
});
+ user.UsersRoles.Add(new UsersRole()
+ {
+ User = user,
+ Role = _manageContext.Roles.SingleOrDefault(x => x.Code == (int)BL.Enumerations.Roles.MachineStudioUser)
+ });
+
+ user.UsersRoles.Add(new UsersRole()
+ {
+ User = user,
+ Role = _manageContext.Roles.SingleOrDefault(x => x.Code == (int)BL.Enumerations.Roles.PPCUser)
+ });
+
try
{
user.Validate(_manageContext);
@@ -413,7 +424,7 @@ namespace Tango.MachineStudio.UsersAndRoles.ViewModels
await LoadOrganizations();
SelectedOrganization = Organizations.SingleOrDefault(x => x.Guid == ManagedOrganization.Guid);
}
- }
+ });
}
private void SetUserPlace(Place place)
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/UserCreationDialogVM.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/UserCreationDialogVM.cs
new file mode 100644
index 000000000..08762ac96
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.UsersAndRoles/ViewModels/UserCreationDialogVM.cs
@@ -0,0 +1,74 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using SimpleValidator.Extensions;
+using Tango.SharedUI;
+
+namespace Tango.MachineStudio.UsersAndRoles.ViewModels
+{
+ public class UserCreationDialogVM : DialogViewVM
+ {
+ private static Random rnd = new Random();
+
+ private String _email;
+ [Required(ErrorMessage = "Email is required")]
+ [EmailAddress(ErrorMessage = "Please provide a valid email")]
+ public String Email
+ {
+ get { return _email; }
+ set { _email = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); }
+ }
+
+ private String _password;
+ public String Password
+ {
+ get { return _password; }
+ set { _password = value; RaisePropertyChangedAuto(); }
+ }
+
+ private String _firstName;
+ [Required(ErrorMessage = "First name is required")]
+ public String FirstName
+ {
+ get { return _firstName; }
+ set { _firstName = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); }
+ }
+
+ private String _lastName;
+ [Required(ErrorMessage = "Last name is required")]
+ public String LastName
+ {
+ get { return _lastName; }
+ set { _lastName = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); }
+ }
+
+ protected override void Accept()
+ {
+ if (Validate())
+ {
+ base.Accept();
+ }
+ }
+
+ public override void OnShow()
+ {
+ base.OnShow();
+ Password = GetRandomPassword(4);
+ }
+
+ private String GetRandomPassword(int count)
+ {
+ String pass = String.Empty;
+
+ for (int i = 0; i < count; i++)
+ {
+ pass += rnd.Next(0, 9).ToString();
+ }
+
+ return pass;
+ }
+ }
+}