Exemplo n.º 1
0
        public override int Insert(Usuario entity)
        {
            StringBuilder query = new StringBuilder();

            query.AppendLine($@"INSERT INTO {TableName} 
                                    (Login
                                   , Senha
                                   , IdPerfil
                                   , Nome
                                   , Email
                                   , Telefone
                                   , AvatarUrl
                                   , IdUsuarioCadastro
                                   , DataCadastro
                                   , Ativo
                                   , IdUsuarioAtualizacao
                                   , DataAtualizacao) 
                        VALUES(@Login
                             , @Senha
                             , @IdPerfil
                             , @Nome
                             , @Email
                             , @Telefone
                             , @AvatarUrl
                             , @IdUsuarioCadastro
                             , @DataCadastro
                             , @Ativo
                             , @IdUsuarioAtualizacao
                             , @DataAtualizacao)");

            if (_dbProvider.ProviderName().Equals("SqlServer"))
            {
                query.Append("SELECT SCOPE_IDENTITY()");
            }
            else if (_dbProvider.ProviderName().Equals("MySQL"))
            {
                query.Append("; SELECT LAST_INSERT_ID();");
            }

            var parameters = new List <IDataParameter>
            {
                _dbProvider.CriarParametro("@Login", SqlDbType.VarChar, entity.Login),
                _dbProvider.CriarParametro("@Senha", SqlDbType.VarChar, entity.Senha),
                _dbProvider.CriarParametro("@IdPerfil", SqlDbType.Int, entity.IdPerfil),
                _dbProvider.CriarParametro("@Nome", SqlDbType.VarChar, entity.Nome),
                _dbProvider.CriarParametro("@Email", SqlDbType.VarChar, entity.Email),
                _dbProvider.CriarParametro("@Telefone", SqlDbType.VarChar, entity.Telefone),
                _dbProvider.CriarParametro("@AvatarUrl", SqlDbType.VarChar, entity.AvatarUrl),
                _dbProvider.CriarParametro("@IdUsuarioCadastro", SqlDbType.Int, entity.IdUsuarioCadastro),
                _dbProvider.CriarParametro("@DataCadastro", SqlDbType.DateTime, DateTime.Now),
                _dbProvider.CriarParametro("@Ativo", SqlDbType.TinyInt, entity.Ativo),
                _dbProvider.CriarParametro("@IdUsuarioAtualizacao", SqlDbType.Int, Convert.DBNull),
                _dbProvider.CriarParametro("@DataAtualizacao", SqlDbType.DateTime, Convert.DBNull)
            };

            var result = _dbProvider.Cadastrar(_context.CreateCommand(), query.ToString(), CommandType.Text, parameters.ToArray());

            return(Convert.ToInt32(result));
        }