Ejemplo n.º 1
0
        public int AddQuestion(QuestionDTO currentQuestion, int userId)
        {
            Questions questionToAdd = new Questions
            {
                Content = currentQuestion.Content,
                ThemeId = currentQuestion.ThemeId,
                UserId  = userId,
                Type    = currentQuestion.Type.ToString()
            };

            foreach (var answer in currentQuestion.Answers)
            {
                var answerToAdd = new Answers
                {
                    Content  = answer.Content,
                    Question = questionToAdd
                };

                db.Answers.Add(answerToAdd);
            }

            db.Questions.Add(questionToAdd);

            db.SaveChanges();

            return(questionToAdd.Id);
        }
Ejemplo n.º 2
0
        public void CreateTest(TestDTO test, int id)
        {
            var testToAdd = new Tests
            {
                Class       = test.Class,
                DateCreated = DateTime.Now,
                AuthorId    = id,
                IsPublic    = (byte)(test.IsPublic ? 1 : 0),
                ThemeId     = test.Theme.Id
            };

            for (int i = 0; i < test.Questions.Count; i++)
            {
                var tq = new TestsQuestions
                {
                    Test          = testToAdd,
                    QuestionId    = test.Questions[i].Id,
                    QuestionPlace = i
                };

                this.db.TestsQuestions.Add(tq);
            }

            this.db.Tests.Add(testToAdd);

            db.SaveChanges();
        }
Ejemplo n.º 3
0
        public void Register(string username, string password, string name, string email, bool is_admin)
        {
            var user = new Users
            {
                Name     = name,
                Username = username,
                Email    = email,
                IsAdmin  = is_admin ? (byte)1 : (byte)0,
                Password = PasswordHasher.HashPassword(password)
            };

            dbContext.Users.Add(user);
            dbContext.SaveChanges();
        }
Ejemplo n.º 4
0
        public void UpdateUser(UserDTO currentUser)
        {
            var user = dbContext.Users
                       .Include(u => u.UsersSubjects)
                       .ThenInclude(us => us.Subject)
                       .FirstOrDefault(u => u.Id == currentUser.Id);

            if (user == null)
            {
                return;
            }

            user.Name             = currentUser.Name;
            user.Username         = currentUser.Username;
            user.IsAdmin          = currentUser.IsAdmin ? (byte)1 : (byte)0;
            user.Email            = currentUser.Email;
            user.CurrentSubjectId = currentUser.Subject.Id;

            if (!string.IsNullOrWhiteSpace(currentUser.Password))
            {
                user.Password = PasswordHasher.HashPassword(currentUser.Password);
            }

            foreach (var subj in user.UsersSubjects.ToList())
            {
                if (!currentUser.Subjects.Any(s => s.Id == subj.SubjectId))
                {
                    this.dbContext.UsersSubjects.Remove(subj);
                }
            }

            foreach (var subj in currentUser.Subjects)
            {
                if (!user.UsersSubjects.Any(us => us.SubjectId == subj.Id))
                {
                    this.dbContext
                    .UsersSubjects
                    .Add(new UsersSubjects
                    {
                        User      = user,
                        SubjectId = subj.Id
                    });
                }
            }

            dbContext.SaveChanges();
        }