예제 #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));
        }
예제 #2
0
        /// <summary>
        /// Get a parent by Id
        /// </summary>
        /// <param name="parentId"></param>
        /// <returns></returns>
        public ParentDto GetParentByIdDto(int parentId)
        {
            var parent = GetParentById(parentId);

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

            return(ParentsConverter.ParentToParentDto(parent));
        }
예제 #3
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));
        }