Sharepoint.Dev() Just another SharePoint weblog

2May/100

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

21Mar/100

Usando LINQ

Olá todos,

Um pequeno post sobre sobre como usar o LINQ para retornar os dados do Sharepoint.

A forma mais comum seria retornar um SPListItemCollection (SPList["lista"].Items) ou utilizando SPQuery para fazer os filtros necessários.

Eu particularmente não gosto muito de utilizar SPQuery pois precisamos criar uma  "grande" string. E ainda fica pouco dinamico a montagem desse filtro. Confesso que já cheguei a criar um método que cria dinamicamente esta query utilizando AND, OR e CONTAINS e ORDENAÇÃO mas deu trabalho pra montar a lógica visando utilizar mais de um parametro. E ainda acabei deixando de usar depois que aprendi o básico de LINQ.

O exemplo abaixo é um começo para se trabalhar como LINQ retornando um List<> (Generic.List) de SPListItems

public List ObterItens(SPList lista)
{
   List itens = (from SPListItem i in lista.Items
                              where i["Coluna"].ToString() == "texto para comparação"
                               orderby i.Created descending
                               select i).ToList();

   return itens;
}

Basicamente este código acima faz um filtro de uma determinada coluna (i["Coluna"]) e ordena pela data de criação dos itens.

Ainda estou na minha fase de estudos explorando todos as possibilidades do uso do LINQ.
Espero que possa auxiliar mais alguém.

Em breve posto meus novos testes e estudos.
Abraços a todos.

9Feb/100

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!

18Nov/090

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

20Jun/090

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