Example #1
0
        public async Task <IActionResult> GetUser([FromRoute] string userId)
        {
            if (string.IsNullOrEmpty(userId))
            {
                return(BadRequest());
            }

            var user = await UserManager.FindByIdAsync(userId);

            if (user == null)
            {
                return(NotFound());
            }

            var roles = await UserManager.GetRolesAsync(user);

            var dto = new UserGetDto
            {
                Id          = user.Id,
                UserName    = user.UserName,
                Email       = user.Email,
                PhoneNumber = user.PhoneNumber, // Added Craig Martin
                FullName    = user.FullName,
                Roles       = roles
            };

            return(Ok(dto));
        }
Example #2
0
        public UserGetDto EditUser(int userId, UserEditDto userEditDto)
        {
            var passwordHash = new PasswordHash(userEditDto.Password);
            var user         = _context.Set <User>().Find(userId);

            user.FirstName    = userEditDto.FirstName;
            user.LastName     = userEditDto.LastName;
            user.Username     = userEditDto.Username;
            user.Email        = userEditDto.Email;
            user.PasswordSalt = passwordHash.Salt;
            user.PasswordHash = passwordHash.Hash;

            _context.SaveChanges();

            var userGetDto = new UserGetDto
            {
                Id        = user.Id,
                FirstName = user.FirstName,
                LastName  = user.LastName,
                Username  = user.Username,
                Email     = user.Email,
                Role      = user.Role
            };

            userGetDto.Id = user.Id;

            return(userGetDto);
        }
        private UserGetDto CreateUserGetDtoModel(User user, bool somenteUsuario = false)
        {
            var userGetDto = new UserGetDto
            {
                Id         = user.Id,
                Email      = user.Email,
                Nome       = user.Nome,
                Churrascos = new List <ChurrascoUserGetChurrascoDto>()
            };

            if (!somenteUsuario)
            {
                foreach (var churrascoUser in user.Churrascos)
                {
                    userGetDto.Churrascos.Add(new ChurrascoUserGetChurrascoDto
                    {
                        Churrasco = new ChurrascoGetDto
                        {
                            Id                     = churrascoUser.Churrasco.Id,
                            DataChurras            = churrascoUser.Churrasco.DataChurras,
                            Motivo                 = churrascoUser.Churrasco.Motivo,
                            Observacoes            = churrascoUser.Churrasco.Observacoes,
                            ValorSugerido          = churrascoUser.Churrasco.ValorSugerido,
                            ValorSugeridoSemBebida = churrascoUser.Churrasco.ValorSugeridoSemBebida,
                            TotalConvidados        = churrascoUser.Churrasco.Convidados.Count(),
                            TotalArrecadado        = churrascoUser.Churrasco.Convidados.Sum(chuser => chuser.ValorContribuicao),
                        }
                    });
                }
            }



            return(userGetDto);
        }
Example #4
0
        public UserGetDto EditUserRole(int userId, UserRoleEditDto userRoleEditDto)
        {
            var user = _context.Set <User>().Find(userId);

            user.Role = userRoleEditDto.Role;

            _context.SaveChanges();

            var userGetDto = new UserGetDto
            {
                Id          = user.Id,
                FirstName   = user.FirstName,
                LastName    = user.LastName,
                Username    = user.Username,
                Email       = user.Email,
                Address     = user.Address,
                City        = user.City,
                State       = user.State,
                ZipCode     = user.ZipCode,
                PhoneNumber = user.PhoneNumber,
                Role        = user.Role
            };

            userGetDto.Id = user.Id;

            return(userGetDto);
        }
Example #5
0
        public UserGetDto CreateUser(UserCreateDto userCreateDto)
        {
            var passwordHash = new PasswordHash(userCreateDto.Password);

            var user = new User
            {
                FirstName    = userCreateDto.FirstName,
                LastName     = userCreateDto.LastName,
                Username     = userCreateDto.Username,
                Email        = userCreateDto.Email,
                Role         = Constants.Users.Roles.User,
                PasswordSalt = passwordHash.Salt,
                PasswordHash = passwordHash.Hash
            };

            _context.Set <User>().Add(user);
            _context.SaveChanges();

            var userGetDto = new UserGetDto
            {
                Id        = user.Id,
                FirstName = user.FirstName,
                LastName  = user.LastName,
                Username  = user.Username,
                Email     = user.Email,
                Role      = user.Role
            };

            return(userGetDto);
        }
        public CommentGetDto Execute(int id)
        {
            var comment = _context.Comments.Find(id);

            if (comment == null)
            {
                throw new EntityNotFoundException(id, typeof(Comment));
            }

            var blog    = _context.Blogs.Find(comment.BlogId);
            var blogDto = new BlogGetDto
            {
                Id   = blog.Id,
                Name = blog.Name
            };

            var user    = _context.Users.Find(comment.UserId);
            var userDto = new UserGetDto
            {
                Id       = user.Id,
                Username = user.UserName
            };

            var result = new CommentGetDto
            {
                Id       = comment.Id,
                Text     = comment.Text,
                UserId   = userDto.Id,
                Username = userDto.Username,
                BlogId   = blogDto.Id,
                Name     = blogDto.Name
            };

            return(result);
        }
Example #7
0
 public AccountPage()
 {
     InitializeComponent();
     currUser = BankingApiClient.GetInstance().CurrentUser();
     this.NameTextBlock.Text    = $"{currUser.Name}";
     this.SurnameTextBlock.Text = $"{currUser.Surname}";
     this.PhoneTextBlock.Text   = $"{currUser.PhoneNumber}";
 }
Example #8
0
        public async Task <ActionResult <UserGetDto> > DeleteUserById(string UserID)
        {
            UserModel userModel = await _userService.DeleteUserByIdAsync(UserID);

            UserGetDto userGetDto = _mapper.Map <UserGetDto>(userModel);

            return(Ok(userGetDto));
        }
Example #9
0
        public async Task <ActionResult <UserGetDto> > UpdadeUserNameById(string UserID, UserPostDto userPostDto) //TODO need to verify a bunch of these Dtos
        {
            UserModel updatedUserModel = await _userService.UpdateUserNameByUserId(UserID, userPostDto.UserName);

            UserGetDto userGetDto = _mapper.Map <UserGetDto>(updatedUserModel);

            return(CreatedAtAction("GetUserById", new { UserID = userGetDto.UserId }, userGetDto));
        }
Example #10
0
        public UserGetDto Login(UserLoginDto dto)
        {
            var user  = _uow.UserRepository.Get(dto.Username, dto.Password);
            var token = TokenService.GenerateToken(user);

            var userGetDto = new UserGetDto
            {
                Id       = user.Id,
                Username = user.Username,
                Role     = user.Role,
                Token    = token
            };

            return(userGetDto);
        }
Example #11
0
        public static UserGetDto MapUserToUserGetDto(User user)
        {
            var dto = new UserGetDto()
            {
                Nickname = user.Nickname,
                Rating   = user.Rating,
            };
            var haikus = new List <HaikuGetDto>();

            foreach (var haiku in user.Haikus)
            {
                haikus.Add(MapHaikuEntityToHaikuGetDto(haiku));
            }
            dto.Haikus = haikus;
            return(dto);
        }
Example #12
0
        public async Task <UserGetDto> Get(string id)
        {
            var result = new UserGetDto();

            try
            {
                result = Mapper.Map <UserGetDto>(
                    await _context.Users.SingleAsync(x => x.Id == id)
                    );
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
            }
            return(result);
        }
Example #13
0
        public TransferPage()
        {
            InitializeComponent();

            currUser = BankingApiClient.GetInstance().CurrentUser();
            var cards = currUser.Accounts;

            for (var i = 0; i < cards.Length; i++)
            {
                ComboBoxItem boxItem = new ComboBoxItem();
                boxItem.Content = cards[i].AccountNumber;
                if (i == 0)
                {
                    boxItem.IsSelected = true;
                }
                CardComboBox.Items.Add(boxItem);
            }
        }
Example #14
0
        public async Task <UserGetDto> GetUserByIdAsync(int userId)
        {
            using IDbConnection connection = dbConnection.CreateDbConnection();
            var queryResult = await connection.QueryFirstAsync <String>("get_user_info", new { user_id = userId }, commandType : CommandType.StoredProcedure);

            DefaultContractResolver contractResolver = new DefaultContractResolver
            {
                NamingStrategy = new SnakeCaseNamingStrategy()
            };

            UserGetDto userGetDto = JsonConvert.DeserializeObject <UserGetDto>(queryResult, new JsonSerializerSettings
            {
                ContractResolver = contractResolver,
                Formatting       = Formatting.Indented
            });

            return(userGetDto);
        }
Example #15
0
        public MainPage()
        {
            InitializeComponent();
            currUser = BankingApiClient.GetInstance().CurrentUser();
            this.GreetingText.Text = $"Вітаємо,\n{currUser.Surname} {currUser.Name}!";

            var cards = currUser.Accounts;

            foreach (var card in cards)
            {
                Button butt = new Button();
                butt.Content  = $"# {card.AccountNumber}\nБаланс - {String.Format("{0:0.00}", card.Balance)} грн.";
                butt.Name     = "Button" + card.AccountNumber;
                butt.FontSize = 19;
                butt.Tag      = card.AccountNumber;
                butt.Click   += Button_Click;
                CardPanel.Children.Add(butt);
            }
        }
        public UserGetDto EditUser(int userToEditId, UserDto userToEdit)
        {
            var user = _database.Users.First(x => x.Id == userToEditId);

            user.FirstName = userToEdit.FirstName;
            user.LastName  = userToEdit.LastName;
            user.UserName  = userToEdit.UserName;
            user.Age       = userToEdit.Age;

            var userToReturn = new UserGetDto
            {
                Id        = user.Id,
                FirstName = user.FirstName,
                LastName  = user.LastName,
                UserName  = user.UserName,
                Age       = user.Age
            };

            return(userToReturn);
        }
Example #17
0
        public IActionResult Login(ViewModels.User userView)
        {
            string          secretKey      = _configuration.GetSection("Secrets").GetSection("SecretKey").Value;
            IContextFactory contextFactory = new DapperContextFactory(_configuration.GetSection("ConnectionStrings").GetSection("DB").Value);

            Models.User user = new Models.User(userView.Email, userView.Password, userView.Status);
            using (IContext context = contextFactory.Create())
            {
                UserGetDto userGetDto = _userRepository.GetByEmail(user.Email, context)[0];
                byte[]     hash       = _authenticationService.ComputeHashFromSalt(userGetDto.Salt, Encoding.UTF8.GetBytes(user.Password));
                if (hash.SequenceEqual(userGetDto.Hash))
                {
                    return(new ObjectResult(_authenticationService.GenerateToken(user, secretKey)));
                }
                else
                {
                    return(Unauthorized());
                }
            }
        }
Example #18
0
        public UserGetDto CreateUser(UserCreateDto userCreateDto)
        {
            var passwordHash = new PasswordHash(userCreateDto.Password);

            var user = new User
            {
                FirstName    = userCreateDto.FirstName,
                LastName     = userCreateDto.LastName,
                Username     = userCreateDto.Username,
                Email        = userCreateDto.Email,
                Address      = userCreateDto.Address,
                City         = userCreateDto.City,
                State        = userCreateDto.State,
                ZipCode      = userCreateDto.ZipCode,
                PhoneNumber  = userCreateDto.PhoneNumber,
                Role         = Constants.Users.Roles.User,
                PasswordSalt = passwordHash.Salt,
                PasswordHash = passwordHash.Hash
            };

            _context.Set <User>().Add(user);
            _context.SaveChanges();

            var userGetDto = new UserGetDto
            {
                Id          = user.Id,
                FirstName   = user.FirstName,
                LastName    = user.LastName,
                Username    = user.Username,
                Email       = user.Email,
                Address     = user.Address,
                City        = user.City,
                State       = user.State,
                ZipCode     = user.ZipCode,
                PhoneNumber = user.PhoneNumber,
                Role        = user.Role
            };

            return(userGetDto);
        }
Example #19
0
        public UserGetDto EditUserRole(int userId, UserRoleEditDto userRoleEditDto)
        {
            var user = _context.Set <User>().Find(userId);

            user.Role = userRoleEditDto.Role;

            _context.SaveChanges();

            var userGetDto = new UserGetDto
            {
                Id        = user.Id,
                FirstName = user.FirstName,
                LastName  = user.LastName,
                Username  = user.Username,
                Email     = user.Email,
                Role      = user.Role
            };

            userGetDto.Id = user.Id;

            return(userGetDto);
        }
Example #20
0
        public UserGetDto EditUser(int userId, UserEditDto userEditDto)
        {
            var passwordHash = new PasswordHash(userEditDto.Password);
            var user         = _context.Set <User>().Find(userId);

            user.FirstName    = userEditDto.FirstName;
            user.LastName     = userEditDto.LastName;
            user.Username     = userEditDto.Username;
            user.Email        = userEditDto.Email;
            user.Address      = userEditDto.Address;
            user.City         = userEditDto.City;
            user.State        = userEditDto.State;
            user.ZipCode      = userEditDto.ZipCode;
            user.PhoneNumber  = userEditDto.PhoneNumber;
            user.PasswordSalt = passwordHash.Salt;
            user.PasswordHash = passwordHash.Hash;

            _context.SaveChanges();

            var userGetDto = new UserGetDto
            {
                Id          = user.Id,
                FirstName   = user.FirstName,
                LastName    = user.LastName,
                Username    = user.Username,
                Email       = user.Email,
                Address     = user.Address,
                City        = user.City,
                State       = user.State,
                ZipCode     = user.ZipCode,
                PhoneNumber = user.PhoneNumber,
                Role        = user.Role
            };

            userGetDto.Id = user.Id;

            return(userGetDto);
        }
        public UserGetDto CreateUser(UserDto userToCreate)
        {
            var newUser = new User
            {
                Id        = _database.GetNextBlogId,
                FirstName = userToCreate.FirstName,
                LastName  = userToCreate.LastName,
                UserName  = userToCreate.UserName,
                Age       = userToCreate.Age
            };

            _database.Users.Add(newUser);

            var userToReturn = new UserGetDto
            {
                Id        = newUser.Id,
                FirstName = newUser.FirstName,
                LastName  = newUser.LastName,
                UserName  = newUser.UserName,
                Age       = newUser.Age
            };

            return(userToReturn);
        }
Example #22
0
        public async Task <IActionResult> UpdateUser([FromRoute] string userId,
                                                     [FromBody] UserPutDto updatedUser)
        {
            if (string.IsNullOrEmpty(userId) || updatedUser == null)
            {
                return(BadRequest());
            }

            var user = await UserManager.FindByIdAsync(userId);

            if (user == null)
            {
                return(NotFound());
            }


            foreach (var tUser in UserManager.Users) // for all users
            {
                if (tUser.Id != user.Id)             // not the same user
                {
                    // tUser no number, skip
                    if (tUser.PhoneNumber == null)
                    {
                        continue;
                    }

                    // if the user has the same phone number as the request update to the current user then badrequest
                    // as two members cannot have the same number in this system.
                    if (tUser.PhoneNumber.Equals(updatedUser.PhoneNumber))
                    {
                        return(BadRequest());
                    }
                }
            }

            user.Email = updatedUser.Email ?? user.Email;
            // Craig Martin 04-12-19 -- Altering username on update, and phone number
            user.UserName    = updatedUser.Email ?? user.Email;
            user.PhoneNumber = updatedUser.PhoneNumber ?? user.PhoneNumber;

            user.FullName = updatedUser.FullName ?? user.FullName;

            await UserManager.UpdateAsync(user);

            if (!string.IsNullOrEmpty(updatedUser.Password))
            {
                await UserManager.RemovePasswordAsync(user);

                await UserManager.AddPasswordAsync(user, updatedUser.Password);
            }

            var roles = await UserManager.GetRolesAsync(user);

            var rolesToAdd = updatedUser.Roles.Where(r => !roles.Contains(r));
            await UserManager.AddToRolesAsync(user, rolesToAdd);

            var rolesToRemove = roles.Where(r => !updatedUser.Roles.Contains(r));
            await UserManager.RemoveFromRolesAsync(user, rolesToRemove);

            roles = await UserManager.GetRolesAsync(user);

            var dto = new UserGetDto
            {
                Id          = user.Id,
                UserName    = user.UserName,
                Email       = user.Email,
                PhoneNumber = user.PhoneNumber,
                FullName    = user.FullName,
                Roles       = roles
            };

            return(Ok(dto));
        }
Example #23
0
        public async Task <IActionResult> AddUser([FromBody] UserPutDto newUser)
        {
            if (newUser == null)
            {
                return(BadRequest());
            }

            // CRAIG MARTIN - check if the phone number is already in the system, if so then BadRequest
            if (UserManager.Users.Any(x => x.PhoneNumber.Equals(newUser.PhoneNumber)))
            {
                return(BadRequest());
            }

            var user = new AppUser
            {
                Email       = newUser.Email,
                FullName    = newUser.FullName,
                UserName    = newUser.Email,
                PhoneNumber = newUser.PhoneNumber // Craig Martin - Added phone number
            };

            var result = await UserManager.CreateAsync(user, newUser.Password);

            if (!result.Succeeded)
            {
                return(BadRequest());
            }

            // CRAIG MARTIN - Generate email confirmation token
            string token = await UserManager.GenerateEmailConfirmationTokenAsync(user);

            string confirmationLink = Url.Action("ConfirmEmail", "EmailConfirmation", new
            {
                userId = user.Id,
                token  = token
            },
                                                 Request.Scheme);

            //Send email with confirmationn link.
            EmailSender emailSender = new EmailSender();

            emailSender.SendEmail(user, configuration, confirmationLink, "Three Amigos -- Confirm Email");

            user = await UserManager.FindByEmailAsync(newUser.Email);

            await UserManager.AddToRolesAsync(user, newUser.Roles);

            var roles = await UserManager.GetRolesAsync(user);

            var dto = new UserGetDto
            {
                Id          = user.Id,
                UserName    = user.UserName,
                Email       = user.Email,
                PhoneNumber = user.PhoneNumber, // Craig Martin - Added phone number
                FullName    = user.FullName,
                Roles       = roles
            };

            return(Ok(dto));
        }