Пример #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));
        }
Пример #2
0
        public async Task <IActionResult> Create([Bind("Deadline,ProfessorId,Concept,Group")] Assignment assignment)
        {
            if (ModelState.IsValid)
            {
                var group = _context.Groups.AsNoTracking().FirstOrDefault(g => g.Name == assignment.Group.Name);
                if (group == null)
                {
                    group = new Group()
                    {
                        Name = assignment.Group.Name
                    };
                    _context.Add(group);
                    await _context.SaveChangesAsync();
                }
                var concept = _context.Concepts.AsNoTracking().FirstOrDefault(c => c.Name == assignment.Concept.Name);
                if (concept == null)
                {
                    concept = new Concept()
                    {
                        Name = assignment.Concept.Name
                    };
                    _context.Add(concept);
                    await _context.SaveChangesAsync();
                }
                assignment.GroupId     = group.Id;
                assignment.ConceptId   = concept.Id;
                assignment.Group       = null;
                assignment.Concept     = null;
                assignment.ProfessorId = (int)HttpContext.Session.GetInt32("ID");
                _context.Add(assignment);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Create), new { message = "Tema trimisa cu succes" }));
            }
            ViewData["Group"]   = new SelectList(_context.Groups.AsNoTracking(), "Id", "Name", assignment.Group);
            ViewData["Concept"] = new SelectList(_context.Concepts.AsNoTracking(), "Id", "Name", assignment.Concept);

            return(View(assignment));
        }