Executar no diretório raiz:
for /f "delims=" %%d in ('dir /s /b /ad ^| sort /r') do rd "%%d"
sexta-feira, 19 de novembro de 2010
quinta-feira, 18 de novembro de 2010
OpenXML
Tenho o seguinte XML no campo xmlFuncionalidades:
codigo0
grupo0 | subgrupo0
nome0
url0
codigo1
grupo0 | subgrupo1
nome1
url1
Utilizando OpenXML, foi possivel ler o XML e fazer um SELECT direto no SQL:
DECLARE @idoc int
DECLARE @doc varchar(8000)
SELECT @doc=xmlFuncionalidades FROM UserSettings WHERE usersettingsid=191
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
SELECT *
FROM OPENXML (@idoc, 'ArrayOfFuncionalidade/Funcionalidade',2)
WITH (grupo VARCHAR(1000),codigo VARCHAR(1000),nomeExibicao VARCHAR(1000),url VARCHAR(1000))
EXEC sp_xml_removedocument @idoc
Utilizando OpenXML, foi possivel ler o XML e fazer um SELECT direto no SQL:
DECLARE @idoc int
DECLARE @doc varchar(8000)
SELECT @doc=xmlFuncionalidades FROM UserSettings WHERE usersettingsid=191
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
SELECT *
FROM OPENXML (@idoc, 'ArrayOfFuncionalidade/Funcionalidade',2)
WITH (grupo VARCHAR(1000),codigo VARCHAR(1000),nomeExibicao VARCHAR(1000),url VARCHAR(1000))
EXEC sp_xml_removedocument @idoc
quinta-feira, 11 de novembro de 2010
Usando HttpWebRequest, lidando com Autenticações (NTLM e Forms) e Cookies
Num determinado projeto precisei fazer requisições diretamente via código, e me deparei com alguns problemas: Autenticações (NTLM e Forms) e Cookies.
Consegui resolver a autenticação NTLM forçando o tipo de Credential, e em autenticação Forms, fiz um post com os dados de login. Além, fiz a manipulação do cookie para não ter que fazer a autenticação toda hora. Segue pedaço do código:
85 private HttpWebResponse WebRequestHandler(string url)
86 {
87 HttpWebRequest objRequest = (HttpWebRequest)WebRequest.Create(url);
88
89 if (ADAuthentication)
90 {
91 CredentialCache cc = new CredentialCache();
92 cc.Add(new Uri(url), "NTLM", CredentialCache.DefaultNetworkCredentials);
93 objRequest.Credentials = cc;
94 objRequest.Method = "GET";
95 }
96 else
97 {
98 if (firstRun)
99 {
100 //Efetua Login na primeira tentativa de conexão com o site
101 string _postString = "";
102 byte[] _postData;
103
104 Dictionary<string, string> _postParams = new Dictionary<string, string>();
105 _postParams.Add("Login1$LoginButton", "Entrar");
106 _postParams.Add("Login1$Password", "");
107 _postParams.Add("Login1$UserName", "system");
108 _postParams.Add("Login1$drpCulture", "");
109 _postParams.Add("__EVENTTARGET", "Login1$LoginButton");
110
111 foreach (KeyValuePair<string, string> pair in _postParams)
112 {
113 _postString += "&" + pair.Key + "=" + pair.Value;
114 }
115
116 _postData = new System.Text.ASCIIEncoding().GetBytes(_postString.Substring(1));
117
118 objRequest.ContentType = "application/x-www-form-urlencoded";
119 objRequest.ContentLength = _postData.Length;
120 objRequest.Referer = "http://" + domain + "/cmspages/logon.aspx";
121 objRequest.Method = "POST";
122
123 System.IO.Stream _outStream = objRequest.GetRequestStream();
124 _outStream.Write(_postData, 0, _postData.Length);
125
126 _outStream.Close();
127
128 }
129 else
130 {
131 objRequest.Method = "GET";
132 }
133 }
134
135 objRequest.AllowAutoRedirect = false;
136 objRequest.KeepAlive = true;
137 objRequest.Timeout = 60000; // 60 segundos.
138 objRequest.CookieContainer = cookieContainer;
139
140 HttpWebResponse objResponse = (HttpWebResponse)objRequest.GetResponse();
141
142 if (firstRun)
143 {
144 //seta variavel para cookie ser reutilizado.
145 cookieContainer.Add(objResponse.Cookies);
146 firstRun = false;
147 }
148
149 return objResponse;
150 }
--
Bruno Kunioshi
terça-feira, 2 de novembro de 2010
Controles Dinâmicos com Event Handler e AJAX
Para controles criados dinâmicamente, além de codificar o EventHandler necessário, devesse adicionar o controle no UpdatePanel para que funcione o AJAX:
mUpdatePanel.ContentTemplateContainer.Controls.Add(controle);
Utilizei classe anônima para codificar o delegate dinâmicamente em runtime para cada controle:
DropDownList controle = (DropDownList)FindControl(propriedadeControle[0].ToString());
controle.SelectedIndexChanged += delegate(System.Object o, System.EventArgs e)
{
DropDownList controleDependente = (DropDownList)FindControl(propriedadeControle[1].ToString());
controleDependente.Items.Add("asdfasdfasdf");
};
Array de Objetos para Dataset
Estava trabalhando com um webservice e me deparei com um Array de Objetos, pesquisando, encontrei esta solução de Nilang Sah, ele serializou o Array, e depois carregou dentro de um DataSet. Utíl!
Abordagem diferente para if/cases
Ao inves do usual if/cases, normalmente usados, como:
Encontrei este artigo de Mark Needham, que utiliza um Dictionary e uso de Generics:
public class SomeController { public ActionResult TheAction(string whichButton, UserData userData) { if(whichButton == "Back") { // do the back action } else if(whichButton == "Next") { // do the next action } else if(whichButton == "Save") { // do the save action } throw Exception(""); } }
Encontrei este artigo de Mark Needham, que utiliza um Dictionary e uso de Generics:
public class SomeController { private Dictionary<string, Func<UserData,ActionResult>> handleAction = new Dictionary<string, Func<UserData,ActionResult>>
{ { "Back", SaveAction }, { "Next", NextAction }, { "Save", SaveAction } }; public ActionResult TheAction(string whichButton, UserData userData) { if(handleAction.ContainsKey(whichButton)) { return handleAction[whichButton](userData); } throw Exception(""); } private ActionResult NextAction(UserData userData) { // do cool stuff } }
Assinar:
Postagens (Atom)