Beispiel #1
0
        private void RegisterUser(object sender, RegistrationPageEventArgs e)
        {
            var isEmailUniqe = this.accountManagementSerivce.IsEmailUnique(e.Email);
            var password     = this.passwordService.GenerateRandomPassword();

            if (!isEmailUniqe)
            {
                this.View.Model.Result = new IdentityResult("Има потребител с такъв имейл!");
                return;
            }

            var manager = e.OwinCtx.GetUserManager <ApplicationUserManager>();

            var user = new User()
            {
                Email            = e.Email,
                UserName         = e.Email,
                FirstName        = e.FirstName,
                LastName         = e.LastName,
                AvatarPictureUrl = "~/Images/avatars/modified-avatar.png"
            };

            IdentityResult result = manager.Create(user, password);

            if (result.Succeeded)
            {
                manager.AddToRole(user.Id, e.UserType);

                if (e.UserType == UserType.Teacher)
                {
                    this.registrationService.RegisterTeacher(user.Id, e.SubjectIds);
                }
                else if (e.UserType == UserType.Student)
                {
                    this.registrationService.RegisterStudent(user.Id, e.ClassOfSudentsId);
                }
                else
                {
                    // no specific need if the user is admin
                }

                this.emailSender.SendEmail(e.Email, password);
            }

            this.View.Model.Result = result;
        }
Beispiel #2
0
        protected void CreateUser_Click(object sender, EventArgs e)
        {
            var owinCtx      = Context.GetOwinContext();
            var selectedRole = this.UserTypeDropDown.SelectedItem.Text;

            var eventArgs = new RegistrationPageEventArgs()
            {
                OwinCtx   = owinCtx,
                Email     = this.Email.Text,
                FirstName = this.FirstNameTextBox.Text,
                LastName  = this.LastNameTextBox.Text,
                UserName  = this.Email.Text,
                UserType  = this.UserTypeDropDown.SelectedItem.Text
            };

            if (selectedRole == UserType.Teacher)
            {
                var subjects = this.AvailableSubjectsList
                               .Items
                               .Cast <ListItem>()
                               .Where(i => i.Selected)
                               .Select(x => int.Parse(x.Value))
                               .ToList();

                eventArgs.SubjectIds = subjects;
            }
            else if (selectedRole == UserType.Student)
            {
                eventArgs.ClassOfSudentsId = int.Parse(this.ClassDropDown.SelectedItem.Value);
            }

            EventRegisterUser(this, eventArgs);

            var result = this.Model.Result;

            if (result.Succeeded)
            {
                this.Notifier.NotifySuccess("Успешно регистрирахте потребител");
                ResetInputInFields();
            }
            else
            {
                this.Notifier.NotifyError(string.Join(Environment.NewLine, result.Errors));
            }
        }
        public void SetResult_ToModel_WithCorrectMessage_WhenEmailOfTheUserIsNotUnique()
        {
            var mockedRegisterView                     = new Mock <IRegisterView>();
            var mockedRegistrationService              = new Mock <IRegistrationService>();
            var mockedSubjectManagementService         = new Mock <ISubjectManagementService>();
            var mockedClassOfStudentsManagementService = new Mock <IClassOfStudentsManagementService>();
            var mockedAccountManagementService         = new Mock <IAccountManagementService>();
            var mockedEmailSenderService               = new Mock <IEmailSenderService>();
            var mockedPasswordService                  = new Mock <IPasswordGeneratorService>();

            mockedRegisterView
            .SetupGet(x => x.Model)
            .Returns(new RegistrationModel());

            var email = It.IsAny <string>();

            mockedAccountManagementService
            .Setup(x => x.IsEmailUnique(email))
            .Returns(false);

            var expectedResult = new IdentityResult("Има потребител с такъв имейл!");

            var registrationPresenter = new RegistrationPresenter(
                mockedRegisterView.Object,
                mockedRegistrationService.Object,
                mockedSubjectManagementService.Object,
                mockedClassOfStudentsManagementService.Object,
                mockedAccountManagementService.Object,
                mockedEmailSenderService.Object,
                mockedPasswordService.Object);

            var args = new RegistrationPageEventArgs()
            {
                Email = email
            };

            mockedRegisterView.Raise(x => x.EventRegisterUser += null, args);

            CollectionAssert.AreEquivalent(expectedResult.Errors, mockedRegisterView.Object.Model.Result.Errors);
        }