コード例 #1
0
        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));
        }
コード例 #2
0
ファイル: UserService.cs プロジェクト: Pajri/voting-be
        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;
            }
        }
コード例 #3
0
ファイル: ApiUserController.cs プロジェクト: Pajri/voting-be
        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));
        }
コード例 #4
0
ファイル: UserService.cs プロジェクト: muhammetgur/ToDoApp
        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);
        }