segunda-feira, 12 de dezembro de 2011

Manipulando arquivos e pastas do SharePoint 2010 com Visual Studio 2010



Neste post, mostrarei como realizar a manipulação de arquivos e pastas no SharePoint 2010 com o Visual Studio 2010, neste exemplo irei mostrar como realizar o check in e também o check out dos arquivos em uma determinada pasta programaticamente.

Para este exemplo vamos ao SharePoint e adicionar uma nova biblioteca de documentos.


Agora você poderá subir alguns documentos de exemplo para o nosso exemplo.

Com a biblioteca e documentos no SharePoint, agora vamos ao Visual Studio 2010.
Crie um novo projeto “Empty SharePoint Project”, selecione “Deploy as a farm solution”.

Clique com o botão direito no projeto, Add -> New Item.
Selecione “Web Part”, dê um nome à ela e então adicione ao projeto.

Vamos criar dois controles na web part:

- Label: Para exibir informações caso haja algum erro.
- Button: Para realizar a operação nos arquivos.

Primeiro declare os dois controles:

public Button button;
public Label lblAlert;


No método CreateChildControls adicione o seguinte código:

button = new Button();
button.ID = "btn1";
button.Text = "Executar";
button.Click += new EventHandler(button_Click);
Controls.Add(button);
Controls.Add(new LiteralControl("<br>"));

lblAlert = new Label();
lblAlert.ID = "lblAlert";
lblAlert.Text = "";
lblAlert.Visible = false;
Controls.Add(lblAlert);
Controls.Add(new LiteralControl("<br>"));


No código acima apenas criei e adicioneis os controles à web part. Também criei um EventHandler para o Click do botão, com isso você deve adicionar o código abaixo que implementará o Click do botão:


void button_Click(object sender, EventArgs e)
{
    try
    {
        SPWeb web = SPContext.Current.Web;

        SPSecurity.RunWithElevatedPrivileges(delegate
        {
            foreach (SPFolder folder in web.Folders)
            {

                if (folder.Name == "Documentos")
                {

                    foreach (SPFile file in folder.Files)
                    {
                        file.CheckOut();
                    }

                    break;
                }
            }
        });
    }
    catch (Exception ex)
    {
        lblAlert.Visible = true;
        lblAlert.Text = ex.Message;
    }

}


Bom, neste código criamos um SPWeb apontando para a web application onde está localizada a web part.
Utilizo também o método RunWithElevatedPrivilegies para evitar que ocorra algum tipo de erro quanto ao acesso as bibliotecas ou documentos.

Depois disso faço um foreach para ler as pastas, um novo foreach para ler os arquivos dentro desta pasta.

Quando encontrado um arquivo na pasta Documentos é realizado o seu checkout.
Agora basta você realizar o deploy da solução, adicionar sua web part em uma página e clicar no botão para executar a ação.



Nenhum comentário:

Postar um comentário