public async Task <IActionResult> Register([FromBody] RegisterRequestDto request) { string?userId = null; string?userToken = null; if (request.CreateUser) { userId = Guid.NewGuid().ToString(); var update = request.ToUpdate(); var user = await userStore.UpsertAsync(App.Id, userId, update, HttpContext.RequestAborted); if (request.Topics?.Any() == true) { var subscription = new SubscriptionUpdate(); subscription.TopicSettings[Providers.WebPush] = new NotificationSetting { Send = true }; if (!string.IsNullOrEmpty(request.EmailAddress)) { subscription.TopicSettings[Providers.Email] = new NotificationSetting { Send = true }; } foreach (var topic in request.Topics) { subscription.TopicPrefix = topic; await subscriptionStore.SubscribeWhenNotFoundAsync(App.Id, subscription, HttpContext.RequestAborted); } } userToken = user.ApiKey; } var response = new RegisterResponseDto { PublicKey = webPushService.PublicKey, UserId = userId, UserToken = userToken }; return(Ok(response)); }
public async Task <RegisterResponseDto> RegisterUser(RegisterRequestDto user) { try { //check if user already exists var regUser = await _repository.GetUserByEmail(user.Email); if (regUser != null) { throw new UserAlreadyRegisteredException(); } User newUser = new User() { ID = new Guid(), Age = user.Age, Email = user.Email, FirstName = user.FirstName, LastName = user.LastName, Gender = user.Gender, Password = _authHelper.HashPassword(user.Password), Role = user.Role }; var registeredUser = await _repository.AddAsync(newUser); RegisterResponseDto userResponseDto = new RegisterResponseDto { FirstName = registeredUser.FirstName, LastName = registeredUser.LastName, Age = registeredUser.Age, Email = registeredUser.Email, Gender = registeredUser.Gender }; return(userResponseDto); } catch (Exception ex) { //TODO handle error throw ex; } }
public async Task <ActionResult <RegisterResponseDto> > RegisterUser(RegisterRequestDto user) { RegisterResponseDto createdUser = new RegisterResponseDto(); try { createdUser = await _service.RegisterUser(user); } catch (Exception ex) { if (ex is UserAlreadyRegisteredException) { return(Conflict(ex)); } return(StatusCode((int)HttpStatusCode.InternalServerError)); } return(CreatedAtAction(nameof(GetUserById), createdUser)); }
public RegisterResponseDto Register(UserDto userDto) { if (ToDoUnitOfWork.UserRepository.Where(x => x.Email == userDto.Email && x.Status == (int)Status.Active).ToList().Any()) { return new RegisterResponseDto { HasError = true, Message = "Mail adresi ile kayıtlı kullanıcı bulunmaktadır!" } } ; var sessionToken = Guid.NewGuid().ToString(); var user = Mapper.Map <User>(userDto); user.Status = (int)Status.Active; ToDoUnitOfWork.UserRepository.Insert(user); ToDoUnitOfWork.Save(); ToDoUnitOfWork.UserTokenRepository.Insert(new UserToken { Token = sessionToken, UserId = user.Id, ExpireDate = DateTime.Now, Status = (int)Status.Active }); ToDoUnitOfWork.Save(); var result = new RegisterResponseDto { User = Mapper.Map <UserDto>(user), SessionToken = sessionToken, HasError = false }; return(result); }