Exemple #1
0
        public async Task <string> CreateToken(Model.AppUser user)
        {
            var claims = new List <SecurityClaim.Claim>
            {
                new SecurityClaim.Claim(JwtRegisteredClaimNames.NameId, user.Id.ToString()),
                new SecurityClaim.Claim(JwtRegisteredClaimNames.UniqueName, user.UserName),
            };

            var roles = await _userManager.GetRolesAsync(user);

            claims.AddRange(roles.Select(role => new SecurityClaim.Claim(ClaimTypes.Role, role)));

            var creds = new SigningCredentials(_key, SecurityAlgorithms.HmacSha512Signature);

            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject            = new ClaimsIdentity(claims),
                Expires            = DateTime.Now.AddDays(7),
                SigningCredentials = creds
            };

            var tokenHandler = new JwtSecurityTokenHandler();

            var token = tokenHandler.CreateToken(tokenDescriptor);

            return(tokenHandler.WriteToken(token));
        }
        private async Task <int> AddCarAndUser(InputModel input)
        {
            // add user
            var appUser = new Model.AppUser()
            {
                FirstName   = input.Name,
                Patronimyc  = input.Patronimic,
                Password    = input.Password,
                PhoneNumber = input.PhoneNumber
            };

            _context.AppUsers.Add(appUser);
            _context.SaveChanges();


            // add car
            var car = new Model.Car()
            {
                ImageName = "",
                ImagePath = "",
                CarMark   = input.CarMark,
                Number    = input.CarNumber,
                UserId    = appUser.Id
            };

            _context.Cars.Add(car);
            _context.SaveChanges();

            await SaveFile(input.CarPhoto, car);

            return(appUser.Id);
        }
Exemple #3
0
        public async Task <IActionResult> CheckOrCreate([FromForm] string phone)
        {
            var user = _userContext.User.SingleOrDefault(u => u.phone == phone);

            if (user == null)
            {
                user = new Model.AppUser {
                    phone = phone
                };
                _userContext.User.Add(user);
                await _userContext.SaveChangesAsync();
            }
            return(Ok(user.Id));
        }
Exemple #4
0
 private void RaiseUserprofileChangedEvent(Model.AppUser user)
 {
     if (_userContext.Entry(user).Property(nameof(user.Name)).IsModified ||
         _userContext.Entry(user).Property(nameof(user.Avatar)).IsModified ||
         _userContext.Entry(user).Property(nameof(user.Company)).IsModified ||
         _userContext.Entry(user).Property(nameof(user.Title)).IsModified)
     {
         _publisher.Publish("finbook_userapi_userprofilechanged", new UserProfileChangedEvent {
             Name    = user.Name,
             Avatar  = user.Avatar,
             Company = user.Company,
             Title   = user.Title,
             UserId  = user.Id,
         });
     }
 }
Exemple #5
0
        public async Task <IActionResult> CheckOrCreate(string phone)
        {
            var user = await _userContext.Users.SingleOrDefaultAsync(u => u.Phone == phone);

            //if (!await _userContext.Users.AsNoTracking().Include(u => u.Properties).AnyAsync(u => u.Phone == phone))
            if (user == null)
            {
                user = new Model.AppUser()
                {
                    Phone = phone
                };
                _userContext.Users.Add(user);
                await _userContext.SaveChangesAsync();
            }
            return(Ok(user.Id));
        }
        public async Task <IActionResult> CheckOrCreate([FromForm] string phone)
        {
            var user = await _userContext.Users.SingleOrDefaultAsync(u => u.Phone == phone);

            //if (!await _userContext.Users.AsNoTracking().Include(u => u.Properties).AnyAsync(u => u.Phone == phone))
            if (user == null)
            {
                user = new Model.AppUser()
                {
                    Phone = phone
                };
                _userContext.Users.Add(user);
                await _userContext.SaveChangesAsync();
            }
            return(Ok(new
            {
                userID = user.Id,
                user.Name,
                user.Company,
                user.Title,
                user.Avatar
            }));
        }