private void ChangeSubAreaUsers(int subAreaId, User[] actualUsers)
        {
            List <int> oldSubAreaUsers = subAreaController.GetAllStudentsIds(subAreaId);
            List <int> actualUsersIds  = UserUtils.UserToUserIds(actualUsers);
            List <int> usersToAssign   = UserUtils.OneWayCompareUsers(actualUsersIds, oldSubAreaUsers);
            List <int> usersToDelete   = UserUtils.OneWayCompareUsers(oldSubAreaUsers, actualUsersIds);

            SubAreaAssignUtils.AssignUsersToSubArea(usersToAssign.ToArray(), subAreaController, subAreaId);
            SubAreaAssignUtils.UnAssignUsersToSubArea(usersToDelete.ToArray(), subAreaController, subAreaId);
        }
        private void ChangeSubAreaUsers(int subAreaId, User[] actualStudents, User[] actualTeachers)
        {
            List <int> oldSubAreaUsers = subAreaController.GetAllStudentsIds(subAreaId);

            foreach (int userId in oldSubAreaUsers)
            {
                StudentTeacherProxy.UpdateStudent(userId);
            }
            List <int> actualUsersIds = UserUtils.UserToUserIds(actualStudents.Concat(actualTeachers).ToArray());
            List <int> usersToAssign  = UserUtils.OneWayCompareUsers(actualUsersIds, oldSubAreaUsers);
            List <int> usersToDelete  = UserUtils.OneWayCompareUsers(oldSubAreaUsers, actualUsersIds);

            SubAreaAssignUtils.AssignUsersToSubArea(usersToAssign.ToArray(), subAreaController, subAreaId);
            SubAreaAssignUtils.UnAssignUsersToSubArea(usersToDelete.ToArray(), subAreaController, subAreaId);
        }
        // POST: api/EditSubArea
        public void Post(object refurbishedSubArea, bool edit)
        {
            JObject     juser            = refurbishedSubArea as JObject;
            RealSubArea recievingSubArea = juser.ToObject <RealSubArea>();
            SubArea     subArea          = new SubArea();

            if (edit == false)
            {
                subArea = SubAreaUtils.NewSubToSubArea(recievingSubArea, subAreaController);
                int   subAreaId   = subAreaController.AddSubArea(subArea);
                int[] studentsIds = UserUtils.UserToUserIds(recievingSubArea.studentsObj).ToArray();
                SubAreaAssignUtils.AssignUsersToSubArea(studentsIds, subAreaController, subAreaId);
            }
            else
            {
                subArea = SubAreaUtils.EditedSubToSubArea(recievingSubArea, subAreaController);
                subAreaController.EditSubArea(recievingSubArea.Id, subArea);
                ChangeSubAreaUsers(recievingSubArea.Id, recievingSubArea.studentsObj);
            }
        }