Bruno Velaz| SharePoint.CRM.EPM

Tecnologia interligando pessoas.

:: CODE :: Como deletar uma View usando OM

Pessoal, gostaria de colocar este código para vocês.

CENÁRIO:

Quando precisar deletar uma VIEW específica, segue um código completo, para facilitar seu dia.

Onde, você informa o ID da view e deleta ela. Veja a imagem.

image

Note que tem duas views que criei: (Teste1 e Teste2 Bruno).

Onde irei deletar a Teste 2 Bruno.

image

Resulstado…

image

CÓDIGO:

sing System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;

namespace prViewsBaca
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //informando qual site vai pesquisar as views
            this.txtNome.Text = "http://" + System.Environment.MachineName;           
        }

        private void Verificar_Click(object sender, EventArgs e)
        {
            this.Preenche(false);
        }

        public void Preenche(bool delview)
        {
            //uma validação simples se foi informado ou não a view
            if (this.txtNome.Text.ToString().Trim() == string.Empty)
            {
                MessageBox.Show("Não foi informado o site para geração do dccumento.");
                return;
            }

            //pegando SPSite para pegar a Listas dentro delas
            using (SPSite oSiteCollection = new SPSite(this.txtNome.Text))
            {
                //veriricando o Sitecollection
                SPWebCollection collWebsites = oSiteCollection.AllWebs;
                //Site especifico – root
                //lista que voce quer ver

                SPList list = collWebsites[0].Lists["Paginas"];

                //deleta a view agora?
                if (delview)
                {
                    //cria o guid em relação ao guid string que vc informou no text
                    Guid ogui = new Guid(this.txtIdView.Text);
                    //aciona a deleção de forma explicita
                    collWebsites[0].Lists["Paginas"].AllowDeletion = true;
                    //deletar a view                   
                    collWebsites[0].Lists["Paginas"].Views.Delete(ogui);
                    MessageBox.Show("View deletada!");                   
                }

                //busca tudo
                SPViewCollection objviewitems = list.Views;
                Views.tdDataVewDataTable xsdTipado = new Views.tdDataVewDataTable();
                foreach (SPView viewitem in objviewitems)
                {
                    xsdTipado.AddtdDataVewRow(viewitem.ID.ToString(), viewitem.Title);
                }
                //cololca os dados aqui no gridview
                this.dataGridView1.DataSource = xsdTipado;
                this.dataGridView1.Show();

                MessageBox.Show("Dados Preenchidos!");
            }
        }

        private void DeletarView_Click(object sender, EventArgs e)
        {
            this.Preenche(true);
       }
    }
}

Link para download do código:

View_Bruno_Velaz

Bruno Velaz

Junho 4, 2009 Publicado por brunovelaz | Desenvolvimento de SharePoint, SharePoint, Visual Studio, WSS Desenvovimento | | Sem comentários ainda

WSS ou MOSS? Object Model , pegando o usuário Atual!! Context User

 

Tirando uma dúvida simples que muita gente tem.

 

CENÁRIO:

Eu uso WSS e quero pegar informações do Usuário, para desenvolover alguma WebPart.

SOLUÇÃO:

Use o Object Model do WSS para resolver isto! Importante, usar do WSS e não do MOSS ok?

NA PRÁTICA:

Basta usar este código

SPContext.Current.Web.CurrentUser // Pega o Usuario Corrente do Site logado, do site.

Como pegar os Grupos que o usuário pertence?

// Pega o Usuario Corrente e todos os seus grupos no qual ele pertence, do site.

foreach(SPGroup group in SPContext.Current.Web.CurrentUser.Groups)

{

    string NomeDoGrupo= group.Name;  // Exemplo, pegando o nome do grupo

}

DÚVIDA – “Bruno então posso usar este código no WSS? Para pegar as informações do meu usuário?”

 

ServerContext context = ServerContext.GetContext(site); //Este código funciona 
UserProfileManager profileManager = new UserProfileManager(context); //Este código não, somente no MOSS

Resposta: No WSS não, mas no MOSS sim. Pois esta Classe UserProfileManager pertence ao conjunto de NamesPace do Microsoft.Office.Server, ou seja, somente na versão MOSS 2007 ok? Veja a definição abaixo.

Namespace: Microsoft.Office.Server.UserProfiles
Assembly: Microsoft.Office.Server (in microsoft.office.server.dll)

Veja a referência para ficar mais claro:

http://msdn.microsoft.com/en-us/library/microsoft.office.server.userprofiles.userprofilemanager.aspx

Espero ter ficado claro.

T++++++++++++++++++++

Bruno Velaz

Outubro 7, 2008 Publicado por brunovelaz | WSS Desenvovimento | , , | Sem comentários ainda