示例#1
0
        public async Task <User> SignUp(RegisterAuth register)
        {
            if (await _context.Users.Where(x => x.Email == register.Email).AnyAsync())
            {
                throw new RestException(HttpStatusCode.BadRequest, new { Email = "Email already exists" });
            }

            if (await _context.Users.Where(x => x.UserName == register.Username).AnyAsync())
            {
                throw new RestException(HttpStatusCode.BadRequest, new { Username = "******" });
            }

            var user = new ApplicationUser
            {
                DisplayName = register.DisplayName,
                Email       = register.Email,
                UserName    = register.Username
            };

            var result = await _userManager.CreateAsync(user, register.Password);

            if (result.Succeeded)
            {
                return(new User
                {
                    DisplayName = user.DisplayName,
                    Token = _jwtGenerator.CreateToken(user),
                    Username = user.UserName,
                });
            }

            throw new Exception("Problem creating user");
        }
        public async void CreateUserAsync_InvalidProviderAndEmail_Fail()
        {
            using (var transactionScope = new TransactionScope())
            {
                var model = new RegisterAuth {
                };

                var result = await _usersControllers.CreateUserAsync(model.ToJToken());

                Assert.NotNull(result);
                Assert.IsType(typeof(BadRequestErrorMessageResult), result);
            }
        }
 private UserProfileDevice GetNewUserProfileDevice(RegisterAuth model, string userId)
 {
     return(new UserProfileDevice
     {
         UserId = userId,
         DeviceUniqueId = model.DeviceId,
         Model = !string.IsNullOrEmpty(model.Model) ? $"{model.Model} ({model.Idiom})" : "",
         Platform = model.Platform,
         Version = model.Version,
         IPLocation = model.ClientIP,
         CreatedAt = _dateTimeManagerService.GetUniversalDateTime()
     });
 }
示例#4
0
        public ActionResult Register(RegisterAuth formdata)
        {
            if (!ModelState.IsValid)
            {
                return(Redirect(Url.Content("~/Admin/Register")));
            }

            var user = new Yazarlar()
            {
                isim  = formdata.isim,
                email = formdata.email,
                sifre = formdata.sifre
            };

            Database.Session.SaveOrUpdate(user);
            return(View(formdata));
        }
示例#5
0
        internal async Task <RegistrationResult> CreateUser(String username, String password, String email)
        {
            try
            {
                var userClient = new WebClient();

                RegisterAuth auth = new RegisterAuth();
                auth.Email    = email;
                auth.Username = username;
                auth.Password = AppUser.ShaPassword(password);

                String jsonString = await userClient.UploadStringTaskAsync(new Uri("https://api.trakt.tv/account/create/9294cac7c27a4b97d3819690800aa2fedf0959fa"), AppUser.createJsonStringForAuthentication(typeof(RegisterAuth), auth));

                if (jsonString.Contains(" is already a registered e-mail"))
                {
                    return(RegistrationResult.EMAILINUSE);
                }

                if (jsonString.Contains("is already a registered username"))
                {
                    return(RegistrationResult.USERNAMEINUSE);
                }

                if (jsonString.Contains("created account for"))
                {
                    return(RegistrationResult.OK);
                }

                return(RegistrationResult.OK);
            }
            catch (WebException)
            { Debug.WriteLine("WebException in CreateUser()."); }
            catch (TargetInvocationException)
            { Debug.WriteLine("TargetInvocationException in CreateUser()."); }

            return(RegistrationResult.FAILED);
        }
示例#6
0
        public void ShouldRegisterAuth()
        {
            var user         = new User(0, "alexandre", "felix", true, UserType.User);
            var registration = new UserRegistrationInput()
            {
                Email = "*****@*****.**", Password = "******", User = user
            };

            var mockLoginRepo = new Mock <ILoginRepository>();

            mockLoginRepo.Setup(mock => mock.Create(It.IsAny <Login>())).Returns(0);

            var mockUserRepo = new Mock <IUserRepository>();

            mockUserRepo.Setup(mock => mock.Create(It.IsAny <User>())).Returns(0);
            mockUserRepo.Setup(mock => mock.DeleteById(0)).Returns(true);

            var res = new RegisterAuth(mockLoginRepo.Object, mockUserRepo.Object, registration).Execute();

            Assert.AreEqual("alexandre", res.User.FirstName);
            Assert.AreEqual("felix", res.User.LastName);
            Assert.AreEqual(true, res.User.IsAStudent);
            Assert.AreEqual(UserType.User, res.User.Type);
        }
        public async Task <AuthResult> RegisterAuthAsync(IDomainManager <User> domainManager, RegisterAuth model)
        {
            if (string.IsNullOrEmpty(model.ProviderUserId) && string.IsNullOrEmpty(model.Email))
            {
                return(new AuthResult
                {
                    Succeeded = false,
                    ResultCode = AuthResultCode.Error,
                    Errors = new[] { "'ProviderUserId' and 'Email' cannot be empty or is invalid." }
                });
            }

            AuthResult authResult = null;

            return(await Task.Run(async() =>
            {
                var deviceRegistrationnAlreadyExist = _dataContext.UserProfileDevices.SingleOrDefault(p => p.DeviceUniqueId.Equals(model.DeviceId));
                if (deviceRegistrationnAlreadyExist != null)
                {
                    return new AuthResult
                    {
                        Succeeded = true,
                        ResultCode = AuthResultCode.Exist,
                        UserId = deviceRegistrationnAlreadyExist.UserId
                    };
                }

                var providerAuthRegistrationAlreadyExist = _dataContext.UserProfileAuthorizations.SingleOrDefault(p => p.Provider.Equals(model.Provider) && p.ProviderUserId.Equals(model.ProviderUserId));
                if (providerAuthRegistrationAlreadyExist != null)
                {
                    authResult = new AuthResult
                    {
                        Succeeded = true,
                        ResultCode = AuthResultCode.Exist,
                        UserId = providerAuthRegistrationAlreadyExist.UserId
                    };
                    UserProfileDevice userDevice = GetNewUserProfileDevice(model, providerAuthRegistrationAlreadyExist.UserId);
                    _dataContext.UserProfileDevices.Add(userDevice);

                    await _dataContext.SecureSaveChangesAsync();
                }

                // if null, the params didnt match anything
                if (authResult == null)
                {
                    var user = new User
                    {
                        Email = model.Email,
                        UserName = model.Email,
                        Password = string.Empty,
                        RegisterDate = _dateTimeManagerService.GetUniversalDateTime()
                    };
                    user = await domainManager.InsertAsync(user);

                    if (!string.IsNullOrEmpty(model.ProviderUserId))
                    {
                        var userAuth = new UserProfileAuthorization
                        {
                            UserId = user.Id,
                            Provider = model.Provider,
                            ProviderUserId = model.ProviderUserId,
                            CreatedAt = _dateTimeManagerService.GetUniversalDateTime()
                        };
                        _dataContext.UserProfileAuthorizations.Add(userAuth);
                    }

                    var userDevice = GetNewUserProfileDevice(model, user.Id);
                    _dataContext.UserProfileDevices.Add(userDevice);

                    await _dataContext.SecureSaveChangesAsync();

                    authResult = new AuthResult {
                        Succeeded = true, ResultCode = AuthResultCode.Created, UserId = user.Id
                    };
                }

                return authResult;
            }));
        }