Пример #1
0
        /// <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);
                    }
        }
Пример #2
0
 /// <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);
 }
Пример #3
0
        /// <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;
        }
Пример #4
0
 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();
 }
Пример #5
0
        /// <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);
        }
Пример #6
0
        /// <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);
        }
Пример #7
0
        /// <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;
        }
Пример #8
0
        /// <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;
        }
Пример #9
0
        /// <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;");
            }
        }
Пример #10
0
 public void SetUp()
 {
     parameters = new ParameterDataCollection();
 }
Пример #11
0
 public BaseCommands(TwitterAccount objAccount)
 {
     Account = objAccount;
     Parameters = new ParameterDataCollection();
 }
Пример #12
0
        /// <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;
        }
Пример #13
0
        /// <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);
        }
 public void SetUp()
 {
     parameters = new ParameterDataCollection();
 }