public int Salvar()
        {
            var ret = 0;

            var model = RecuperarPeloId(this.Id);

            using (var db = new ContextoBD())
            {
                if (model == null)
                {
                    db.Cidades.Add(this);
                }
                else
                {
                    db.Cidades.Attach(this);
                    db.Entry(this).State = EntityState.Modified;
                }
                db.SaveChanges();
                ret = this.Id;
            }
            return(ret);
            //using (var conexao = new SqlConnection())
            //{
            //    conexao.ConnectionString = ConfigurationManager.ConnectionStrings["principal"].ConnectionString;
            //    conexao.Open();
            //    if (model == null)
            //    {
            //        var sql = "INSERT INTO cidade (nome, ativo, id_estado) VALUES (@nome, @ativo, @id_estado); SELECT CONVERT(INT, SCOPE_IDENTITY())";
            //        var parametros = new { nome = this.Nome, ativo = (this.Ativo ? 1 : 0), id_estado = this.IdEstado };
            //        ret = conexao.ExecuteScalar<int>(sql, parametros);
            //    }
            //    else
            //    {
            //        var sql = "UPDATE cidade SET nome = @nome, ativo=@ativo, id_estado=@id_estado WHERE id = @id";
            //        var parametros = new { nome = this.Nome, ativo = (this.Ativo ? 1 : 0), id_estado = this.IdEstado, id = this.Id };
            //        if (conexao.Execute(sql, parametros) > 0)
            //        {
            //            ret = this.Id;
            //        }
            //    }
            //using (var comando = new SqlCommand())
            //{
            //    comando.Connection = conexao;

            //    if (model == null)
            //    {
            //        comando.CommandText = "INSERT INTO cidade (nome, ativo, id_estado) VALUES (@nome, @ativo, @id_estado); SELECT CONVERT(INT, SCOPE_IDENTITY())";
            //        comando.Parameters.Add("@nome", SqlDbType.VarChar).Value = this.Nome;
            //        comando.Parameters.Add("@ativo", SqlDbType.VarChar).Value = (this.Ativo ? 1 : 0);
            //        comando.Parameters.Add("@id_estado", SqlDbType.Int).Value = this.IdEstado;
            //        ret = (int)comando.ExecuteScalar();
            //    }
            //    else
            //    {
            //        comando.CommandText = "UPDATE cidade SET nome = @nome, ativo=@ativo, id_estado=@id_estado WHERE id = @id";

            //        comando.Parameters.Add("@nome", SqlDbType.VarChar).Value = this.Nome;
            //        comando.Parameters.Add("@ativo", SqlDbType.VarChar).Value = (this.Ativo ? 1 : 0);
            //        comando.Parameters.Add("@id_estado", SqlDbType.Int).Value = this.IdEstado;
            //        comando.Parameters.Add("@id", SqlDbType.Int).Value = this.Id;

            //        if (comando.ExecuteNonQuery() > 0)
            //        {
            //            ret = this.Id;
            //        }
            //    }
            //}
        }
示例#2
0
        public int Salvar()
        {
            var ret = 0;

            var model = RecuperarPeloId(this.Id);

            using (var db = new ContextoBD())
            {
                if (model == null)
                {
                    if (!string.IsNullOrEmpty(this.Senha))
                    {
                        this.Senha = CriptoHelper.HashMD5(this.Senha);
                    }
                    db.Usuarios.Add(this);
                    //var sql = "INSERT INTO Usuario (nome, login, senha, email) VALUES (@nome, @login, @senha, @email); SELECT CONVERT(INT, SCOPE_IDENTITY())";
                    //var parametros = new
                    //{
                    //    nome = this.Nome,
                    //    login = this.Login,
                    //    senha = CriptoHelper.HashMD5(this.Senha),
                    //    email = this.Email
                    //};
                    //ret = db.Database.Connection.ExecuteScalar<int>(sql, parametros);
                }
                else
                {
                    db.Usuarios.Attach(this);
                    db.Entry(this).State = EntityState.Modified;

                    if (string.IsNullOrEmpty(this.Senha))
                    {
                        db.Entry(this).Property(x => x.Senha).IsModified = false;
                    }
                    else
                    {
                        this.Senha = CriptoHelper.HashMD5(this.Senha);
                    }
                    //if (!string.IsNullOrEmpty(this.Senha))
                    //{
                    //    var sql =
                    //    "UPDATE Usuario SET nome = @nome, login = @login, email = @email" +
                    //    ", senha = @senha" +
                    //    " WHERE id = @id";

                    //    var parametros = new
                    //    {
                    //        nome = this.Nome,
                    //        login = this.Login,
                    //        senha = CriptoHelper.HashMD5(this.Senha),
                    //        email = this.Email
                    //    };
                    //    if (db.Database.Connection.Execute(sql, parametros) > 0)
                    //    {
                    //        ret = this.Id;
                    //    }
                    //}
                    //else
                    //{
                    //    var sql =
                    //    "UPDATE Usuario SET nome = @nome, login = @login, email = @email" +
                    //    " WHERE id = @id";

                    //    var parametros = new
                    //    {
                    //        nome = this.Nome,
                    //        login = this.Login,
                    //        senha = CriptoHelper.HashMD5(this.Senha),
                    //        email = this.Email
                    //    };
                    //    if (db.Database.Connection.Execute(sql, parametros) > 0)
                    //    {
                    //        ret = this.Id;
                    //    }
                    //}
                }
                db.SaveChanges();
                ret = this.Id;
                //using (var comando = new SqlCommand())
                //{
                //    comando.Connection = conexao;

                //    if (model == null)
                //    {
                //        comando.CommandText = "INSERT INTO Usuario (nome, login, senha, email) VALUES (@nome, @login, @senha, @email); SELECT CONVERT(INT, SCOPE_IDENTITY())";

                //        comando.Parameters.Add("@nome", SqlDbType.VarChar).Value = this.Nome;
                //        comando.Parameters.Add("@login", SqlDbType.VarChar).Value = this.Login;
                //        comando.Parameters.Add("@senha", SqlDbType.VarChar).Value = CriptoHelper.HashMD5(this.Senha);
                //        comando.Parameters.Add("@email", SqlDbType.VarChar).Value = this.Email;
                //        ret = (int)comando.ExecuteScalar();
                //    }
                //    else
                //    {
                //        comando.CommandText =
                //            "UPDATE Usuario SET nome = @nome, login = @login, email=@email" +
                //            (!string.IsNullOrEmpty(this.Senha) ? ", senha = @senha" : "") +
                //            " WHERE id = @id";

                //        comando.Parameters.Add("@nome", SqlDbType.VarChar).Value = this.Nome;
                //        comando.Parameters.Add("@login", SqlDbType.VarChar).Value = this.Login;
                //        comando.Parameters.Add("@email", SqlDbType.VarChar).Value = this.Email;

                //        if (!string.IsNullOrEmpty(this.Senha))
                //        {
                //            comando.Parameters.Add("@senha", SqlDbType.VarChar).Value = CriptoHelper.HashMD5(this.Senha);
                //        }

                //        comando.Parameters.Add("@id", SqlDbType.Int).Value = this.Id;

                //        if (comando.ExecuteNonQuery() > 0)
                //        {
                //            ret = this.Id;
                //        }
                //    }
                //}
            }
            return(ret);
        }
示例#3
0
        public int Salvar()
        {
            // Criar variável de retorno
            var ret = 0;

            // Criar variável para armazena o método RecuperarPeloId()
            //var model = RecuperarPeloId(this.Id);

            // Instânciar objeto para conexão com o banco de dados
            using (var db = new ContextoBD())
            {
                var model = db.Perfis
                            .Include(x => x.Usuarios)
                            .Where(x => x.Id == this.Id)
                            .SingleOrDefault();

                /* Se o model for nulo, ou seja, não retornou nada do método
                 * RecuperarPeloId(), insere registro
                 */
                if (model == null)
                {
                    if (this.Usuarios != null && this.Usuarios.Count > 0)
                    {
                        foreach (var usuario in this.Usuarios)
                        {
                            db.Usuarios.Attach(usuario);
                            db.Entry(usuario).State = EntityState.Unchanged;
                        }
                    }
                    db.Perfis.Add(this);
                }
                // Senão, altera o registro
                else
                {
                    model.Nome  = this.Nome;
                    model.Ativo = this.Ativo;

                    foreach (var usuario in model.Usuarios.FindAll(x => !this.Usuarios.Exists(u => u.Id == x.Id)))
                    {
                        model.Usuarios.Remove(usuario);
                    }
                    foreach (var usuario in this.Usuarios.FindAll(x => x.Id > 0 && !model.Usuarios.Exists(u => u.Id == x.Id)))
                    {
                        db.Usuarios.Attach(usuario);
                        db.Entry(usuario).State = EntityState.Unchanged;
                        model.Usuarios.Add(usuario);
                    }
                    //db.Perfis.Attach(this);
                    //db.Entry(this).State = EntityState.Modified;
                }
                // Salva as alterações feitas
                db.SaveChanges();
                ret = this.Id;

                // Se a lista de usuários não forem nulas e a contagem maior que 0 (zero)
                //if (this.Usuarios != null && this.Usuarios.Count > 0)
                //{
                //    // Passar a instrução SQL
                //    var sql = "delete from perfil_usuario where (id_perfil = @id_perfil)";

                //    // Passar o parâmetro
                //    var parametros = new { id_perfil = this.Id };

                //    // Executa a query
                //    db.Database.Connection.Execute(sql, parametros, transacao);

                //    // Se o primeiro usuário que vier na lista não tiver o ID igual a -1
                //    if (this.Usuarios[0].Id != -1)
                //    {
                //        /* Laço de repetição foreach
                //         * Criar variável para armazenar o que vier na lista de usuários
                //         */
                //        foreach (var usuario in this.Usuarios)
                //        {
                //            // Passar a instrução SQL
                //            sql = "insert into perfil_usuario (id_perfil, id_usuario) values (@id_perfil, @id_usuario)";

                //            // Passar os parâmetros
                //            var parametrosUsuarios = new { id_perfil = this.Id, id_usuario = usuario.Id };

                //            // Executa a query
                //            db.Database.Connection.Execute(sql, parametrosUsuarios, transacao);
                //        }
                //    }
                //}
            }
            // Retorna o que vier na variável de retorno
            return(ret);

            //if (model == null)
            //{
            //    // Passar a instrução SQL
            //    comando.CommandText = "insert into perfil (nome, ativo) values (@nome, @ativo); select convert(int, scope_identity())";

            //    // Passar os parâmetros
            //    comando.Parameters.Add("@nome", SqlDbType.VarChar).Value = this.Nome;
            //    comando.Parameters.Add("@ativo", SqlDbType.VarChar).Value = (this.Ativo ? 1 : 0);

            //    // Passar para a variável de retorno um valor escalar
            //    ret = (int)comando.ExecuteScalar();

            //    // Popula o ID com esse valor
            //    this.Id = ret;
            //}
            //// Senão, altera o registro
            //else
            //{
            //    // Passar a instrução SQL
            //    comando.CommandText = "update perfil set nome=@nome, ativo=@ativo where id = @id";

            //    // Passar os parâmetros
            //    comando.Parameters.Add("@nome", SqlDbType.VarChar).Value = this.Nome;
            //    comando.Parameters.Add("@ativo", SqlDbType.VarChar).Value = (this.Ativo ? 1 : 0);
            //    comando.Parameters.Add("@id", SqlDbType.Int).Value = this.Id;

            //    // Se o número de linha retornada é maior que 0 (zero)
            //    if (comando.ExecuteNonQuery() > 0)
            //    {
            //        // Popula a variável de retorno com o ID
            //        ret = this.Id;
            //    }
            //}

            //         Se a lista de usuários não forem nulas e a contagem maior que 0 (zero)
            //            if (this.Usuarios != null && this.Usuarios.Count > 0)
            //            {
            //    Instânciar objeto de comando para exclusão do perfil de usuário
            //    using (var comandoExclusaoPerfilUsuario = new SqlCommand())
            //    {
            //        Pasar a conexão
            //        comandoExclusaoPerfilUsuario.Connection = conexao;

            //        Passar a transação
            //        comandoExclusaoPerfilUsuario.Transaction = transacao;

            //        Passar a instrução SQL
            //        comandoExclusaoPerfilUsuario.CommandText = "delete from perfil_usuario where (id_perfil = @id_perfil)";

            //        Passar o parâmetro
            //        comandoExclusaoPerfilUsuario.Parameters.Add("@id_perfil", SqlDbType.Int).Value = this.Id;

            //        Executa a query retornando valor escalar
            //        comandoExclusaoPerfilUsuario.ExecuteScalar();
            //    }

            //    Se o primeiro usuário que vier na lista não tiver o ID igual a -1
            //    if (this.Usuarios[0].Id != -1)
            //    {
            //        /* Laço de repetição foreach
            //         * Criar variável para armazenar o que vier na lista de usuários
            //         */
            //        foreach (var usuario in this.Usuarios)
            //        {
            //            Instânciar objeto de comando para inclusão de perfil de usuário
            //            using (var usuarioInclusaoPerfilUsuario = new SqlCommand())
            //            {
            //                Passar a conexão
            //                usuarioInclusaoPerfilUsuario.Connection = conexao;

            //                Passar a transação
            //                usuarioInclusaoPerfilUsuario.Transaction = transacao;

            //                Passar a instrução SQL
            //                usuarioInclusaoPerfilUsuario.CommandText = "insert into perfil_usuario (id_perfil, id_usuario) values (@id_perfil, @id_usuario)";

            //                Passar os parâmetros
            //                usuarioInclusaoPerfilUsuario.Parameters.Add("@id_perfil", SqlDbType.Int).Value = this.Id;
            //                usuarioInclusaoPerfilUsuario.Parameters.Add("@id_usuario", SqlDbType.Int).Value = usuario.Id;

            //                Executa a query retornando valor escalar
            //                usuarioInclusaoPerfilUsuario.ExecuteScalar();
            //            }
            //        }
            //    }
            //}

            //Salva as alterações feitas
            //transacao.Commit();
            //}
            //}

            //             Retorna o que vier na variável de retorno
            //            return ret;
            //        }
            //}
            //}
        }