/// <summary> /// Obtiene la salida de una URL /// </summary> internal static MLFile GetResponse(TwitterAccount objAccount, string strURL, ParameterDataCollection objColParameters, bool blnPost) { try { RestController objController = new RestController(); oAuthAuthenticator objAuthenticator = new oAuthAuthenticator(); RequestMessage objRequest = new RequestMessage(RequestMessage.MethodType.Get, strURL); ResponseMessage objResponse; // Asigna las propiedades al autentificador objAuthenticator.ConsumerKey = objAccount.Manager.OAuthConsumerKey; objAuthenticator.ConsumerSecret = objAccount.Manager.OAuthConsumerSecret; objAuthenticator.AccessToken = objAccount.OAuthToken; objAuthenticator.AccessTokenSecret = objAccount.OAuthTokenSecret; // Asigna el autentificador objController.Authenticator = objAuthenticator; // Asigna el método de envío if (blnPost) objRequest.Method = RequestMessage.MethodType.Post; // Asigna los parámetros if (objColParameters != null) foreach (ParameterData objParameter in objColParameters) objRequest.QueryParameters.Add(objParameter.Key, objParameter.Value); // Envía el mensaje objResponse = objController.Send(objRequest); // Devuelve el documento JSON if (objResponse.IsError) return GetError("Error en la recepción. Status: " + objResponse.ErrorDescription); else return new Bau.Libraries.LibMarkupLanguage.MLSerializer().ParseText(objResponse.Body); } catch (Exception objException) { return GetError(objException); } }
/// <summary> /// Carga los parámetros /// </summary> public void LoadParameters(ParameterDataCollection objColParameters) { // Inicializa el control InitControl(); // Carga los parámetros foreach (ParameterData objParameter in objColParameters) AddParameter(objParameter); }
/// <summary> /// Convierte una colección de cabeceras en una colección de parámetros /// </summary> private ParameterDataCollection Convert(HeadersCollection objColHeaders) { ParameterDataCollection objColParameters = new ParameterDataCollection(); // Convierte las cabeceras foreach (Header objHeader in objColHeaders) objColParameters.Add(objHeader.Key, objHeader.Value); // Devuelve la colección de parámetros return objColParameters; }
public RequestMessage(MethodType intMethod, string strURL) { // Asigna las propiedades Method = intMethod; URL = strURL; // Asigna los valores básicos ContentType = "text/xml"; // Define los objetos UrlParameters = new ParameterDataCollection(); QueryParameters = new ParameterDataCollection(); Attachments = new AttachmentsCollection(); }
/// <summary> /// Obtiene los datos a enviar cuando hay nombres de archivos /// </summary> private byte[] GetMultipartFormData(string strBoundary, ParameterDataCollection objColQueryString, AttachmentsCollection objColAttachments) { byte [] arrBytFormData; // Escribe los datos en un stream en memoria using (MemoryStream stmData = new MemoryStream()) { System.Text.UTF8Encoding objEncoding = new System.Text.UTF8Encoding(); string strFooter = "\r\n--" + strBoundary + "--\r\n"; // Asigna los archivos foreach (Attachment objAttachment in objColAttachments) { byte [] arrBytHeader = objEncoding.GetBytes(string.Format("--{0}\r\nContent-Disposition: form-data; name=\"{1}\"; filename=\"{2}\";\r\nContent-Type: {3}\r\n\r\n", strBoundary, Path.GetFileName(objAttachment.FileName), Path.GetFileName(objAttachment.FileName), objAttachment.ContentType)); byte [] arrBytFile = ReadFile(objAttachment.FileName); // Escribe la cabecera stmData.Write(arrBytHeader, 0, arrBytHeader.Length); // Escribe los datos del archivo stmData.Write(arrBytFile, 0, arrBytFile.Length); // Añade un salto de línea para permitir que se envíen varios archivos stmData.Write(objEncoding.GetBytes("\r\n"), 0, 2); } // Asigna los parámetros foreach (ParameterData objQueryString in objColQueryString) { byte [] arrBytPostData = objEncoding.GetBytes(string.Format("--{0}\r\nContent-Disposition: form-data; name=\"{1}\"\r\n\r\n{2}\r\n", strBoundary, objQueryString.Key, objQueryString.ValueEncoded)); // Escribe los datos stmData.Write(arrBytPostData, 0, arrBytPostData.Length); } // Añade el final de la solicitud stmData.Write(objEncoding.GetBytes(strFooter), 0, strFooter.Length); // Pasa los datos del stream de memoria al buffer stmData.Position = 0; arrBytFormData = new byte[stmData.Length]; stmData.Read(arrBytFormData, 0, arrBytFormData.Length); // Cierra el stream de memoria stmData.Close(); } // Devuelve el array de bytes de datos return(arrBytFormData); }
/// <summary> /// Obtiene los datos a firmar /// </summary> private string GetDataToSign(string strMethodDescription, string strUrl, ParameterDataCollection objColQueryString, string strNonce, string strTimeStamp) { ParameterDataCollection objColParameters = objColQueryString.Clone(); string strDataToSign = ""; // Añade los valores oAuth a los parámetros objColParameters.Add("oauth_version", cnstStrVersion); objColParameters.Add("oauth_consumer_key", ConsumerKey); objColParameters.Add("oauth_nonce", strNonce); objColParameters.Add("oauth_signature_method", cnstStrSignatureMethod); objColParameters.Add("oauth_timestamp", strTimeStamp); objColParameters.Add("oauth_token", AccessToken); // Ordena los parámetros objColParameters.SortByKey(); // Añade los parámetros a la cadena foreach (ParameterData objParameter in objColParameters) { strDataToSign = strDataToSign.AddWithSeparator(objParameter.Key + "=" + objParameter.ValueEncoded, "&", false); } // Codifica los parámetros y lo añade a los datos a firmar strDataToSign = strMethodDescription + "&" + NormalizeUrl(strUrl).UrlEncode() + "&" + strDataToSign.UrlEncodeRFC3986(); // Devuelve los datos a firmar return(strDataToSign); }
/// <summary> /// Convierte un diccionario a una colección de parámetros /// </summary> private ParameterDataCollection ConvertToParameters(Dictionary<string, string> dctParameters) { ParameterDataCollection objColParameters = new ParameterDataCollection(); // Asigna los parámetros foreach (KeyValuePair<string, string> objParameter in dctParameters) objColParameters.Add(objParameter.Key, objParameter.Value); // Devuelve la colección return objColParameters; }
/// <summary> /// Obtiene los datos a firmar /// </summary> private string GetDataToSign(string strMethodDescription, string strUrl, ParameterDataCollection objColQueryString, string strNonce, string strTimeStamp) { ParameterDataCollection objColParameters = objColQueryString.Clone(); string strDataToSign = ""; // Añade los valores oAuth a los parámetros objColParameters.Add("oauth_version", cnstStrVersion); objColParameters.Add("oauth_consumer_key", ConsumerKey); objColParameters.Add("oauth_nonce", strNonce); objColParameters.Add("oauth_signature_method", cnstStrSignatureMethod); objColParameters.Add("oauth_timestamp", strTimeStamp); objColParameters.Add("oauth_token", AccessToken); // Ordena los parámetros objColParameters.SortByKey(); // Añade los parámetros a la cadena foreach (ParameterData objParameter in objColParameters) strDataToSign = strDataToSign.AddWithSeparator(objParameter.Key + "=" + objParameter.ValueEncoded, "&", false); // Codifica los parámetros y lo añade a los datos a firmar strDataToSign = strMethodDescription + "&" + NormalizeUrl(strUrl).UrlEncode() + "&" + strDataToSign.UrlEncodeRFC3986(); // Devuelve los datos a firmar return strDataToSign; }
/// <summary> /// Process behaviors and create variables, properties and methods /// </summary> private void ProcessNodes() { // first create variables and set their properties foreach (var b in _Behaviors) { switch (b.BehaviorType) { case BehaviorType.Action: CreateAction((Skill.Editor.AI.ActionData)b); break; case BehaviorType.Condition: CreateCondition((ConditionData)b); break; case BehaviorType.Decorator: CreateDecorator((DecoratorData)b); break; case BehaviorType.Composite: CreateComposite((CompositeData)b); break; case BehaviorType.ChangeState: CreateChangeState((ChangeStateData)b); break; } } // left one line empty _CreateTreeMethodBody.AppendLine(); // add child of each behaviors(Decorator and Composites) foreach (var b in _Behaviors) { if (b.BehaviorType == BehaviorType.Decorator) { for (int i = 0; i < b.Count; i++) { BehaviorData child = b[i]; if (child != null) { ParameterDataCollection parameters = b.GetParameters(i); if (parameters != null && parameters.Count > 0) { _CreateTreeMethodBody.AppendLine(string.Format("this.{0}.SetChild({1},{2});", Variable.GetName(b.Name), Variable.GetName(child.Name), CreateParameters(parameters))); } else { _CreateTreeMethodBody.AppendLine(string.Format("this.{0}.SetChild({1},null);", Variable.GetName(b.Name), Variable.GetName(child.Name))); } break; } } } // Composite has multiple child else if (b.BehaviorType == BehaviorType.Composite) { for (int i = 0; i < b.Count; i++) { BehaviorData child = b[i]; if (child != null) { ParameterDataCollection parameters = b.GetParameters(i); if (parameters != null && parameters.Count > 0) { _CreateTreeMethodBody.AppendLine(string.Format("this.{0}.Add({1},{2});", Variable.GetName(b.Name), Variable.GetName(child.Name), CreateParameters(parameters))); } else { _CreateTreeMethodBody.AppendLine(string.Format("this.{0}.Add({1},null);", Variable.GetName(b.Name), Variable.GetName(child.Name))); } } } } } // then return root of tree if (_Tree.States != null) { _CreateTreeMethodBody.AppendLine(string.Format("Skill.Framework.AI.BehaviorTreeState[] states = new Skill.Framework.AI.BehaviorTreeState[{0}];", _Tree.States.Length)); for (int i = 0; i < _Tree.States.Length; i++) { _CreateTreeMethodBody.AppendLine(string.Format("states[{0}] = {1};", i, Variable.GetName(_Tree.States[i].Name))); } _CreateTreeMethodBody.AppendLine("return states;"); } else { _CreateTreeMethodBody.AppendLine("return null;"); } }
public void SetUp() { parameters = new ParameterDataCollection(); }
public BaseCommands(TwitterAccount objAccount) { Account = objAccount; Parameters = new ParameterDataCollection(); }
/// <summary> /// Obtiene los datos a enviar cuando hay nombres de archivos /// </summary> private byte[] GetMultipartFormData(string strBoundary, ParameterDataCollection objColQueryString, AttachmentsCollection objColAttachments) { byte [] arrBytFormData; // Escribe los datos en un stream en memoria using (MemoryStream stmData = new MemoryStream()) { System.Text.UTF8Encoding objEncoding = new System.Text.UTF8Encoding(); string strFooter = "\r\n--" + strBoundary + "--\r\n"; // Asigna los archivos foreach (Attachment objAttachment in objColAttachments) { byte [] arrBytHeader = objEncoding.GetBytes(string.Format("--{0}\r\nContent-Disposition: form-data; name=\"{1}\"; filename=\"{2}\";\r\nContent-Type: {3}\r\n\r\n", strBoundary, Path.GetFileName(objAttachment.FileName), Path.GetFileName(objAttachment.FileName), objAttachment.ContentType)); byte [] arrBytFile = ReadFile(objAttachment.FileName); // Escribe la cabecera stmData.Write(arrBytHeader, 0, arrBytHeader.Length); // Escribe los datos del archivo stmData.Write(arrBytFile, 0, arrBytFile.Length); // Añade un salto de línea para permitir que se envíen varios archivos stmData.Write(objEncoding.GetBytes("\r\n"), 0, 2); } // Asigna los parámetros foreach (ParameterData objQueryString in objColQueryString) { byte [] arrBytPostData = objEncoding.GetBytes(string.Format("--{0}\r\nContent-Disposition: form-data; name=\"{1}\"\r\n\r\n{2}\r\n", strBoundary, objQueryString.Key, objQueryString.ValueEncoded)); // Escribe los datos stmData.Write(arrBytPostData, 0, arrBytPostData.Length); } // Añade el final de la solicitud stmData.Write(objEncoding.GetBytes(strFooter), 0, strFooter.Length); // Pasa los datos del stream de memoria al buffer stmData.Position = 0; arrBytFormData = new byte[stmData.Length]; stmData.Read(arrBytFormData, 0, arrBytFormData.Length); // Cierra el stream de memoria stmData.Close(); } // Devuelve el array de bytes de datos return arrBytFormData; }
/// <summary> /// Obtiene los datos a enviar /// </summary> private byte[] EncodePostData(ParameterDataCollection objColQueryString, string strBody) { string strEncoded = ""; // Codifica los datos if (objColQueryString != null && objColQueryString.Count > 0) foreach (ParameterData objQueryString in objColQueryString) { // Añade el separador si es necesario if (!string.IsNullOrEmpty(strEncoded)) strEncoded += "&"; // Añade los datos a la cadena codificada strEncoded += string.Format("{0}={1}", objQueryString.Key, objQueryString.ValueEncoded); } // Añade el cuerpo del mensaje if (!string.IsNullOrEmpty(strBody)) strEncoded += Environment.NewLine + strBody; // Devuelve la cadena codificada return new System.Text.UTF8Encoding().GetBytes(strEncoded); }