/// <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)); }
/// <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)); }
/// <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)); }