public async Task CreateAsync(string userId, string refreshToken, string remoteIpAddress, string userAgent, TimeSpan refreshTokenLifetime)
 {
     var id     = GenerateId(refreshToken);
     var entity = new RefreshTokenDetails
     {
         Id           = id,
         UserId       = userId,
         RefreshToken = refreshToken,
         DateCreated  = DateTime.UtcNow,
         IpAddress    = remoteIpAddress,
         UserAgent    = userAgent,
         DateExpires  = DateTime.UtcNow + refreshTokenLifetime
     };
     await RavenDatabaseProvider.CreateEntity(entity);
 }
Exemple #2
0
        public async Task <IActionResult> Bootstrap()
        {
            try
            {
                RavenDatabaseProvider.EnsureDatabaseExists("smartbudget", true);

                InputUserRegistrationDto dto = new InputUserRegistrationDto
                {
                    FirstName       = "Admin",
                    LastName        = "Developer",
                    Email           = "*****@*****.**",
                    Password        = "******",
                    ConfirmPassword = "******"
                };

                var userLoginId = LoginProvider.GenerateId(dto.Email);

                var user = new User
                {
                    FirstName   = dto.FirstName,
                    LastName    = dto.LastName,
                    Email       = dto.Email,
                    CreatedBy   = "System",
                    DateCreated = DateTime.UtcNow,
                    Type        = UserType.Admin
                };
                await RavenDatabaseProvider.CreateEntity(user);

                var loginDetails = new LoginDetails
                {
                    Id          = userLoginId,
                    UniqueId    = dto.Email,
                    UserId      = user.Id,
                    CreatedBy   = "System",
                    DateCreated = DateTime.UtcNow
                };
                LoginProvider.SetPassword(loginDetails, dto.Password);
                await RavenDatabaseProvider.CreateEntity(loginDetails);

                return(Ok("Setup configurado com sucesso!"));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Exemple #3
0
        public async Task <IActionResult> Register([FromBody] InputUserRegistrationDto dto)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }
                var userLoginId = LoginProvider.GenerateId(dto.Email);
                if (await RavenDatabaseProvider.IsEntityExists(userLoginId))
                {
                    return(BadRequest($"{nameof(dto.Email)} already exists."));
                }

                var user = new User
                {
                    FirstName   = dto.FirstName,
                    LastName    = dto.LastName,
                    Email       = dto.Email,
                    CreatedBy   = "System",
                    DateCreated = DateTime.UtcNow
                };
                await RavenDatabaseProvider.CreateEntity(user);

                var loginDetails = new LoginDetails
                {
                    Id          = userLoginId,
                    UniqueId    = dto.Email,
                    UserId      = user.Id,
                    CreatedBy   = "System",
                    DateCreated = DateTime.UtcNow
                };
                LoginProvider.SetPassword(loginDetails, dto.Password);
                await RavenDatabaseProvider.CreateEntity(loginDetails);

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }