コード例 #1
0
        private void RegisterUser()
        {
            List<RoleDataModel> userRoles = new List<RoleDataModel>();
            RoleDataService rService = new RoleDataService();
            GroupDataModel group = null;
            RoleDataModel role;
            UserRole selectedRole;

            if (_ViewModel.IsTeacher)
                selectedRole = UserRole.Teacher;
            else
                selectedRole = UserRole.Student;

            role = rService.GetRole(selectedRole);

            if (role != null)
            {
                userRoles.Add(role);
            }
            // such role not exist in db? - create it!
            else
            {
                role = new RoleDataModel();
                role.Role = selectedRole;

                if (selectedRole == UserRole.Student)
                {
                    role.Name = "Student";

                    GroupDataService gService = new GroupDataService();
                    group = gService.GetGroup(_ViewModel.SelectedGroup);
                    if (group == null)
                    {
                        group = gService.CreateGroup(_ViewModel.SelectedGroup);
                    }
                }
                else
                {
                    role.Name = "Teacher";
                }

                rService.Add(role);
                userRoles.Add(rService.GetRole(selectedRole));
            }

            // adding group to UserDM if registering student
            if (selectedRole == UserRole.Student)
            {
                GroupDataService gService = new GroupDataService();
                group = gService.GetGroup(_ViewModel.SelectedGroup);
                if (group == null)
                {
                    group = gService.CreateGroup(_ViewModel.SelectedGroup);
                }
            }

            // create new user object for write to db
            UserDataModel newUser = new UserDataModel
            {
                Username = _ViewModel.Username,
                Email = _ViewModel.Email,
                Password = Authentication.HashPassword(_ViewModel.Password),
                FirstName = _ViewModel.Name,
                LastName = _ViewModel.Surname,
                MiddleName = _ViewModel.MiddleName,
                Group = group,
                Roles = userRoles
            };

            UserDataService uService = new UserDataService();
            uService.Add(newUser);
            MessageBox.Show(Messages.RegisterSuccessfull, Messages.CaptionRegistered);
            this.Close();
        }