internal async Task <ApplicationUser> FindByIdAsync(int userId)
        {
            using (var connection = _databaseConnectionFactory.GetConnection())
            {
                const string query = @"
                    SELECT [Id]
                          ,[UserName]
                          ,[NormalizedUserName]
                          ,[Email]
                          ,[NormalizedEmail]
                          ,[EmailConfirmed]
                          ,[PhoneNumber]
                          ,[PhoneNumberConfirmed]
                          ,[PasswordHash]
                          ,[SecurityStamp]
                          ,[ConcurrencyStamp]
                          ,[AccessFailedCount]
                          ,[LockoutEnabled]
                          ,[LockoutEnd]
                          ,[TwoFactorEnabled]
                          ,[Guid]
                    FROM [Users]
                    WHERE [Id] = @UserId
                ";

                var applicationUser = await connection.QuerySingleOrDefaultAsync <ApplicationUser>(query, new { @UserId = userId });

                return(applicationUser);
            }
        }
        public async Task <PagedResults <Tenant> > Get(Pagination pagination = null)
        {
            var dynamicParameters = new DynamicParameters();

            AddPagination(pagination, dynamicParameters);

            var query = $@"
                SELECT *
                FROM [Tenants]
                {Sql.OrderWithPossiblePagination(pagination, "[Name]")}
                
                SELECT COUNT([Id])
                FROM [Tenants]
            ";

            using (var connection = _databaseConnectionFactory.GetConnection())
            {
                using (var multipleQuery = await connection.QueryMultipleAsync(query, dynamicParameters))
                {
                    var tenants = await multipleQuery.ReadAsync <Tenant>();

                    var totalCount = multipleQuery.ReadFirst <int>();

                    var result = new PagedResults <Tenant>
                    {
                        Items      = tenants,
                        TotalCount = totalCount
                    };

                    return(result);
                }
            }
        }
Example #3
0
        internal async Task <IdentityResult> CreateAsync(ApplicationRole role)
        {
            using (var connection = _databaseConnectionFactory.GetConnection())
            {
                const string query = @"
                    INSERT INTO [Roles] (
                        [Name]
                        ,[NormalizedName]
                        ,[ConcurrencyStamp]
                        ,[Guid])
                    VALUES (
                        @Name
                        ,@NormalizedName
                        ,@ConcurrencyStamp
                        ,@Guid
                    );

                    SELECT SCOPE_IDENTITY();
                ";

                var result = await connection.QuerySingleOrDefaultAsync <int>(query,
                                                                              new
                {
                    @Name             = role.Name,
                    @NormalizedName   = role.NormalizedName,
                    @ConcurrencyStamp = role.ConcurrencyStamp,
                    @Guid             = role.Guid
                });

                if (result == 0)
                {
                    return(IdentityResult.Failed());
                }

                role.Id = result;
                return(IdentityResult.Success);
            }
        }