public IActionResult AddStudents([FromHeader] string Authorization, [FromHeader] string Role, [FromBody] int[] studentIds)
 {
     if (CheckToken(Authorization) == true && CheckPermission(Role) == true)
     {
         var clazzId = studentIds.Last();
         var clazz   = _context.Clazz.Find(clazzId);
         for (var i = 0; i < studentIds.Count() - 1; i++)
         {
             var existedStudentClazz = _context.StudentClazz.Find(studentIds[i], clazzId);
             if (existedStudentClazz != null)
             {
                 continue;
             }
             var          student      = _context.Account.Find(studentIds[i]);
             StudentClazz studentClazz = new StudentClazz
             {
                 Account = student,
                 Clazz   = clazz
             };
             _context.Add(studentClazz);
         }
         _context.SaveChanges();
         return(new JsonResult(studentIds));
     }
     return(Unauthorized());
 }
        public async Task <IActionResult> SaveStudents(int?clazzId, int[] accountIds)
        {
            var clazz = _context.Clazz.Find(clazzId);

            foreach (var id in accountIds)
            {
                var existedStudenClazz = _context.StudentClazz.Find(id, clazzId);
                if (existedStudenClazz != null)
                {
                    continue;
                }
                var          student      = _context.Account.Find(id);
                StudentClazz studentClazz = new StudentClazz
                {
                    Clazz   = clazz,
                    Account = student
                };
                _context.Add(studentClazz);
            }
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Index)));
        }
 public IActionResult DeleteStudentFromClazz([FromHeader] string Authorization, [FromHeader] string Role, [FromBody] StudentClazz studentClazz)
 {
     if (CheckToken(Authorization) == true && CheckPermission(Role) == true)
     {
         var studentClazzs = _context.StudentClazz.Find(studentClazz.AccountId, studentClazz.ClazzId);
         if (studentClazzs != null)
         {
             _context.Remove(studentClazzs);
             _context.SaveChanges();
             return(Ok());
         }
         return(NoContent());
     }
     return(Unauthorized());
 }
Ejemplo n.º 4
0
        public async Task <IActionResult> Edit(int id, [Bind("AccountId,RollNumber,Password,Salt,CreatedAt,UpdatedAt,Status")] Account account, int[] roleIds, int[] clazzIds)
        {
            if (id != account.AccountId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    if (roleIds != null)
                    {
                        var OldRoleAccount = _context.RoleAccount.Where(ora => ora.AccountId == id);
                        _context.RoleAccount.RemoveRange(OldRoleAccount);
                    }
                    if (clazzIds != null)
                    {
                        var OldStudentClazz = _context.StudentClazz.Where(osc => osc.AccountId == id);
                        _context.StudentClazz.RemoveRange(OldStudentClazz);
                    }
                    foreach (var roleId in roleIds)
                    {
                        var         role        = _context.Role.Find(roleId);
                        RoleAccount roleAccount = new RoleAccount
                        {
                            Role    = role,
                            Account = account
                        };
                        _context.Update(roleAccount);
                    }
                    foreach (var clazzId in clazzIds)
                    {
                        var          clazz        = _context.Clazz.Find(clazzId);
                        StudentClazz studentClazz = new StudentClazz
                        {
                            Clazz   = clazz,
                            Account = account
                        };
                        _context.Update(studentClazz);
                    }
                    account.RollNumber = "B19APTECH" + account.AccountId.ToString("D4");
                    account.EncryptPassword(account.Password);
                    _context.Update(account);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!AccountExists(account.AccountId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(account));
        }