コード例 #1
0
        public ActionResult Register()
        {
            if (!User.IsInRole(GlobalConstants.AdministratorRoleName))
            {
                return(RedirectToAction("Index", "Home", new { area = string.Empty }));
            }

            StudentRegisterSubmitModel model = new StudentRegisterSubmitModel();

            model.RegisterViewModel = new RegisterViewModel
            {
                ImageUrl = GlobalConstants.DefaultProfileImageUrl
            };

            return(View(model));
        }
コード例 #2
0
        public async Task <ActionResult> Register(StudentRegisterSubmitModel model)
        {
            List <string> validImageTypes = new List <string>()
            {
                "image/gif",
                "image/jpeg",
                "image/pjpeg",
                "image/png"
            };

            if (ModelState.IsValid)
            {
                if (model.RegisterViewModel.ImageUpload != null &&
                    !validImageTypes.Contains(model.RegisterViewModel.ImageUpload.ContentType))
                {
                    ModelState.AddModelError("", "Please choose either a GIF, JPG or PNG image.");
                    return(View(model));
                }

                var uploadDirectory = GlobalConstants.StudentsProfileImagesUploadDirectory;

                model.UploadProfilePhoto(uploadDirectory);

                if (model.RegisterViewModel.ImageUpload == null ||
                    model.RegisterViewModel.ImageUpload.ContentLength == 0)
                {
                    model.RegisterViewModel.ImageUrl = GlobalConstants.DefaultProfileImageUrl;
                }

                var user = new ApplicationUser()
                {
                    UserName = model.RegisterViewModel.UserName,
                    Email    = model.RegisterViewModel.Email,
                    ImageUrl = model.RegisterViewModel.ImageUrl
                };

                IdentityResult result = await this.UserManager.CreateAsync(user, model.RegisterViewModel.Password);

                if (result.Succeeded)
                {
                    this.UserManager.AddToRole(user.Id, GlobalConstants.StudentRoleName);

                    Student student = new Student();
                    student.ApplicationUserId = user.Id;
                    Mapper.Map <StudentRegisterSubmitModel, Student>(model, student);

                    this.studentService.Add(student);

                    //await this.SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false);

                    return(RedirectToAction("Index", "Students", new { area = "Administration" }));
                }
                else
                {
                    this.AddErrors(result);
                }
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }