<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Fernando Martini</title>
	<atom:link href="http://www.fernandomartini.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.fernandomartini.com/blog</link>
	<description>Developer</description>
	<lastBuildDate>Thu, 02 Feb 2012 16:29:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Como alterar (em tempo de execução) o App.config usando C#</title>
		<link>http://www.fernandomartini.com/blog/como-alterar-em-tempo-de-execucao-o-app-config-usando-c/</link>
		<comments>http://www.fernandomartini.com/blog/como-alterar-em-tempo-de-execucao-o-app-config-usando-c/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 16:29:53 +0000</pubDate>
		<dc:creator>fmartini</dc:creator>
				<category><![CDATA[Geral]]></category>

		<guid isPermaLink="false">http://www.fernandomartini.com/blog/?p=461</guid>
		<description><![CDATA[Você pode alterar o app.config durante a execução de uma aplicação (Windows) em C#. // Abre o arquivo App.Config do executavel System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); // Remove e em seguida Adiciona uma configuração . config.AppSettings.Settings.Remove("LastDateFeesChecked"); config.AppSettings.Settings.Add("LastDateFeesChecked", DateTime.Now.ToShortDateString()); // Salva a &#8230; <a href="http://www.fernandomartini.com/blog/como-alterar-em-tempo-de-execucao-o-app-config-usando-c/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Você pode alterar o app.config durante a execução de uma aplicação (Windows) em C#.</p>
<pre name="code" class="csharp">
// Abre o arquivo App.Config do executavel
System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
// Remove e em seguida Adiciona uma configuração .
config.AppSettings.Settings.Remove("LastDateFeesChecked");
config.AppSettings.Settings.Add("LastDateFeesChecked", DateTime.Now.ToShortDateString());
// Salva a nova configurações.
config.Save(ConfigurationSaveMode.Modified);
// Força o "reload" das novas configurações.
ConfigurationManager.RefreshSection("appSettings");
</pre>
<p>Obs: Lembre-se de adicionar a referencia (namespace) System.Configuration</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fernandomartini.com/blog/como-alterar-em-tempo-de-execucao-o-app-config-usando-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Função Left e Right no JavaScript</title>
		<link>http://www.fernandomartini.com/blog/funcao-left-e-right-no-javascript/</link>
		<comments>http://www.fernandomartini.com/blog/funcao-left-e-right-no-javascript/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 20:18:35 +0000</pubDate>
		<dc:creator>fmartini</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.fernandomartini.com/blog/?p=453</guid>
		<description><![CDATA[Uma função muito util utilizada em outras linguagens não esta presente no Javascript, para isso, abaixo um código que oferece as mesmas funções do Left e Right function Left(str, n){ if (n String(str).length) return str; else return String(str).substring(0,n); } function &#8230; <a href="http://www.fernandomartini.com/blog/funcao-left-e-right-no-javascript/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Uma função muito util utilizada em outras linguagens não esta presente no Javascript, para isso, abaixo um código que oferece as mesmas funções do Left e Right</p>
<pre name="code" class="js">
function Left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function Right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fernandomartini.com/blog/funcao-left-e-right-no-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sintaxe alternativa para funções JavaScript</title>
		<link>http://www.fernandomartini.com/blog/sintaxe-alternativa-para-funcoes-javascript/</link>
		<comments>http://www.fernandomartini.com/blog/sintaxe-alternativa-para-funcoes-javascript/#comments</comments>
		<pubDate>Sun, 22 Jan 2012 02:52:58 +0000</pubDate>
		<dc:creator>fmartini</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[sintaxe alternativa]]></category>
		<category><![CDATA[sintaxe de objeto literal]]></category>
		<category><![CDATA[sintaxe literal]]></category>

		<guid isPermaLink="false">http://www.fernandomartini.com/blog/?p=450</guid>
		<description><![CDATA[Em Javascript você pode usar a seguinte sintaxe para declarar funções independentes: function ExibirMensagem(Texto) { alert(texto); } A Linguagem JavaScript permite escrever isso na forma de uma atribuição de variável, se você preferir: var ExibirMensagem = function(Texto) { alert(Texto); } &#8230; <a href="http://www.fernandomartini.com/blog/sintaxe-alternativa-para-funcoes-javascript/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Em Javascript você pode usar a seguinte sintaxe para declarar funções independentes:</p>
<pre name="code" class="js">
function ExibirMensagem(Texto) {
alert(texto);
}
</pre>
<p>A Linguagem JavaScript permite escrever isso na forma de uma atribuição de variável, se você preferir:</p>
<pre name="code" class="js">
var ExibirMensagem = function(Texto) {
alert(Texto);
}
</pre>
<p>Conforme você pode esperar, há uma diferença muito sutil entre os efeitos desses dois estilos:<br />
<em>Uma função declarada como a primeira sintaxe pode ser usada por qualquer código no arquivo, mesmo que apareça antes da declaração da função. Uma função declarada como a última sintaxe só pode ser usada pelo código executando após a instrução de atribuição que declara a função. (Lembre-se: Se seu código for bem organizado, essa diferença não importa)</em></p>
<p>Você pode reduzir essa sequência inteira usando a sintaxe de objeto literal, conforme abaixo:</p>
<pre name="code" class="js">
var NomePrograma = {

variavelX: "Apenas uma variavel",
Mensagem: function(texto){
alert(text);
}

};
</pre>
<p>Em vez de criar primeiro um objeto vazio e depois preenchê-lo com propriedades e métodos, usando uma série de instruções de atribuição, a <strong>sintaxe de objeto literal</strong> permite criar o objeto e seu conteúdo com uma única instrução.</p>
<p>Na <em>sintaxe de objeto literal</em>, representamos um novo objeto com chaves; dentro dessas chaves, listamos as propriedades e os métodos do objeto, separados por vírgulas. Para cada propriedade e método, atribuímos um valor usando dois pontos, em vez do perador de atribuição.</p>
<p>A <em>sintaxe de objeto literal</em> pode ser difícil de ler quando você está usando a sintaxe de atribuição padrão há algum tempo, mas ela é ligeiramente mais sucinta.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fernandomartini.com/blog/sintaxe-alternativa-para-funcoes-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Substituindo caracter ou uma string em um texto via Javascript</title>
		<link>http://www.fernandomartini.com/blog/substituindo-caracter-ou-uma-string-em-um-texto-via-javascript/</link>
		<comments>http://www.fernandomartini.com/blog/substituindo-caracter-ou-uma-string-em-um-texto-via-javascript/#comments</comments>
		<pubDate>Sat, 14 Jan 2012 23:36:20 +0000</pubDate>
		<dc:creator>fmartini</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[replace]]></category>
		<category><![CDATA[str.replace]]></category>
		<category><![CDATA[string replace]]></category>

		<guid isPermaLink="false">http://www.fernandomartini.com/blog/?p=448</guid>
		<description><![CDATA[Tudo se resolveria se o replace() não substituisse apenas o primeiro registro encontrado. Para isso use a seguinte função: function replaceAll(string, token, newtoken) { while (string.indexOf(token) != -1) { string = string.replace(token, newtoken); } return string; } Veja um exemplo: &#8230; <a href="http://www.fernandomartini.com/blog/substituindo-caracter-ou-uma-string-em-um-texto-via-javascript/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Tudo se resolveria se o replace() não substituisse apenas o primeiro registro encontrado. Para isso use a seguinte função:</p>
<pre name="code" class="js">
function replaceAll(string, token, newtoken) {
	while (string.indexOf(token) != -1) {
 		string = string.replace(token, newtoken);
	}
	return string;
}
</pre>
<p>Veja um exemplo:</p>
<pre name="code" class="js">
str = "Isso é um teste, mas pensando em um teste podemos sempre usar o replaceAll";
alert(replaceAll(str,"teste","grande teste")
</pre>
<p>Boa Sorte..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fernandomartini.com/blog/substituindo-caracter-ou-uma-string-em-um-texto-via-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET MVC 3 &#8211; Fundamentos / Routing Incoming Requests</title>
		<link>http://www.fernandomartini.com/blog/asp-net-mvc-3-fundamentos-routing-incoming-requests/</link>
		<comments>http://www.fernandomartini.com/blog/asp-net-mvc-3-fundamentos-routing-incoming-requests/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 22:59:48 +0000</pubDate>
		<dc:creator>fmartini</dc:creator>
				<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Geral]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://www.fernandomartini.com/blog/?p=437</guid>
		<description><![CDATA[ASP.NET MVC Controles &#8211; Routing Incoming Requests Definição da sintaxe das URLs Em um mundo no qual URLs solicitado não necessariamente coincidem com os arquivos físicos no servidor web, o primeiro passo a tomar é de listagem que URLs sejam &#8230; <a href="http://www.fernandomartini.com/blog/asp-net-mvc-3-fundamentos-routing-incoming-requests/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>ASP.NET MVC Controles &#8211; Routing Incoming Requests</strong></p>
<p><strong>Definição da sintaxe das URLs</strong><br />
Em um mundo no qual URLs solicitado não necessariamente coincidem com os arquivos físicos no servidor web, o primeiro passo a tomar é de listagem que URLs sejam significativos para a aplicação. Para evitar ser específico demais, vamos supor que você suportar apenas algumas URLs fixas, cada mapeado para um componente manipulador de HTTP. O trecho de código a seguir mostra as mudanças necessárias a serem feitas ao padrão web.config</p>
<p><em><httpHandlers><br />
     <add verb="*" path="home/test/*" type="MvcEmule.Components.MvcEmuleHandler" /><br />
</httpHandlers><br />
</em></p>
<p><em>Sempre que o aplicativo recebe um pedido que corresponda ao URL especificado, ele irá passá-la para o manipulador especificado.</em></p>
<p><strong>Definir o comportamento do manipulador HTTP</strong></p>
<p>No ASP.NET, um manipulador de HTTP é um componente que implementa a interface IHttpHandler. A interface é simples e consiste de dois membros, como mostrado aqui:</p>
<pre name="code" class="csharp">
public class MvcEmuleHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
// Logic goes here
...
}
public Boolean IsReusable
{
get { return false; }
}
}
</pre>
<p>Na maioria das vezes, um manipulador de HTTP tem um comportamento codificado influenciado apenas por alguns dados de entrada passou a string de consulta. Nada nos impede, no entanto, de usar o manipulador como uma fábrica abstrata para adicionar mais um nível de indireção. O manipulador, de fato, pode utilizar as informações do pedido para determinar um componente externo para chamar de realmente servir o pedido. Desta forma, um manipulador HTTP pode servir uma variedade de pedidos e envio apenas a chamada entre alguns componentes mais especializados.</p>
<p>O manipulador HTTP pôde analisar o URL em tokens e usar essa informação para identificar a classe eo método para invocar. Aqui está um exemplo de como poderia funcionar:</p>
<pre name="code" class="csharp">
public void ProcessRequest(HttpContext context)
{
// Parse out the URL and extract controller, action, and parameter
var segments = context.Request.Url.Segments;
var controller = segments[1].TrimEnd('/');
var action = segments[2].TrimEnd('/');
var param1 = segments[3].TrimEnd('/');
// Complete controller class name with suffix and (default) namespace
var fullName = String.Format("{0}.{1}Controller",
this.GetType().Namespace, controller);
var controllerType = Type.GetType(fullName, true, true);
// Get an instance of the controller
var instance = Activator.CreateInstance(controllerType);
// Invoke the action method on the controller instance
var methodInfo = controllerType.GetMethod(action,
BindingFlags.Instance |
BindingFlags.IgnoreCase |
BindingFlags.Public);
var result = String.Empty;
if (methodInfo.GetParameters().Length == 0)
{
result = methodInfo.Invoke(instance, null) as String;
}
else
{
result = methodInfo.Invoke(instance, new Object[] { param1 }) as String;
}
// Write out results
context.Response.Write(result);
}
</pre>
<p>O código anterior só assume o primeiro token na URL após o nome do servidor contém as principais informações para identificar o componente especializado que irá servir o pedido. O segundo símbolo refere-se ao nome do método a ser chamado neste componente. Finalmente, o símbolo indica um terceiro parâmetro para passar.</p>
<p><strong>Chamando o manipulador HTTP</strong></p>
<p>Dada uma URL como <em>home/teste/*</em>, verifica-se que a casa identifica a classe, testar o método identifica, e qualquer que seja trilhas é o parâmetro. O nome da classe é ainda mais trabalhado e ampliado para incluir um namespace e um sufixo. De acordo com o exemplo, o nome da classe final é MvcEmule.Components.HomeController. Esta classe é esperado para estar disponível para a aplicação. A classe também é esperado para expor um método chamado de teste, como mostrado aqui:</p>
<pre name="code" class="csharp">
namespace MvcEmule.Components
{
public class HomeController
{
public String Test(Object param1)
{
var message = "<html>
<h1>Got it! You passed '{0}'</h1>

</html>";
return String.Format(message, param1);
}
}
}
</pre>
<p>Este exemplo simples demonstra a mecânica básica usada pelo ASP.NET MVC .. O componente especializado que atende a uma solicitação é o controlador. O controlador é uma classe com métodos e não apenas do Estado. Um único nível de sistema manipulador de HTTP cuida de despachar os pedidos de entrada para uma classe de controlador específico para que a instância da classe executa um método determinada ação e produz uma resposta.</p>
<p><strong>E sobre o esquema de URLs?</strong> Neste exemplo, basta usar uma URL codificada. No ASP.NET MVC, você tem uma sintaxe muito flexível você pode usar para expressar as URLs da aplicação reconhece. Além disso, um componente novo sistema nas intercepções em tempo de execução pedidos pipeline, processa a URL, e aciona o ASP.NET MVC manipulador HTTP. Este componente é o módulo de roteamento de URL HTTP.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fernandomartini.com/blog/asp-net-mvc-3-fundamentos-routing-incoming-requests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mover uma janela (form) sem Titlebar em C#</title>
		<link>http://www.fernandomartini.com/blog/mover-uma-janela-form-sem-titlebar-em-c/</link>
		<comments>http://www.fernandomartini.com/blog/mover-uma-janela-form-sem-titlebar-em-c/#comments</comments>
		<pubDate>Thu, 20 Oct 2011 22:08:09 +0000</pubDate>
		<dc:creator>fmartini</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.fernandomartini.com/blog/?p=410</guid>
		<description><![CDATA[Primeiro você tem que adicionar o seguinte código no cabeçalho do seu projeto. Isso é necessário para carregar a DLL necessária para nosso projeto. De acordo com MSDN ReleaseCapture: remove a captura do mouse do objeto no documento atual e &#8230; <a href="http://www.fernandomartini.com/blog/mover-uma-janela-form-sem-titlebar-em-c/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Primeiro você tem que adicionar o seguinte código no cabeçalho do seu projeto. Isso é necessário para carregar a DLL necessária para nosso projeto. De acordo com MSDN ReleaseCapture: re<strong>move</strong> a captura do mouse do objeto no documento atual e SendMessage: envia a mensagem especificada para uma janela.</p>
<pre name="code" class="csharp">using System.Runtime.InteropServices;</pre>
<p>adicione as seguintes const e as funções DLL:</p>
<pre name="code" class="csharp">
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;
DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd,  int Msg, int wParam, int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();
</pre>
<p>Em seguida, coloque o seguinte código no evento MouseDown:</p>
<pre name="code" class="csharp">
private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
ReleaseCapture();
SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
}
</pre>
<p>Caso o VS não adicionar automáticamente no arquivo .Designer.cs do seu Form, adicione a seguinte linha (no local marcado com // Form 1 //)</p>
<pre name="code" class="csharp">this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.Form1_MouseDown);</pre>
<p>Depois disso.. F5 e Boa Sorte.. !!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fernandomartini.com/blog/mover-uma-janela-form-sem-titlebar-em-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trabalhando com switch/case em C#</title>
		<link>http://www.fernandomartini.com/blog/trabalhando-com-switchcase-em-c/</link>
		<comments>http://www.fernandomartini.com/blog/trabalhando-com-switchcase-em-c/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 22:46:07 +0000</pubDate>
		<dc:creator>fmartini</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[case]]></category>
		<category><![CDATA[case C#]]></category>
		<category><![CDATA[select case]]></category>
		<category><![CDATA[select case C#]]></category>
		<category><![CDATA[switch]]></category>
		<category><![CDATA[switch case]]></category>
		<category><![CDATA[switch case c#]]></category>

		<guid isPermaLink="false">http://www.fernandomartini.com/blog/?p=432</guid>
		<description><![CDATA[Em vez de usarmos centemas de if podemos criar um único Switch, conforme o exemplo abaixo: string texto = "1"; // Definimos 1, mas aqui você pode colocar um request.form, etc..etc.. switch(text) { case "1": Page.Response.Write("Texto é 1"); // Escreve &#8230; <a href="http://www.fernandomartini.com/blog/trabalhando-com-switchcase-em-c/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Em vez de usarmos centemas de if podemos criar um único Switch, conforme o exemplo abaixo:</p>
<pre name="code" class="csharp">

string texto = "1";   //  Definimos 1, mas aqui você pode colocar um request.form, etc..etc..

switch(text) {

case "1":
     Page.Response.Write("Texto é 1"); // Escreve na Página 'Texto é 1'
     break; // O Comando 'break' vai parar o switch
case "2":
     Page.Response.Write("Texto é 2"); // Escreve na Página 'Texto é 2'
     break; // O Comando 'break' vai parar o switch

 default: // o 'default' é usado quando nenhum dos casos acimas for ativado
    Page.Response.Write("Não é 1 nem 2"); // Escreve na Página 'Não é 1 nem 2'
    break; // O Comando 'break' vai parar o switch
}
</pre>
<p>Fácil ? Boa Sorte</p>
]]></content:encoded>
			<wfw:commentRss>http://www.fernandomartini.com/blog/trabalhando-com-switchcase-em-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Converter milisegundos, segundos, minutos (C#)</title>
		<link>http://www.fernandomartini.com/blog/convertendo-tempo/</link>
		<comments>http://www.fernandomartini.com/blog/convertendo-tempo/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 19:33:06 +0000</pubDate>
		<dc:creator>fmartini</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.fernandomartini.com/blog/?p=386</guid>
		<description><![CDATA[Converter milisegundos, segundos, minutos em C#&#8230; de maneira fácil e rápida&#8230; using System; public static class TimeSpanUtil { #region To days public static double ConvertMillisecondsToDays(double milliseconds) { return TimeSpan.FromMilliseconds(milliseconds).TotalDays; } public static double ConvertSecondsToDays(double seconds) { return TimeSpan.FromSeconds(seconds).TotalDays; } public &#8230; <a href="http://www.fernandomartini.com/blog/convertendo-tempo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Converter milisegundos, segundos, minutos em C#&#8230; de maneira fácil e rápida&#8230;</p>
<pre name="code" class="csharp">
using System;

public static class TimeSpanUtil
{
#region To days
public static double ConvertMillisecondsToDays(double milliseconds)
{
return TimeSpan.FromMilliseconds(milliseconds).TotalDays;
}

public static double ConvertSecondsToDays(double seconds)
{
return TimeSpan.FromSeconds(seconds).TotalDays;
}

public static double ConvertMinutesToDays(double minutes)
{
return TimeSpan.FromMinutes(minutes).TotalDays;
}

public static double ConvertHoursToDays(double hours)
{
return TimeSpan.FromHours(hours).TotalDays;
}
#endregion

#region To hours
public static double ConvertMillisecondsToHours(double milliseconds)
{
return TimeSpan.FromMilliseconds(milliseconds).TotalHours;
}

public static double ConvertSecondsToHours(double seconds)
{
return TimeSpan.FromSeconds(seconds).TotalHours;
}

public static double ConvertMinutesToHours(double minutes)
{
return TimeSpan.FromMinutes(minutes).TotalHours;
}

public static double ConvertDaysToHours(double days)
{
return TimeSpan.FromHours(days).TotalHours;
}
#endregion

#region To minutes
public static double ConvertMillisecondsToMinutes(double milliseconds)
{
return TimeSpan.FromMilliseconds(milliseconds).TotalMinutes;
}

public static double ConvertSecondsToMinutes(double seconds)
{
return TimeSpan.FromSeconds(seconds).TotalMinutes;
}

public static double ConvertHoursToMinutes(double hours)
{
return TimeSpan.FromHours(hours).TotalMinutes;
}

public static double ConvertDaysToMinutes(double days)
{
return TimeSpan.FromDays(days).TotalMinutes;
}
#endregion

#region To seconds
public static double ConvertMillisecondsToSeconds(double milliseconds)
{
return TimeSpan.FromMilliseconds(milliseconds).TotalSeconds;
}

public static double ConvertMinutesToSeconds(double minutes)
{
return TimeSpan.FromMinutes(minutes).TotalSeconds;
}

public static double ConvertHoursToSeconds(double hours)
{
return TimeSpan.FromHours(hours).TotalSeconds;
}

public static double ConvertDaysToSeconds(double days)
{
return TimeSpan.FromDays(days).TotalSeconds;
}
#endregion

#region To milliseconds
public static double ConvertSecondsToMilliseconds(double seconds)
{
return TimeSpan.FromSeconds(seconds).TotalMilliseconds;
}

public static double ConvertMinutesToMilliseconds(double minutes)
{
return TimeSpan.FromMinutes(minutes).TotalMilliseconds;
}

public static double ConvertHoursToMilliseconds(double hours)
{
return TimeSpan.FromHours(hours).TotalMilliseconds;
}

public static double ConvertDaysToMilliseconds(double days)
{
return TimeSpan.FromDays(days).TotalMilliseconds;
}
#endregion
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.fernandomartini.com/blog/convertendo-tempo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trabalhando com Session e Request ( POST / GET ) no C#Working with Session and Request ( POST / GET ) in C#Lavorare con Session e Request (POST / GET) in C #Работа с Session и Request (POST / GET) в C #</title>
		<link>http://www.fernandomartini.com/blog/trabalhando-com-session-e-request-post-get-no-c/</link>
		<comments>http://www.fernandomartini.com/blog/trabalhando-com-session-e-request-post-get-no-c/#comments</comments>
		<pubDate>Wed, 04 May 2011 01:09:58 +0000</pubDate>
		<dc:creator>fmartini</dc:creator>
				<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Geral]]></category>
		<category><![CDATA[iis7]]></category>
		<category><![CDATA[asp.net C#]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[request]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[session c#]]></category>

		<guid isPermaLink="false">http://www.fernandomartini.com/blog/?p=372</guid>
		<description><![CDATA[Request Obtendo IP do Visitante/Usuário Request.UserHostAddress.ToString(); Obtendo o valor de um item enviado via GET Request.QueryString["ItemGET"]; Obtendo o valor de um item enviado via POST Request.Form["ItemPOST"]; Dica: Use .ToString(); no final do Request para poder usar o valor para uma &#8230; <a href="http://www.fernandomartini.com/blog/trabalhando-com-session-e-request-post-get-no-c/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><!--:pt--><strong>Request</strong></p>
<p><strong>Obtendo IP do Visitante/Usuário</strong></p>
<p>Request.UserHostAddress.ToString();</p>
<p><strong>Obtendo o valor de um item enviado via GET</strong></p>
<p><code><span style="color: #000000;">Request.QueryString</span><span style="color: #000000;">[</span><span style="color: #2a00ff;">"ItemGET"</span><span style="color: #000000;">]</span><span style="color: #000000;">;</span></code></p>
<p><strong>Obtendo o valor de um item enviado via POST</strong></p>
<p><code><span style="color: #000000;">Request.Form</span><span style="color: #000000;">[</span><span style="color: #2a00ff;">"ItemPOST"</span><span style="color: #000000;">]</span><span style="color: #000000;">;</span></code></p>
<p><span style="color: #000000;">Dica:</span></p>
<p><span style="color: #000000;">Use </span><code>.ToString(); no final do Request para poder usar o valor para uma String. Exemplo</code><code> String strValorPost = </code><code>Request.Form["ItemPOST"].ToString();</code></p>
<p>&#8211;</p>
<p><strong>Session</strong></p>
<p><strong>Criando uma Session:</strong></p>
<div>
<pre><code> Session[</code><code>"nomeSession"] = "valorSession"; </code></pre>
</div>
<p><strong>Lendo uma Session:</strong></p>
<div>
<pre><code> String strValorSession = Session["nomeSession"]; </code></pre>
</div>
<p><strong>Exibindo o Timeout da Session:</strong></p>
<div>
<pre><code> Response.Write(Session.Timeout.ToString()); </code></pre>
</div>
<p><strong>Definindo o Timeout:</strong></p>
<div>
<pre><code> Session.Timeout = 5; </code></pre>
</div>
<p><strong>Removendo:</strong></p>
<div>
<pre><code> Session.Remove("nomeSession");
</code></pre>
</div>
<p><!--:--><!--:en--><strong>Request</strong></p>
<p><strong>Getting IP of User</strong></p>
<p>Request.UserHostAddress.ToString();</p>
<p><strong>Getting the value of an item sent via GET</strong></p>
<p><code><span style="color: #000000;">Request.QueryString</span><span style="color: #000000;">[</span><span style="color: #2a00ff;">"ItemGET"</span><span style="color: #000000;">]</span><span style="color: #000000;">;</span></code></p>
<p><strong>Getting the value of an item sent via POST</strong></p>
<p><code><span style="color: #000000;">Request.Form</span><span style="color: #000000;">[</span><span style="color: #2a00ff;">"ItemPOST"</span><span style="color: #000000;">]</span><span style="color: #000000;">;</span></code></p>
<p><span style="color: #000000;">Tip:</span></p>
<p><span style="color: #000000;">Use </span><code>.ToString(); the end of the Request in order to use the value to a String. <strong>Sample</strong></code><em><code> String strValorPost = </code><code>Request.Form["ItemPOST"].ToString();</code></em></p>
<p>&#8211;</p>
<p><strong>Session</strong></p>
<p><strong>Creating a Session</strong></p>
<p><code> Session[</code><code>"nameSession"] = "amountSession"; </code></p>
<p><strong>Reading a Session</strong></p>
<div>
<pre><code> String strValorSession = Session["nameSession"]; </code></pre>
</div>
<p><strong>View Timeout of Session:</strong></p>
<div>
<pre><code> Response.Write(Session.Timeout.ToString()); </code></pre>
</div>
<p><strong>Setting the TimeOut:</strong></p>
<div>
<pre><code> Session.Timeout = 5; </code></pre>
</div>
<p><strong>Removing:</strong></p>
<div>
<pre><code> Session.Remove("nomeSession");
</code></pre>
</div>
<p><!--:--><!--:it--><strong>Request</strong></p>
<p><strong>Ottenere IP del visitatore</strong></p>
<p>Request.UserHostAddress.ToString();</p>
<p><strong>Ottenere il valore di un element inviato tramite GET</strong></p>
<p><code><span style="color: #000000;">Request.QueryString</span><span style="color: #000000;">[</span><span style="color: #2a00ff;">"ItemGET"</span><span style="color: #000000;">]</span><span style="color: #000000;">;</span></code></p>
<p><strong><strong>Ottenere il valore di un element inviato tramite</strong> POST</strong></p>
<p><code><span style="color: #000000;">Request.Form</span><span style="color: #000000;">[</span><span style="color: #2a00ff;">"ItemPOST"</span><span style="color: #000000;">]</span><span style="color: #000000;">;</span></code></p>
<p><span style="color: #000000;">Suggerimento:</span></p>
<p><span style="color: #000000;">Usa </span><code>.ToString(); il fine della richiesta al fine di utilizzare il valore in una stringa. Esempio</code><em><code> String strValorPost = </code><code>Request.Form["ItemPOST"].ToString();</code></em></p>
<p>&#8211;</p>
<p><strong>Session</strong></p>
<p><strong>Creazione di una Session:</strong></p>
<div>
<pre><code> Session[</code><code>"nomeSession"] = "valorSession"; </code></pre>
</div>
<p><strong>Lettura di una Session:</strong></p>
<div>
<pre><code> String strValorSession = Session["nomeSession"]; </code></pre>
</div>
<p><strong>Lettura di Timeout di Session:</strong></p>
<div>
<pre><code> Response.Write(Session.Timeout.ToString()); </code></pre>
</div>
<p><strong>Impostazione del Timeout:</strong></p>
<div>
<pre><code> Session.Timeout = 5; </code></pre>
</div>
<p><strong>Rimozione:</strong></p>
<div>
<pre><code> Session.Remove("nomeSession");
</code></pre>
</div>
<p><!--:--><!--:ru--><strong>Request</strong></p>
<p><strong>Получение IP посетителя</strong></p>
<p>Request.UserHostAddress.ToString();</p>
<p><strong>Получение значения пункта отправлено через GET</strong></p>
<p><code><span style="color: #000000;">Request.QueryString</span><span style="color: #000000;">[</span><span style="color: #2a00ff;">"ItemGET"</span><span style="color: #000000;">]</span><span style="color: #000000;">;</span></code></p>
<p><strong>Получение значения пункта отправлено по почте</strong></p>
<p><code><span style="color: #000000;">Request.Form</span><span style="color: #000000;">[</span><span style="color: #2a00ff;">"ItemPOST"</span><span style="color: #000000;">]</span><span style="color: #000000;">;</span></code></p>
<p><span style="color: #000000;">Совет:</span></p>
<p><code>Использование .ToString(); конце запроса, чтобы использовать значение в строку. Пример </code><code>String strValorPost = </code><code>Request.Form["ItemPOST"].ToString();</code></p>
<p>&#8211;</p>
<p><strong>Session</strong></p>
<p><strong>Создание сессии:</strong></p>
<div>
<pre><code> Session[</code><code>"nomeSession"] = "valorSession"; </code></pre>
</div>
<p><strong>Чтение сессии:</strong></p>
<div>
<pre><code> String strValorSession = Session["nomeSession"]; </code></pre>
</div>
<p><strong>Просмотр сессии вышло:</strong></p>
<div>
<pre><code> Response.Write(Session.Timeout.ToString()); </code></pre>
</div>
<p><strong>Настройка вышло:</strong></p>
<div>
<pre><code> Session.Timeout = 5; </code></pre>
</div>
<p><strong>Удаление:</strong></p>
<div>
<pre><code> Session.Remove("nomeSession");
</code></pre>
</div>
<p><!--:--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fernandomartini.com/blog/trabalhando-com-session-e-request-post-get-no-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trabalhando com Cookies no C#</title>
		<link>http://www.fernandomartini.com/blog/trabalhando-com-cookies-no-c/</link>
		<comments>http://www.fernandomartini.com/blog/trabalhando-com-cookies-no-c/#comments</comments>
		<pubDate>Tue, 03 May 2011 01:11:58 +0000</pubDate>
		<dc:creator>fmartini</dc:creator>
				<category><![CDATA[ASP.net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[iis7]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[cookie]]></category>

		<guid isPermaLink="false">http://www.fernandomartini.com/blog/?p=375</guid>
		<description><![CDATA[Metodo Fácil: Criando private void CriarCookie(string texto) { HttpCookie cookie = new HttpCookie(“SITE”); cookie.Values.Add(“IP”, this.Page.Request.UserHostAddress.ToString()); cookie.Values.Add(“USERNAME”, texto); cookie.Expires = DateTime.Now.AddDays(365); this.Page.Response.AppendCookie(cookie); } Lendo private HttpCookie ReadCookie() { try { return this.Page.Request.Cookies["SITE"]; } catch { return null; } } &#160; A &#8230; <a href="http://www.fernandomartini.com/blog/trabalhando-com-cookies-no-c/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Metodo Fácil:</p>
<p><strong>Criando</strong></p>
<blockquote><p>private void CriarCookie(string texto)<br />
{<br />
HttpCookie cookie = new HttpCookie(“SITE”);</p>
<p>cookie.Values.Add(“IP”, this.Page.Request.UserHostAddress.ToString());<br />
cookie.Values.Add(“USERNAME”, texto);</p>
<p>cookie.Expires = DateTime.Now.AddDays(365);<br />
this.Page.Response.AppendCookie(cookie);<br />
}</p></blockquote>
<p><strong> </strong><strong> </strong><strong> Lendo</strong></p>
<blockquote><p>private HttpCookie ReadCookie()<br />
{<br />
try<br />
{<br />
return this.Page.Request.Cookies["SITE"];<br />
}<br />
catch<br />
{<br />
return null;<br />
}<br />
}
</p></blockquote>
<p>&nbsp;</p>
<p><span style="font-family: Verdana; font-size: x-small;">A classe HttpCookie possui algumas propriedades avançadas:</span></p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="79" valign="top"><strong><span style="font-size: x-small;"><span style="font-family: Verdana;">Propriedade</span></span></strong></td>
<td width="573" valign="top"><strong><span style="font-size: x-small;"><span style="font-family: Verdana;">Descrição</span></span></strong></td>
</tr>
<tr>
<td width="79" valign="top"><span style="font-size: x-small;"><span style="font-family: Verdana;">Domain</span></span></td>
<td width="573" valign="top"><span style="font-family: Verdana; font-size: x-small;">Configura o  dominío ao qual pertence este cookie. Se utilizado, ele restringe o  acesso ao cookie a servidores do domínio espeficicado, como  mycompany.com.</span></td>
</tr>
<tr>
<td width="79" valign="top"><span style="font-size: x-small;"><span style="font-family: Verdana;">Path</span></span>&nbsp;</p>
<p><span style="font-family: Verdana; font-size: x-small;"> </span></td>
<td width="573" valign="top"><span style="font-family: Verdana; font-size: x-small;">Configura o  caminho ao qual o pertence este cookie. Se utilizado, restringe o acesso  ao cookie a páginas localizadas no caminho especificado. </span></td>
</tr>
<tr>
<td width="79" valign="top"><span style="font-size: x-small;"><span style="font-family: Verdana;">Secure</span></span>&nbsp;</p>
<p><span style="font-family: Verdana; font-size: x-small;"> </span></td>
<td width="573" valign="top"><span style="font-family: Verdana; font-size: x-small;">Configura a flag  que determina se o cookie deve ser transmitido de forma segura para o  browser do usuário, utilizando o protocolo HTTPS. Seu servidor web deve  ter HTTPS configurado para que esta opção funcione.</span></td>
</tr>
<tr>
<td width="79" valign="top"><span style="font-size: x-small;"><span style="font-family: Verdana;">HasKeys</span></span></td>
<td width="573" valign="top"><span style="font-family: Verdana; font-size: x-small;">Informe se o cookie é composto de uma coleção de strings</span></td>
</tr>
</tbody>
</table>
<p><span style="font-size: x-small;"><span style="font-family: Arial Narrow;"><strong> </strong>Advanced Properties of the HttpCookie Class</span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.fernandomartini.com/blog/trabalhando-com-cookies-no-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

