Mostrarei neste post como manipular alguns eventos do SharePoint 2010 utilizando os Event Receivers. Em nosso exemplo, mostrarei a manipulação dos eventos de adição e remoção de itens de uma lista customizada no SharePoint.
Primeiro devemos criar nossa lista customizada que será
usada para exemplificação.
Criei uma lista com o nome de “Funcionarios”.
Agora vamos criar outras colunas em nossa lista customizada.
A estrutura de campos da lista ficou como a imagem abaixo:
Troquei o nome da coluna “Title” que é criada
automaticamente pelo SharePoint por “Nome”, que irá armazenar o nome do
funcionário.
Também criei mais duas colunas, “Salario” do tipo número e
“Data Fim do Contrato” do tipo data, ambas existem para que possamos criar uma
regra para o cadastro de funcionários e também para remoção.
Bom, agora com o Visual Studio 2010 crie um projeto “Empty
SharePoint Project”.
Com o projeto criado clique com o botão direito no projeto
Add-> New Item. Na janela que aparecerá selecione “Event Receiver”, informe
um nome para ele e adicione ao projeto.
Agora selecione as opções como na imagem abaixo:
-List Item Events:
Com este item informamos que queremos manipular eventos de itens de lista.
-Custom List:
Utilizamos este item pois a lista que utilizaremos não é uma lista nativa do
site do SharePoint.
-An item is being
added: Evento disparado ao iniciar o procedimento de adicionar um novo item,
o procedimento ainda não foi concluído.
-An item is being
deleted: Evento disparado ao iniciar o procedimento de remover um item, o
procedimento ainda não foi concluído.
Agora insira o código abaixo nos métodos adicionados:
public
override void
ItemAdding(SPItemEventProperties properties)
{
double
Salario;
if
(properties.ListTitle == "Funcionarios")
{
if
(properties.AfterProperties["Salario"]
!= null)
{
Salario = Convert.ToDouble(properties.AfterProperties["Salario"].ToString());
if
(Salario < 300)
properties.Cancel = true;
}
}
}
/// <summary>
/// An item is being deleted.
/// </summary>
public
override void
ItemDeleting(SPItemEventProperties
properties)
{
DateTime DataFimContrato;
if (properties.ListTitle == "Funcionarios")
{
if (properties.ListItem["Data
Fim do Contrato"] != null)
{
DataFimContrato = Convert.ToDateTime(properties.ListItem["Data Fim do Contrato"].ToString());
if (DateTime.Now >
DataFimContrato)
properties.Cancel = true;
}
}
}
O código é simples, a única diferença é quanto ao
properties.Cancel onde definimos o cancelamento do
procedimento.
A regra utilizada é simples: Para inserir um novo
funcionário na lista, o salário deve ser maior que 300, caso contrário ele não
será inserido.
Quanto à exclusão, somente poderá ser excluído o funcionário
da lista caso a data atual seja maior que a data do fim do contrato, se a data
do fim do contrato for maior que a data atual, o funcionário não será excluído
da lista.
Agora basta realizar o deploy da solução e verificar a
regra.
Nenhum comentário:
Postar um comentário