Example #1
0
        /// <summary>
        /// Signin with a user
        /// </summary>
        /// <param name="user">The user</param>
        /// <param name="ct">The cancellation token</param>
        /// <returns>Bearer</returns>
        public async Task <Bearer> Signin(Models.Account.User user, CancellationToken ct)
        {
            var watch = Stopwatch.StartNew();

            var restClient = new RestClient(Constants.PopcornApiEndpoint);
            var request    = new RestRequest("/{segment}", Method.POST);

            request.AddUrlSegment("segment", "oauth/token");
            request.AddParameter("username", user.Username);
            request.AddParameter("password", user.Password);
            request.AddParameter("grant_type", "password");

            var response = await restClient.ExecutePostTaskAsync(request, ct);

            if (response.ErrorException != null)
            {
                throw new Exception();
            }

            if (response.StatusCode == HttpStatusCode.BadRequest)
            {
            }

            var bearer =
                await Task.Run(() => JsonConvert.DeserializeObject <Bearer>(response.Content), ct);

            watch.Stop();
            var elapsedMs = watch.ElapsedMilliseconds;

            Logger.Debug(
                $"Signin ({user.Username}, {user.Fullname}, {user.Email}) in {elapsedMs} milliseconds.");

            return(bearer);
        }
Example #2
0
        /// <summary>
        /// Open signin modal
        /// </summary>
        /// <returns>Task</returns>
        private async Task OpenSigninModal()
        {
            var signinDialog = new SigninDialog(new SigninDialogSettings());
            await DialogCoordinator.ShowMetroDialogAsync(this, signinDialog);

            var signinDialogResult = await signinDialog.WaitForButtonPressAsync();

            await DialogCoordinator.HideMetroDialogAsync(this, signinDialog);

            if (signinDialogResult == null)
            {
                return;
            }

            if (signinDialogResult.ShouldSignup)
            {
                var user = await OpenSignupModal();

                if (user == null)
                {
                    return;
                }
                await Signin(user);
            }
            else
            {
                var user = new Models.Account.User
                {
                    Username = signinDialogResult.Username,
                    Password = signinDialogResult.Password
                };

                await Signin(user);
            }
        }
Example #3
0
        public async Task <IdentityResult> RegisterUser(Models.Account.User userModel)
        {
            IdentityUser user = new IdentityUser
            {
                UserName = userModel.UserName
            };

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

            return(result);
        }
Example #4
0
        public async Task <IHttpActionResult> Register(Models.Account.User user)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            IdentityResult result = await _repo.RegisterUser(user);

            IHttpActionResult errorResult = GetErrorResult(result);

            if (errorResult != null)
            {
                return(errorResult);
            }

            return(Ok());
        }
 public ActionResult AddUser()
 {
     var model = new Models.Account.User();
     return View(model);
 }
Example #6
0
        /// <summary>
        /// Open signin modal
        /// </summary>
        /// <returns>Task</returns>
        private async Task OpenSigninModal()
        {
            var signinDialog = new SigninDialog(new SigninDialogSettings());
            await DialogCoordinator.ShowMetroDialogAsync(this, signinDialog);
            var signinDialogResult = await signinDialog.WaitForButtonPressAsync();
            await DialogCoordinator.HideMetroDialogAsync(this, signinDialog);
            if (signinDialogResult == null)
                return;

            if (signinDialogResult.ShouldSignup)
            {
                var user = await OpenSignupModal();
                if (user == null)
                    return;
                await Signin(user);
            }
            else
            {
                var user = new Models.Account.User
                {
                    Username = signinDialogResult.Username,
                    Password = signinDialogResult.Password
                };

                await Signin(user);
            }
        }
        public Models.Account.User GetUser(string key, string userName)
        {
            var user = new Models.Account.User();

            try
            {
                using (var ctx = new AssessmentEntities())
                {
                    var guid = Guid.Parse(key);
                    var userObj = ctx.User.FirstOrDefault(x => x.Guid == guid && x.UserName == userName);

                    if (userObj != null)
                    {
                        var roles = new List<string>();
                        var roleObj = userObj.UserRole;
                        foreach (var item in roleObj.OrderBy(x => x.RoleId))
                        {
                            if (!item.Disabled)
                            {
                                var role = item.Role;
                                if (!role.Disabled) roles.Add(item.Role.Name);
                            }
                        }

                        user.Roles = roles;
                        user.Id = userObj.Id;
                        user.UserName = userObj.UserName;
                        user.FirstName = userObj.FirstName;
                        user.LastName = userObj.LastName;
                        user.CompanyName = userObj.CompanyName;
                        user.Email = userObj.Email;
                        if (userObj.EndDate.HasValue) user.EndDate = (DateTime)userObj.EndDate;
                        user.LastLoginDate = userObj.LastLoginDate;
                        user.Status = (Models.Account.UserStatus)userObj.StatusId;
                        user.Deleted = userObj.Deleted;
                    }
                    else
                    {
                        Logger.Log(LogLevel.Error, "Error in GetUser [key = " + key + ", user name = " + userName + "]: user not found");
                    }
                }
            }
            catch (Exception e)
            {
                user.Status = Models.Account.UserStatus.Undefined;
                Logger.Log(LogLevel.Error, "Error in GetUser [key = " + key + ", user name = " + userName + "]: " + e.Message);
            }

            return user;
        }
Example #8
0
 /// <summary>
 /// Signin user
 /// </summary>
 /// <param name="user">The user to signin</param>
 /// <returns>Task</returns>
 private async Task Signin(Models.Account.User user)
 {
     var bearer = await UserService.Signin(user, new CancellationToken());
 }