예제 #1
0
        public async Task <IActionResult> SendEmail(string email)
        {
            var emailForQuery = email.ToLower();
            var user          = await _repo.GetUserByEmail(emailForQuery);

            var random      = new Random();
            var chars       = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
            var newPassword = new string(Enumerable.Repeat(chars, 20).Select(s => s[random.Next(s.Length)]).ToArray());

            _repo.DeleteFromRepo(user);
            await _repo.SaveAll();

            var userForRegisterDto = new CreateUserDto();

            _map.Map(user, userForRegisterDto);
            userForRegisterDto.Password = newPassword;

            await Register(userForRegisterDto);

            var message = new EmailMessage(new string[] { user.Email }, "Password reset", "This is your new password:" + newPassword);

            _emailSender.SendEmail(message);


            return(NoContent());
        }
예제 #2
0
        public async Task <IActionResult> DeleteQuiz(int quizId)
        {
            var quizFromRepo = await _repo.GetQuiz(quizId);

            var questionsFromRepo = await _repo.GetQuestions(quizId);

            foreach (var questionToDelete in questionsFromRepo)
            {
                _repo.DeleteFromRepo(questionToDelete);
            }
            _repo.DeleteFromRepo(quizFromRepo);
            if (await _repo.SaveAll())
            {
                return(Ok());
            }
            throw new Exception("Nie udalo się usunąć wybranego quizu");
        }
예제 #3
0
        public async Task <IActionResult> DeleteLesson(int lessonId)
        {
            var lessonFromRepo = await _repo.GetLesson(lessonId);

            _repo.DeleteFromRepo(lessonFromRepo);
            if (await _repo.SaveAll())
            {
                return(Ok());
            }
            throw new Exception("Nie udało się usunąć wybranej lekcji");
        }
예제 #4
0
        public async Task <IActionResult> DeleteMyGroup()
        {
            var userId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);
            var group  = await _repo.CheckUserIsLeader(userId);

            var groupId = group.Id;

            _repo.DeleteFromRepo(group);

            if (await _repo.SaveAll())
            {
                var groupUsers = await _repo.GetGroupUsers(groupId);

                foreach (var groupUser in groupUsers)
                {
                    _repo.DeleteFromRepo(groupUser);
                }
                await _repo.SaveAll();

                return(Ok());
            }
            throw new Exception("Nie udało się usunąć grupy");
        }