示例#1
0
        public StudentParent AddStudentParent([FromBody] StudentParent studentParent)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    bool isNewParent = false;
                    if (studentParent.StudentParentId == 0)
                    {
                        isNewParent = true;
                        if (_userService.IsEmailAddressExists(studentParent.Email))
                        {
                            throw new Exception("Email address already Exists!!");
                        }
                    }

                    studentParent.UpdateDate = DateTime.Now;
                    studentParent            = _studentService.InsertUpdateStudentParent(studentParent);

                    if (studentParent != null && isNewParent)
                    {
                        Utilities.SendWelcomeMailToParent(studentParent.Email, studentParent.Password, studentParent.FirstName + " " + studentParent.LastName);
                    }
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            return(studentParent);
        }
示例#2
0
        public int CreateStudentParent(StudentParent item)
        {
            _context.StudentParent.Add(item);
            _context.SaveChanges();

            return(item.StudentParentID);
        }
示例#3
0
        public bool InsertIntoStudentParent(StudentParent studentParent)
        {
            bool success = true;
            int  result  = 0;

            try
            {
                DB.Open();

                result = DB.Exec("BEGIN TRANSACTION BEGIN TRY INSERT INTO [StudentParent](fk_StudentId, fk_ParentId)" +
                                 "VALUES(" + studentParent.Fkstudentid + "," + studentParent.Fkparentid + "); COMMIT TRANSACTION END TRY  BEGIN CATCH  ROLLBACK TRANSACTION  END CATCH");

                if (result == -1)
                {
                    throw new Exception();
                }
            }
            catch (SqlException sqlException)
            {
                Debug.Write(sqlException.ToString());
                success = false;
            }

            finally
            {
                DB.Close();
            }
            return(success);
        }
示例#4
0
        public List <StudentParent> GetStudentParent(int id)
        {
            List <StudentParent> studentParentsList = new List <StudentParent>();



            //var con=@"Data Source=(LocalDB)\v11.0;AttachDbFileName=C:\USERS\LarsS\DOCUMENTS\GITHUB\HOVEDOPAVE\HOVEDOPGAVE\WEBSERVICE\APP_DATA\SCHOOLDB.MDF; Integrated Security=SSPI; Connection Timeout=1200";

            //(@"Data Source=(LocalDB)\v11.0;AttachDbFileName=|DataDirectory|\SchoolDB.mdf; Integrated Security=SSPI; Connection Timeout=12000");

            using (SqlConnection myConnection = new SqlConnection(connectionString))
            {
                string     oString = "SELECT * FROM StudentParent WHERE [fk_StudentId]=" + id + "OR [fk_ParentId]=" + id;
                SqlCommand oCmd    = new SqlCommand(oString, myConnection);
                myConnection.Open();
                using (SqlDataReader oReader = oCmd.ExecuteReader())
                {
                    while (oReader.Read())
                    {
                        StudentParent studentParent = new StudentParent();
                        studentParent.Fkparentid  = Convert.ToInt32(oReader["fk_ParentId"]);
                        studentParent.Fkstudentid = Convert.ToInt32(oReader["fk_StudentId"]);
                        studentParentsList.Add(studentParent);
                    }

                    myConnection.Close();
                }
                return(studentParentsList);
            }
        }
示例#5
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Name,LastName,Age,Gender,Password,PhoneNubmber,IsMobielVerifed,Email,IsEmailVerified,AvatarPath,BirthDay,AllowActivity")] StudentParent studentParent)
        {
            if (id != studentParent.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(studentParent);
                    await _context.SaveChangesWithHistoryAsync(HttpContext);
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!StudentParentExists(studentParent.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(studentParent));
        }
        private bool StudentParentEntry()
        {
            var res = false;

            try
            {
                foreach (var item in studentId)
                {
                    foreach (var items in ParentId)
                    {
                        var StudentParentModel = new StudentParent();
                        StudentParentModel.ParentId  = items;
                        StudentParentModel.StudentId = item;
                        db.StudentParents.Add(StudentParentModel);
                        db.SaveChanges();
                    }
                }
                res = true;
            }
            catch (Exception)
            {
                res = false;
            }

            return(res);
        }
        public void UpdateStudents(int[] students)
        {
            // add students who didnt exists before
            foreach (var studentId in students)
            {
                var exists = Parent.Students.FirstOrDefault(x => x.StudentId == studentId) != null;

                if (!exists)
                {
                    var student = new StudentParent(studentId, ParentId);

                    Parent.Students.Add(student);
                }
            }

            // remove old students who arent in the new list
            foreach (var student in Parent.Students)
            {
                if (!students.Contains(student.StudentId))
                {
                    Parent.Students.Remove(student);
                }
            }

            db.Entry(Parent).State = System.Data.Entity.EntityState.Modified;
        }
示例#8
0
        public ActionResult DeleteConfirmed(int id)
        {
            StudentParent studentParent = db.StudentParent.Find(id);

            db.StudentParent.Remove(studentParent);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#9
0
        public bool InsertStudent(Student student, EnrollmentEx enrollment = null)
        {
            bool   success      = false;
            string sqlStatement = "";

            if (enrollment != null)
            {
                List <ParentEnrollment> parentenrollmentlist = DatabaseHandler.Instance.GetParentEnrollment(enrollment.Id);

                // student.Id = DatabaseHandler.Instance.InsertStudent(student); // hvorfor ikke bare returner string tilbage og så have en commit metode på databasehandler
                // så kan du sende den samlet sql statement ned til databasen. (Dette behøves ikke når der skal læses/read da den ikke kan ødelægge noget.) transaction

                sqlStatement += DatabaseHandler.Instance.InsertStudent2(student);


                foreach (ParentEnrollment parentenrollment in parentenrollmentlist)
                {
                    StudentParent association = new StudentParent();
                    association.Fkparentid  = parentenrollment.Fkparentid;
                    association.Fkstudentid = student.Id;

                    sqlStatement += DatabaseHandler.Instance.InsertIntoStudentParent2(association); // abner og lukker connection flere gange....
                }


                foreach (ParentEnrollment parentenrollment in parentenrollmentlist)
                {
                    sqlStatement += DatabaseHandler.Instance.DeleteConnectionBetweenParentAndEnrollment2(parentenrollment.Fkparentid, enrollment.Id); // abner og lukker connection flere gange....
                }
                sqlStatement += DatabaseHandler.Instance.DeleteEnrollment2(enrollment.Id);


                success = DatabaseHandler.Instance.Commit(sqlStatement);
            }

            else if (enrollment == null)
            {
                if (student.Id != 0)
                {
                    success = DatabaseHandler.Instance.UpdateStudent(student);
                }
                else
                {
                    //int recentId = DatabaseHandler.Instance.GetMostRecentUserId();

                    // if (recentId != -1)
                    //{

                    /*  student.Id = recentId;
                     * student.Fkuserid = recentId;
                     * student.Username = "******" + recentId;*/
                    int generatedId = DatabaseHandler.Instance.InsertStudent(student); // will insert into User and Student.
                    //  }
                }
            }

            return(success);
        }
        public StudentParent DeleteStudentParent(int studentParentId)
        {
            StudentParent studentParent = GetStudentParent(studentParentId);

            db.StudentParentsRepository.Delete(studentParent);
            db.Save();

            return(studentParent);
        }
示例#11
0
        public string InsertIntoStudentParent2(StudentParent studentParent)
        {
            string returnstring = "";


            returnstring = (" INSERT INTO [StudentParent](fk_StudentId, fk_ParentId)" +
                            "VALUES(@Id," + studentParent.Fkparentid + ");");

            return(returnstring);
        }
示例#12
0
        public JsonResult RegisterByDeskTop(Register model)
        {
            UserModule             module      = new UserModule(_context, _userManager, _signInManager);
            ParentModule           parentMod   = new ParentModule(_context);
            StudentModule          studentMod  = new StudentModule(_context);
            StudentParentModule    stuParMod   = new StudentParentModule(_context);
            StudentClassroomModule stuClassMod = new StudentClassroomModule(_context);

            //=========== checking validation for credencials key ===============//
            var credInfo = GetCredentialsInfo(model.Student.Key);

//           if ( GetCredentialsInfo(model.Student.Key) == null )
            if (credInfo == null)
            {
                return(Json(new { Succeeded = false, statusCode = 501 }));
            }

            var resultVal = module.CreateUserByDeskTop(model.Users);

            if (resultVal.Result.StatusCode == 200)     // success Users table
            {
                if (module.GetUserInfo(model.Users) != null)
                {
                    Users user = new Users {
                        UserName = model.Users.Email, PasswordHash = model.Users.PasswordHash
                    };

                    string oauthResult = CreateOAuthUser(user);  // need validation check. if result is success return success value else delete MPXUser data and return error.

                    if (model.Parent == null)
                    {
                        model.Parent = new Parent();
                    }
                    model.Parent.UserId = module.GetUserInfo(model.Users).Id;     //select userID
                    int parentID = parentMod.CreateParent(model.Parent);          //save parent info
                    model.Student.ParentID = parentID;
                    int studentID = studentMod.CreateStudent(model.Student);      //save student info

                    StudentParent stuParModel = new StudentParent {
                        ParentID = parentID, StudentID = studentID
                    };

                    stuParMod.CreateStudentParent(stuParModel);     //save StudentParent info
                    StudentClassroom stuClassModel = new StudentClassroom {
                        StudentID = studentID, IsActive = true, ClassroomID = credInfo.Teacher.ClassroomID
                    };

                    stuClassMod.CreateStuClassroom(stuClassModel);      //save studentclassroom
//                    var roleresult = _userManager.AddToRoleAsync(model.Users, "Superusers");
                }
            }

            return(Json(resultVal.Result));
        }
 public static StudentParentDto StudentParentToStudentParentDto(StudentParent studentParent)
 {
     return(new StudentParentDto()
     {
         StudentParentId = studentParent.Id,
         StudentId = studentParent.Student.Id,
         ParentId = studentParent.Parent.Id,
         StudentName = studentParent.Student.UserName,
         ParentName = studentParent.Parent.UserName
     });
 }
示例#14
0
        public async Task <IActionResult> Create([Bind("Id,Name,LastName,Age,Gender,Password,PhoneNubmber,IsMobielVerifed,Email,IsEmailVerified,AvatarPath,BirthDay,AllowActivity")] StudentParent studentParent)
        {
            if (ModelState.IsValid)
            {
                _context.Add(studentParent);
                await _context.SaveChangesWithHistoryAsync(HttpContext);

                return(RedirectToAction(nameof(Index)));
            }
            return(View(studentParent));
        }
示例#15
0
        public bool IsParent(int studentId, int parentId)
        {
            StudentParent studentParent = db.StudentParentsRepository.Get(sp => sp.StudentId == studentId && sp.ParentId == parentId).FirstOrDefault();

            if (studentParent == null)
            {
                return(false);
            }

            return(true);
        }
示例#16
0
 public ActionResult Edit([Bind(Include = "StudentParentID,StudentID,ParentID")] StudentParent studentParent)
 {
     if (ModelState.IsValid)
     {
         db.Entry(studentParent).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ParentID  = new SelectList(db.Parent, "ParentID", "Parent_FirstName", studentParent.ParentID);
     ViewBag.StudentID = new SelectList(db.Student, "StudentID", "LastName", studentParent.StudentID);
     return(View(studentParent));
 }
示例#17
0
        public async Task <Unit> Handle(AssignParentToStudentCommand request, CancellationToken cancellationToken)
        {
            var studentParent = new StudentParent
            {
                StudentId = request.StudentId,
                ParentId  = request.ParentId
            };

            context.Add(studentParent);
            await context.SaveChangesAsync(cancellationToken);

            return(Unit.Value);
        }
示例#18
0
 public bool ParentsInsert(StudentParent entity)
 {
     try
     {
         StudentParentsTable = db.GetTable <StudentParent>();
         StudentParentsTable.InsertOnSubmit(entity);
         db.SubmitChanges();
         return(true);
     }
     catch
     {
         return(false);
     }
 }
示例#19
0
        // GET: StudentParents/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            StudentParent studentParent = db.StudentParent.Find(id);

            if (studentParent == null)
            {
                return(HttpNotFound());
            }
            return(View(studentParent));
        }
示例#20
0
        public bool ParentsDelete(int StudentParentsID)
        {
            try
            {
                StudentParentsTable = db.GetTable <StudentParent>();
                StudentParent model = StudentParentsTable.SingleOrDefault(x => x.StudentParentsID.Equals(StudentParentsID));

                db.SubmitChanges();
                return(true);
            }
            catch
            {
                return(false);
            }
        }
示例#21
0
        public async Task EditAsync(ParentModifyInputModel modifiedModel)
        {
            var parent = _parentsRepository.All().FirstOrDefault(p => p.Id == modifiedModel.Id);

            if (parent != null)
            {
                var studentIds = modifiedModel.Parent.StudentIds.Select(int.Parse).ToList();

                if (!studentIds.Any()) // Make sure parent has student children
                {
                    throw new ArgumentException($"Sorry, it's mandatory for a parent user to have at least 1 student");
                }

                if (HasDifferentStudentIds(parent, studentIds) && studentIds.Any())
                {
                    var students = _studentsRepository.All().Where(s => studentIds.Contains(s.Id));
                    // Remove all pairs that are no longer valid
                    foreach (var studentParent in parent.StudentParents.Where(sp => !studentIds.Contains(sp.StudentId)))
                    {
                        _studentParentsMappingRepository.Delete(studentParent);
                    }

                    foreach (var studentId in studentIds.Where(sid => !parent.StudentParents.Select(sp => sp.StudentId).Contains(sid)))
                    {
                        var student = _studentsRepository.All().FirstOrDefault(s => s.Id == studentId);
                        if (student != null)
                        {
                            var studentParentPair = new StudentParent
                            {
                                Student = student,
                                Parent  = parent
                            };

                            await _studentParentsMappingRepository.AddAsync(studentParentPair);
                        }
                    }

                    await _studentParentsMappingRepository.SaveChangesAsync();
                }

                parent.FirstName   = modifiedModel.Parent.FirstName;
                parent.LastName    = modifiedModel.Parent.LastName;
                parent.PhoneNumber = modifiedModel.Parent.PhoneNumber;

                _parentsRepository.Update(parent);
                await _parentsRepository.SaveChangesAsync();
            }
        }
        public void Remove(long id)
        {
            using (ApplicationContext context = new ApplicationContext()) {
                StudentParent studentParent = context.StudentParents
                                              .Where(x => x.Id == id)
                                              .FirstOrDefault();

                if (studentParent == null)
                {
                    throw new ObjectNotFoundException();
                }

                context.StudentParents.Remove(studentParent);
                context.SaveChanges();
            }
        }
示例#23
0
        // GET: StudentParents/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            StudentParent studentParent = db.StudentParent.Find(id);

            if (studentParent == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ParentID  = new SelectList(db.Parent, "ParentID", "Parent_FirstName", studentParent.ParentID);
            ViewBag.StudentID = new SelectList(db.Student, "StudentID", "LastName", studentParent.StudentID);
            return(View(studentParent));
        }
        public StudentParent CreateStudentParent(int studentId, int parentId)
        {
            StudentUser student = studentsService.Value.GetStudentById(studentId);

            ParentUser parent = parentsService.Value.GetParentById(parentId);

            StudentParent newStudentParent = new StudentParent()
            {
                Student = student,
                Parent  = parent
            };

            db.StudentParentsRepository.Insert(newStudentParent);
            db.Save();

            return(newStudentParent);
        }
        public async Task AddParents(EditParentsInputModel model)
        {
            var student = await this.db.Students.FirstOrDefaultAsync(x => x.Id == model.StudentId);

            var parentIds         = model.Parents.Where(x => x.Selected).Select(x => x.Id).ToArray();
            var parentsForStudent = this.db.Parents.Where(x => parentIds.Contains(x.Id)).ToArray();

            foreach (var parent in parentsForStudent)
            {
                var link = new StudentParent {
                    ParentId = parent.Id
                };
                student.Parents.Add(link);
            }

            await this.db.SaveChangesAsync();
        }
示例#26
0
        /// <summary>
        /// Add a student to the parent as a child
        /// </summary>
        /// <param name="parentId"></param>
        /// <param name="studentId"></param>
        /// <returns></returns>
        public ParentChildrenDto AddChild(int parentId, int studentId)
        {
            logger.Info("Make {@userId} parent of {@userId}", parentId, studentId);

            ParentUser parent = db.ParentsRepository.Get(p => p.Id == parentId).FirstOrDefault();

            if (parent == null)
            {
                return(null);
            }

            StudentUser student = db.StudentsRepository.Get(s => s.Id == studentId).FirstOrDefault();

            if (student == null)
            {
                return(null);
            }

            StudentParent sp = new StudentParent()
            {
                Student = student,
                Parent  = parent
            };

            db.StudentParentsRepository.Insert(sp);
            db.Save();

            // What even to return???

            return(new ParentChildrenDto()
            {
                Name = parent.FirstName + " " + parent.LastName,
                ParentId = parent.Id,
                Children = parent.StudentParents.Select(c => new StudentDto()
                {
                    FirstName = c.Student.FirstName,
                    LastName = c.Student.LastName,
                    ClassRoom = c.Student.ClassRoom.Name,
                    ClassRoomId = c.Student.ClassRoom.Id,
                    StudentId = c.Student.Id
                }).ToList()
            });
        }
示例#27
0
        private bool InsertTheParrentsChildren(List <Student> childList, int parentId)
        {
            bool success = true;

            try
            {
                foreach (Student child in childList)
                {
                    StudentParent studentParent = new StudentParent();
                    studentParent.Fkparentid  = parentId;
                    studentParent.Fkstudentid = child.Id;
                    DatabaseHandler.Instance.InsertIntoStudentParent(studentParent);
                }
            }
            catch (Exception)
            {
                success = false;
            }

            return(success);
        }
示例#28
0
        public bool AddParentToStudent(int studentId, int parentId)
        {
            try
            {
                var newRelationship = new StudentParent()
                {
                    StudentId = studentId,
                    ParentId = parentId,
                    CreateDatetime = DateTime.UtcNow,
                    CreateUser = "******"
                };
                _context.StudentParents.Add(newRelationship);
                _context.SaveChanges();
                return true;
            }
            catch (Exception e)
            {

                return false;
            }
        }
示例#29
0
        public async Task <T> CreateParentAsync <T>(ParentInputModel inputModel)
        {
            var studentIds = inputModel.StudentIds.Select(int.Parse);
            var students   = _studentsRepository.All().Where(s => studentIds.Contains(s.Id));

            if (students.Any())
            {
                var parent = new Parent
                {
                    FirstName   = inputModel.FirstName,
                    LastName    = inputModel.LastName,
                    PhoneNumber = inputModel.PhoneNumber,
                    UniqueId    = _idGeneratorService.GenerateParentId()
                };

                await _parentsRepository.AddAsync(parent);

                await _parentsRepository.SaveChangesAsync();

                foreach (var student in students)
                {
                    var studentParentPair = new StudentParent
                    {
                        Student = student,
                        Parent  = parent
                    };

                    await _studentParentsMappingRepository.AddAsync(studentParentPair);
                }

                await _studentParentsMappingRepository.SaveChangesAsync();

                BasePersonModel baseModel = _parentsRepository.All().FirstOrDefault(p => p.UniqueId == parent.UniqueId);

                return(AutoMapperConfig.MapperInstance.Map <T>(baseModel));
            }

            throw new ArgumentException($"Sorry, we couldn't any student with id in the following list:  [{string.Join(", ", studentIds)}]");
        }
示例#30
0
        public bool AddParentForStudent(int clientid, string name, string lastName1, string lastName2, DateTime birthday, char genre, string email, string phone, int studentId, string cedula)
        {
            try
            {
                var newParent = new Parent()
                {
                    ClientId         = clientid,
                    Name             = name,
                    LastName2        = lastName2,
                    LastName1        = lastName1,
                    Birthday         = birthday,
                    RegistrationDate = DateTime.UtcNow,
                    CreateDatetime   = DateTime.UtcNow,
                    CreateUser       = "******",
                    Address          = "some address that should not be here...",
                    Email            = email,
                    Phone            = phone,
                    CountryId        = cedula
                };
                _context.Parents.Add(newParent);
                _context.SaveChanges();

                var rel = new StudentParent()
                {
                    StudentId      = studentId,
                    ParentId       = newParent.Id,
                    CreateDatetime = DateTime.UtcNow,
                    CreateUser     = "******"
                };

                _context.StudentParents.Add(rel);
                _context.SaveChanges();
                return(true);
            }
            catch (Exception e)
            {
                return(false);
            }
        }