예제 #1
0
        public async Task <UserDTO> Register(NewUserDTO creatingUser)
        {
            var userSN = new NewUserSocialNetworkDTO()
            {
                UId              = creatingUser.UId,
                ProviderName     = creatingUser.ProviderName,
                SocialNetworkUrl = creatingUser.ProviderUrl,
            };

            var user = _mapper.Map <User>(creatingUser);

            user.CreatedAt = DateTime.Now;
            _context.Add(user);
            await _context.SaveChangesAsync();

            var userDto = _mapper.Map <UserDTO>(user);

            userSN.UserId = userDto.Id;
            var userSNEntity = _mapper.Map <UserSocialNetwork>(userSN);

            _context.Add(userSNEntity);
            await _context.SaveChangesAsync();

            var emailModel = _emailBuilder.GetSignUpLetter(creatingUser.Email, creatingUser.FirstName);
            await _emailService.SendEmailAsync(new List <string> {
                emailModel.Email
            }, emailModel.Subject, emailModel.Title, emailModel.Body);

            return(_mapper.Map <UserDTO>(user));
        }
예제 #2
0
        public async Task <UserDTO> LinkProvider(LinkProviderDTO userLink)
        {
            var isUserExist = await _context.Users.AnyAsync(u => u.Id == userLink.UserId);

            if (isUserExist)
            {
                var userSN = new NewUserSocialNetworkDTO()
                {
                    UId              = userLink.UId,
                    ProviderName     = userLink.ProviderName,
                    SocialNetworkUrl = userLink.ProviderUrl,
                };

                userSN.UserId = userLink.UserId;
                var userSNEntity = _mapper.Map <UserSocialNetwork>(userSN);
                _context.Add(userSNEntity);
                await _context.SaveChangesAsync();

                var updatedUser = await _context.Users.FirstOrDefaultAsync(u => u.Id == userLink.UserId);

                return(_mapper.Map <UserDTO>(updatedUser));
            }
            else
            {
                throw new NotFoundException("user", userLink.UserId);
            }
        }