Buscar Informações do AD para Web Parts, sem utilizar SSP
Como já perceberam eu ando bem afastado do blog, faz tempo que não o atualizo e compartilho mais de minhas experiências em projetos... desculpe-me mas estou realmente complicado de tempo e assuntos pessoais a tratar.
Pois bem, mas não esqueci de vocês não e por isso vou deixar aqui uma dica bem interessante sobre como trabalhar com Informações do AD sem utilizar o SSP.
O texto é do meu amigo Marcelo Leite e pode ser lido neste link: Buscar Informações do AD para Web Parts, sem utilizar SSP !!
Abraços!
Verificador de Dias Úteis
Mais um post rápido!! ;D
Aqui vai um método simples para estipular uma data de prazo desconsiderando os finais de semana.
Sei que é bem simples, mas fica a dica!
public DateTime DiasUteis(DateTime dataHoje, int qtdDias)
{
for (int i = 1; i <= qtdDias; i++)
{
dataHoje = dataHoje.AddDays(1);
if (dataHoje.DayOfWeek == DayOfWeek.Saturday)
dataHoje = dataHoje.AddDays(2);
}
MessageBox.Show(dataHoje.ToString());
}
Simples! Passa-se uma data e quantos dias deseja acrescentar à esse data. O que esse método faz é um contador de 1 até o número passado de parametro para acrescentar os dias e verifica se esse dia que adiciou é sábado.. se for sábado pula dois dias e continua adicionando.
![]()
Abraços
Biblioteca de WebParts – dotDEV
Depois de mais uns tempos conturbados eis-me aqui novamente atualizando o blog. E mais uma vez com notícias boas também.
Além de estar preparando um post sobre como usar LINQ para buscar e trabalhar as informações do SharePoint eu estou planejando também uma área onde armazenarei algumas WebParts que já tive situações em que tive que desenvolve-las e outras WP que surgiram na minha cabeça numa ou outra hora qualquer.
Só preciso organizá-las, gerar os pacotes de instalação para disponibiliza-las aqui no site. Ainda dando continuidade à idéia de difundir mais o SharePoint, principalmente detalhes técnicos, estas WebParts ficarão disponíveis para download.
De qualquer forma estou a disposição caso queiram se adiantar antes dessa seção nova. Basta entrar em contato comigo pelo email filipe.cavalcante@dotdev.com.br ou filipe.cavalcante@gmail.com!
Aguardem mais atualizações!
Cancelar Workflow via programação
No último projeto tivemos que dar a possibilidade para o usuário encerrar o andamento do fluxo manualmente. Para isso um método foi criado:
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(siteID))
{
using (SPWeb web = new SPWeb(relativeWeb))
{
SPWorkflowManager manager = site.WorkflowManager;
SPListItem item = web.Lists[listname].GetItemByID(itemID);
foreach(SPWorkflow workflow in manager.GetItemActiveWorkflows(item))
{
SPWorkflowManager.CancelWorkflow(workflow);
}
}
}
});
Detalhe para o "SPSecurity.RunWithElevatedPrivileges()" que faz com que o código possa ser executado por qualquer usuário que esteja logado.
O código que está no nosso projeto não é exatamente este, não coloquei algumas ações específicas do nosso projeto, mas basicamente para encerrar o fluxo, que é o tema deste post é esse!
Até a próxima!
Referencia: http://pointstoshare.spaces.live.com/Blog/cns!AEC42F315B4528B0!3045.entry?sa=648616426
Estamos de volta… e com novidades.
Olá pessoal,
Faz um bom tempo que não mexia no meu blog. Eu havia migrado para este novo servidor, mas depois por um vacilo meu acabei apagando-o involuntariamente e depois fiquei com preguiça de reconfigurar, restaurar tudo de novo...
Mas enfim... o importante é que agora estamos de volta e com novidades.
Todos ja sabem que o Sharepoint 2010 está chegando né? Pois bem, algumas das pessoas que trabalham comigo foram na conferência em Las Vegas sobre o Sharepoint 2010 e em breve pretendo fazer alguns comentários sobre as novidades da nova versão.
Mas enquanto isso, vou deixar aqui um exemplo de código simples para fazer upload de documento para uma biblioteca de documentos do sharepoint com metadados
public static bool UploadDocumento(SPWeb web, string docLib, Documento documento, ParametrosList parametros, bool overwrite)
{
try
{
Hashtable docProperties = new Hashtable();
// Metadados
foreach (Parametros var in parametros)
{
docProperties[var.Parametro] = var.Valor;
}
SPFolder folder = web.Folders[docLib];
SPFile file = folder.Files.Add(documento.Nome, documento.FileBytes, docProperties ,overwrite);
return true;
}
catch
{ return false; }
}
Bem simples.
Nesse método existem dois objetos que eu criei na mão para auxiliar na passagem dos parametros para este método. O objeto 'Documento" basicamente carrega as informações vindas do componente FileUpload, e o objeto "ParametroList" é uma lista de parametros genérico que utilizo para o sistema todo, e conterão as informações dos metadados e seus respectivos valores.
Nesse exemplo não fiz tratamento de erro, simplesmente e retorna um BOOLEANO indicando se foi feito o upload corretamente na biblioteca de documento ou não.
Abraços
Padronização de código C#
Para quem estiver começando a desenvolver, aprendendo ou querendo aprimorar sua forma de desenvolver segue alguns textos e documentos sobre padronização de código com ótimas dicas e explicações da linguagem C#!!!!
http://blogs.msdn.com/brada/articles/361363.aspx
http://www.codeproject.com/KB/cs/c__coding_standards.aspx
http://weblogs.asp.net/lhunt/attachment/591275.ashx
Abraços
[]s
Usando SPAlert
Mais um post com dica de Sharepoint. Esses dias precisei usar a função "Alert me" em umas listas mas precisei implementar via código. A função é muito simples e usei o próprio SPAlert nativo do Sharepoint (Microsoft.Sharepoint.dll).
Para isso, eu criei um método que retorna um valor booleano quando criar ou não (por algum motivo) o alerta.
public bool AlertME(string urlSITE, string TituloAlerta, SPListItem itemAlerta)
{
try
{
using (SPSite site = new SPSite(urlSITE))
{
SPWeb web = site.OpenWeb();
SPUser userLogged = web.SiteUsers.GetByID(SPContext.Current.Web.CurrentUser.ID);
SPAlert _alert = userLogged.Alerts.Add();
_alert.AlertType = SPAlertType.Item;
_alert.AlertFrequency = SPAlertFrequency.Immediate;
_alert.EventType = SPEventType.All;
_alert.AlwaysNotify = true;
_alert.Title = TituloAlerta;
_alert.Item = itemAlerta;
_alert.Update(true);
return true;
}
}
catch
{
return false;
}
}
A função é simples. Quando clicar em um botão que eu criei, esse método será acionado tendo como parametro uma string com o endereço do site onde o alerta será criado, uma string com o título do alerta e um SPListItem que é o item que será "alertado".
O que eu defini para meu alerta:
SPAlertType.Item = significa que o alerta está associado à um item;
SPAlertFrequency.Immediate = significa que o alerta será enviado imediatamente assim que o item da lista for alterado e salvo;
SPEventType.All = o alerta será enviado para qualquer ação que seja feita no item da lista;
Aguardem mais dicas!
EDIT: Segue link de referência Microsoft.Sharepoint.SPAlert Class