sexta-feira, 24 de outubro de 2014

Como transformar o número do mês em string

Muito fácil!

var mes = CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(DateTime.Today.Month);

Pronto! Muito Obrigado e até o próximo POST!

sexta-feira, 19 de setembro de 2014

A página solicitada não pode ser acessada porque os dados de configuração relacionados à página são inválidos.

Erro HTTP 500.19 - Internal Server Error

A página solicitada não pode ser acessada porque os dados de configuração relacionados à página são inválidos.


Depois de passar dois dias pesquisando sobre o assunto cheguei a uma solução:

1 - Abra o IIS e verifique o pool de aplicativos que sua aplicação está apontando. 

2 - Depois na coluna Identidade verifique qual usuário está com permissão. Provavelmente você verá ApplicationPoolIdentity. 

3 - Clique do lado direito na opção "Configurações Avançadas".



4 - Procure por Identidade e troque para seu usuário de máquina:



5 - Em seguida verifique se a pasta onde o IIS aponta os arquivos está com autorização para o mesmo usuário.

Pronto! Muito Obrigado e até o próximo POST!

terça-feira, 2 de setembro de 2014

Como fazer para trabalhar com jQuery Templates

Como fazer para trabalhar com jQuery Templates

Vamos começar a trabalhar com jQuery Templates. Basicamente serve para disponibilizar e principalmente manipular os dados no browser.
Por exemplo, você pode  usar o jQuery Templates para formatar e exibir os dados vindo de uma chamada ajax.

jQuery Templates suporta um número poderoso de funcionalidades como templates tags, template composition, e wrapped templates. Eu vou me concentrar nas funcionalidades que eu penso ser mais usual.

O jQuery Templates plugin foi desenvolvido pelo time da Microsoft ASP.NET com colaboração do time jQuery - código aberto.

Vamos colocar a mão na massa:

Vamos começar com um exemplo simples de como usar jQuery Template. Nós vamos usar o plugin para listar os livros armazenado em um array. Segue o código:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Intro</title>
    <link href="0_Site.css" rel="stylesheet" type="text/css" />
</head>
<body>

    <div id="pageContent">

        <h1>ASP.NET Bookstore</h1>

        <div id="bookContainer"></div>

    </div>

    <script id="bookTemplate" type="text/x-jQuery-tmpl">
        <div>
            <img src="BookPictures/${picture}" alt="" />
            <h2>${title}</h2>
            price: ${formatPrice(price)}
        </div>
    </script>

    <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.4.js"></script>
    <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmpl.js"></script>

    <script type="text/javascript">
        // Create an array of books
        var books = [
            { title: "ASP.NET 4 Unleashed", price: 37.79, picture: "AspNet4Unleashed.jpg" },
            { title: "ASP.NET MVC Unleashed", price: 44.99, picture: "AspNetMvcUnleashed.jpg" },
            { title: "ASP.NET Kick Start", price: 4.00, picture: "AspNetKickStart.jpg" },
            { title: "ASP.NET MVC Unleashed iPhone", price: 44.99, picture: "AspNetMvcUnleashedIPhone.jpg" },
        ];

        // Render the books using the template
        $("#bookTemplate").tmpl(books).appendTo("#bookContainer");

        function formatPrice(price) {
            return "$" + price.toFixed(2);
        }

    </script>

</body>
</html>


Quando abrir a página do browser verá a seguinte página:



Primeira coisa a notar de diferente é o MIME type "text/x-jQuery-tmpl". Que foi atráves dele que fiquei sabendo que se tratava de um "jQuery Template". Segue:

<script id="bookTemplate" type="text/x-jQuery-tmpl">
    <div>
        <img src="BookPictures/${picture}" alt="" />
        <h2>${title}</h2>
        price: ${formatPrice(price)}
    </div>
</script>

Esse template exibe para cada livro renderizado pelo template. O template mostra a "picture", "title" e "price".

Note também que a tag SCRIPT está decorada com um MIME type "text/x-jQuery-tmpl". Porque?
Quando o browser encontra uma MIME type desconhecido ele ignora essa tag. Esse é o comportamentp que você busca com usao de um template. Você não quer que o browser interprete pois pode causar efeitos colaterais.

E também não podemos deixar de notar a expressão ${...} que é usado pra exibir o valor da expressão JavaScript dentro do template. Por exemplo, a expressão ${title} é usado para mostrar o valor do título do livro. Você pode usar qualquer função Java Script dentro da expressão ${...}. Por exemplo, no exemplo abaixo, o preço do livro é formatado com ajuda de uma função JavaScript formatPrice(), que é definida na parte inferior da página.

E por fim vamos atentar para o método tmpl().Que basicamente renderiza o array java script no "bookTemplate". Segue:
$("#bookTemplate").tmpl(books).appendTo("#bookContainer");

Dentro do Template podemos usars as seguintes Tags:

{{tmpl}} - Usado para template composition
{{wrap}} - Usado para wrapped templates
{{each}} - usado para interar uma coleção
{{if}} - usado para condicionar o sitens do template

Como fazer para remover/apagar itens do HTML via JQuery

Como fazer para remover/apagar itens do HTML via JQuery

-Código HTML

<div class="campos">
 <ol class="sortable ui-sortable">
  <li id="campo-1" class="area no-nest mjs-nestedSortable-branch mjs-nestedSortable-collapsed">
  </li>
  <li id="campo-2" class="area no-nest mjs-nestedSortable-branch mjs-nestedSortable-collapsed">
  </li>
 </ol>
</div>


-JQuery

$(".campos").remove(".sortable ui-sortable").remove();

Remove e apaga da div com classe "campos" todas os elementos com a classe "sortable ui-sortable"


$("ol").remove(".sortable ui-sortable").remove();

Remove e apaga todas as "ol" com classe "sortable ui-sortable"


$("li").remove("area no-nest mjs-nestedSortable-branch mjs-nestedSortable-collapsed").remove();
Remove e apaga todas as "li" com classe "area no-nest mjs-nestedSortable-branch mjs-nestedSortable-collapsed"

quarta-feira, 20 de agosto de 2014

Como fazer para saber se existe elemento repetido em um Array

//valida produtos repitidos
        var produtos_repetidos = false;
        var produtos = [];
       
        for (var i = 0; i < e.PaginaCandidatoVariacao.length; i++) {
            produtos.push(e.PaginaCandidatoVariacao[i].IdProduto);
        }

        var produtos_filtrados = produtos.filter(function (este, i) {
            return produtos.indexOf(este) == i;
        });
       
        produtos_repetidos = (produtos_filtrados.length == produtos.length);

        if (!produtos_repetidos) {
            strMensagemErro.push([Candidato.objetosHtml.txtBuscaVariacao.attr("id"), "Existem produtos repetidos."]);
        }
        //valida produtos repitidos

Como fazer um SELECT em um XML no SQL SERVER

Como fazer um SELECT em um XML no SQL SERVER


DECLARE @CodigoReferencia VARCHAR(50),
        @PrecoAnterior    DECIMAL(10,2),
        @PrecoVenda  DECIMAL(10,2),
        @PrecoCusto  DECIMAL(10,2),
        @IdSku  INTEGER,
        @skus AS XML

SET @skus = '<sku>
<CodigoReferencia>519871703</CodigoReferencia>
<PrecoAnterior>161.88</PrecoAnterior>
<PrecoVenda>171.88</PrecoVenda>
</sku>'

DECLARE cursor_xml_sku CURSOR FOR
SELECT
@skus.value('(/sku//CodigoReferencia/node())[1]', 'VARCHAR(50)') as CodigoReferencia,
@skus.value('(/sku//PrecoAnterior/node())[1]', 'DECIMAL(10,2)') as PrecoAnterior,
@skus.value('(/sku//PrecoVenda/node())[1]', 'DECIMAL(10,2)') as PrecoVenda
FROM @skus.nodes('/sku') as ParamValues(VALOR)
-- Abrindo Cursor para leitura - cursor_xml_sku
OPEN cursor_xml_sku

-- Lendo a próxima linha - cursor_xml_sku
FETCH NEXT FROM cursor_xml_sku INTO @CodigoReferencia, @PrecoAnterior, @PrecoVenda

-- Percorrendo linhas do cursor (enquanto houverem) - cursor_xml_sku
WHILE @@FETCH_STATUS = 0
BEGIN

DECLARE cursor_sku CURSOR FOR
    SELECT IdSKU,PrecoCusto FROM Sku WHERE CodigoReferencia = @CodigoReferencia

-- Abrindo Cursor para leitura - cursor_sku
OPEN cursor_sku

-- Lendo a próxima linha - cursor_sku
FETCH NEXT FROM cursor_sku INTO @IdSKU, @PrecoCusto

-- Percorrendo linhas do cursor (enquanto houverem) - cursor_sku
WHILE @@FETCH_STATUS = 0
BEGIN

-- Validações
IF (@PrecoCusto < @PrecoAnterior AND @PrecoCusto < @PrecoVenda)
BEGIN

SELECT @PrecoCusto, @PrecoAnterior, @PrecoVenda, @IdSKU

-- Atualizar Preço de Venda e Preço Anterior
UPDATE Sku
SET PrecoAnterior = @PrecoAnterior,
PrecoVenda = @PrecoVenda
WHERE IdSKU = @IdSku

END

-- Lendo a próxima linha - cursor_sku
FETCH NEXT FROM cursor_sku INTO @IdSKU, @PrecoCusto
END

-- Fechando Cursor para leitura - cursor_sku
CLOSE cursor_sku

-- Desalocando o cursor - cursor_sku
DEALLOCATE cursor_sku

    -- Lendo a próxima linha - cursor_xml_sku
    FETCH NEXT FROM cursor_xml_sku INTO @CodigoReferencia, @PrecoAnterior, @PrecoVenda
END

-- Fechando Cursor para leitura - cursor_xml_sku
CLOSE cursor_xml_sku

-- Desalocando o cursor - cursor_xml_sku
DEALLOCATE cursor_xml_sku

sexta-feira, 17 de janeiro de 2014

Como fazer um RESTORE no SQL SERVER 2008 usando sql command

Quando eu tentei fazer o restore usando o wizard do sql server eu recebi uma mensagem de erro.



Para resolver este problema eu abri uma New Query, mudei para o bando de dados diferente do que eu desejava fazer o restore e executei o seguinte comando:

RESTORE DATABASE MyDatabase FROM DISK='d:\arquivo.bak' with replace



Pronto! Banco restaurado! Muito Obrigado e até o próximo POST!