Beispiel #1
0
        public async Task <IActionResult> Register(RegisterViewModel user)
        {
            if (ModelState.IsValid)
            {
                if (user.Rol == UserType.Student)
                {
                    var student = new Student {
                        FirstName = user.FirstName, LastName = user.LastName, Email = user.Email
                    };
                    var group = await _context.Groups.AsNoTracking().FirstOrDefaultAsync(g => g.Name == user.Group);

                    if (group == null)
                    {
                        student.Group = new Group {
                            Name = user.Group
                        };
                    }
                    else
                    {
                        student.GroupId = group.Id;
                    }
                    student.Password = new PasswordHasher <Student>().HashPassword(student, user.Password);
                    _context.Add(student);
                    _context.SaveChanges();
                }
                else
                {
                    var prof = new Professor {
                        FirstName = user.FirstName, LastName = user.LastName, Email = user.Email
                    };
                    prof.Password = new PasswordHasher <Professor>().HashPassword(prof, user.Password);
                    _context.Add(prof);
                    _context.SaveChanges();
                }
                return(RedirectToAction("Login"));
            }
            ViewData["Group"] = new SelectList(_context.Groups.AsNoTracking(), "Id", "Name");
            return(View(user));
        }
Beispiel #2
0
 public override void Handle(ICommand command)
 {
     using (var transaction = ELearningContext.Database.BeginTransaction(System.Data.IsolationLevel.ReadCommitted))
     {
         try
         {
             base.Handle(command);
             ELearningContext.SaveChanges();
             transaction.Commit();
         }
         catch (System.Exception e)
         {
             transaction.Rollback();
             throw e;
         }
     }
 }
Beispiel #3
0
 public void Save(Question question)
 {
     try
     {
         var q = _context.Questions.AsNoTracking().FirstOrDefault(qq => qq.Id == question.Id);
         q.QuestionConcepts = question.QuestionConcepts;
         q.Answers          = question.Answers;
         q.Comment          = question.Comment;
         q.Difficulty       = question.Difficulty;
         q.Text             = question.Text;
         q.Status           = QuestionStatus.Accepted;
         _context.Update(q);
         _context.SaveChanges();
     }
     catch (DbUpdateConcurrencyException)
     {
         throw;
     }
 }