Example #1
0
        /// <summary>
        /// Update parent
        /// </summary>
        /// <param name="parentUpdate"></param>
        /// <returns></returns>
        public async Task <ParentDto> UpdateParent(ParentUpdateDto parentUpdate)
        {
            ParentUser user = db.ParentsRepository.Get(a => a.Id == parentUpdate.Id).FirstOrDefault();

            if (user == null)
            {
                // 404, Not found.
                // No reason for an exception I think
                return(null);
            }

            ParentsConverter.UpdateParentsPersonalData(user, parentUpdate);

            var result = await db.AuthRepository.UpdateUser(user);

            if (!result.Succeeded)
            {
                var ex = new UserUpdateException(result.Errors.ToArray());
                ex.Data.Add("IdentityResultErrors", result.Errors.ToArray());
                throw ex;
            }

            var updatedUser = db.ParentsRepository.Get(a => a.Id == parentUpdate.Id).FirstOrDefault();

            return(ParentsConverter.ParentToParentDto(updatedUser));
        }
Example #2
0
 /// <summary>
 /// Update full entity from dto before sending to the storage
 /// </summary>
 /// <param name="user"></param>
 /// <param name="dto"></param>
 public static void UpdateParentsPersonalData(ParentUser user, ParentUpdateDto dto)
 {
     user.UserName    = dto.UserName;
     user.FirstName   = dto.FirstName;
     user.LastName    = dto.LastName;
     user.Gender      = dto.Gender;
     user.Email       = dto.Email;
     user.PhoneNumber = dto.PhoneNumber;
 }
Example #3
0
        public ParentUser GetParentById(int parentId)
        {
            ParentUser parent = db.ParentsRepository.Get(p => p.Id == parentId).FirstOrDefault();

            if (parent == null)
            {
                // Not exception but return NotFound from controller.
                return(null);
            }

            return(parent);
        }
Example #4
0
 /// <summary>
 /// Convert a parent model to parent dto
 /// </summary>
 /// <param name="parent">A parent (full) model</param>
 /// <returns>Parent Dto object, ready for Json serialization</returns>
 public static ParentDto ParentToParentDto(ParentUser parent)
 {
     return(new ParentDto()
     {
         ParentId = parent.Id,
         UserName = parent.UserName,
         FirstName = parent.FirstName,
         LastName = parent.LastName,
         Gender = parent.Gender,
         Email = parent.Email,
         PhoneNumber = parent.PhoneNumber
     });
 }
Example #5
0
        public static ParentReportDto ParentToParentReportDto(ParentUser parent)
        {
            var report = new ParentReportDto()
            {
                ParentId  = parent.Id,
                FirstName = parent.FirstName,
                LastName  = parent.LastName,
                Email     = parent.Email,
                Gender    = parent.Gender,
                Students  = parent.StudentParents.Select(sp => Converters.StudentsConverter.StudentToStudentReportDto(sp.Student))
            };

            return(report);
        }
Example #6
0
        /// <summary>
        /// Register a parent user (used from the accounts controller)
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        public async Task <IdentityResult> RegisterParentUser(ParentUser parent, string password)
        {
            logger.Trace("Register Parent {@userName}", parent.UserName);

            var result = await _userManager.CreateAsync(parent, password);

            if (!result.Succeeded)
            {
                return(result);
            }

            _userManager.AddToRole(parent.Id, "parents");
            return(result);
        }
        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);
        }
Example #8
0
 public static GradeNotificationDto GradeToGradeNotificationDto(Grade grade, ParentUser parent)
 {
     return(new GradeNotificationDto()
     {
         ParentFirstName = parent.FirstName,
         ParentLastName = parent.LastName,
         ParentEmail = parent.Email,
         StudentFirstName = grade.Taking.Student.FirstName,
         StudentLastName = grade.Taking.Student.LastName,
         TeacherFirstName = grade.Taking.Program.Teaching.Teacher.FirstName,
         TeacherLastName = grade.Taking.Program.Teaching.Teacher.LastName,
         Course = grade.Taking.Program.Teaching.Course.Name,
         ClassRoom = grade.Taking.Program.ClassRoom.Name,
         GradePoint = grade.GradePoint.ToString(),
         Assigned = grade.Assigned.ToShortDateString()
     });
 }
Example #9
0
        /// <summary>
        /// Register a parent
        /// </summary>
        /// <param name="userModel"></param>
        /// <returns></returns>
        public async Task <ParentDto> RegisterParent(ParentRegistrationDto userModel)
        {
            ParentUser user = ParentsConverter.ParentRegistrationDtoToParent(userModel);

            var result = await db.AuthRepository.RegisterParentUser(user, userModel.Password);

            if (!result.Succeeded)
            {
                var ex = new UserRegistrationException(result.Errors.ToArray());
                ex.Data.Add("IdentityResultErrors", result.Errors.ToArray());
                throw ex;
            }

            user = await db.AuthRepository.FindUserByUserName(userModel.UserName) as ParentUser;

            return(ParentsConverter.ParentToParentDto(user));
        }
Example #10
0
        public IEnumerable <StudentDto> GetAllChildren(int parentId)
        {
            ParentUser parent = db.ParentsRepository.Get(p => p.Id == parentId).FirstOrDefault();

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

            return(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
            }));
        }
        public StudentParent GetStudentParent(int studentId, int parentId)
        {
            StudentUser student = studentsService.Value.GetStudentById(studentId);

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

            var studentParent = db.StudentParentsRepository.Get(sp => sp.StudentId == studentId && sp.ParentId == parentId).FirstOrDefault();

            if (studentParent == null)
            {
                logger.Info("Student {@studentId} is not related to Parent {@parentId}", studentId, parentId);
                var ex = new StudentParentNotFoundException(string.Format("Student {0} is not related to Parent {1}", studentId, parentId));
                ex.Data.Add("studentId", studentId);
                ex.Data.Add("parentId", parentId);
                throw ex;
            }

            return(studentParent);
        }
Example #12
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()
            });
        }
Example #13
0
        public ParentReportDto GetParentReport(int parentId)
        {
            ParentUser parent = GetParentById(parentId);

            return(Converters.ParentsConverter.ParentToParentReportDto(parent));
        }