public bool sendPosition(string latitude, string longitude)
 {
     AmazonSQSClient sqsClient = new AmazonSQSClient(Amazon.RegionEndpoint.USEast1);
     Amazon.SQS.Model.SendMessageRequest request = new Amazon.SQS.Model.SendMessageRequest();
     request.QueueUrl = SQS_URL_STRING;
     request.MessageBody = "lat: " + latitude + " lon: " + longitude;
     sqsClient.SendMessage(request);
     return true;
 }
Example #2
1
		public SqsActor ()
		{
			Receive<string> (x => {


                var sqs_url = Environment.GetEnvironmentVariable("sqs_url", EnvironmentVariableTarget.Process);
                var config = new AmazonSQSConfig();
                config.ServiceURL = sqs_url;

                var creds = new StoredProfileAWSCredentials();
                var client = new AmazonSQSClient(creds, config);

                var msg =  x + " and what " + Guid.NewGuid().ToString();
                var queue_url = Environment.GetEnvironmentVariable("queue_url", EnvironmentVariableTarget.Process);
             
                var request = new Amazon.SQS.Model.SendMessageRequest(queue_url, msg);
             
                client.SendMessage(request);

				Sender.Tell(string.Format("done  : [{0}]", msg ));
			});
		}
Example #3
0
        public ActionResult Webhook(string id)
        {
            string securityId = ConfigurationManager.AppSettings["SecurityId"];
            if (!String.IsNullOrEmpty(securityId))
            {
                if (securityId != id)
                    return new HttpStatusCodeResult((int)System.Net.HttpStatusCode.BadRequest);
            }

            // Verify the content type is json
            if (!this.Request.ContentType.StartsWith("application/json"))
                return new HttpStatusCodeResult((int)System.Net.HttpStatusCode.BadRequest);

            // TODO: Verify the user agent

            // Parse the JSON content simply to validate it as proper JSON
            this.Request.InputStream.Seek(0, System.IO.SeekOrigin.Begin);
            var textReader = new System.IO.StreamReader(this.Request.InputStream);

            {
                Newtonsoft.Json.JsonReader reader = new Newtonsoft.Json.JsonTextReader(textReader);
                JObject jObject = JObject.Load(reader);
            }

            // All is OK, so seek back to the start
            this.Request.InputStream.Seek(0, System.IO.SeekOrigin.Begin);
            // and re-read the content
            string messageBody = textReader.ReadToEnd();

            string queueUrl = ConfigurationManager.AppSettings["SqsQueueUrl"];
            if (String.IsNullOrEmpty(queueUrl))
                throw new Exception("Null or empty SqsQueueUrl setting.");

            Amazon.SQS.AmazonSQS sqsClient;

            string endPointName = ConfigurationManager.AppSettings["SqsEndpoint"];
            if (!String.IsNullOrEmpty(endPointName))
            {
                Amazon.RegionEndpoint endPoint = Amazon.RegionEndpoint.GetBySystemName(endPointName);
                if (endPoint == null)
                    throw new Exception("Invalid Amazon AWS endpoint name: " + endPointName);

                sqsClient = new Amazon.SQS.AmazonSQSClient(endPoint);
            }
            else
            {
                sqsClient = new Amazon.SQS.AmazonSQSClient();
            }

            // Build our request
            var request = new Amazon.SQS.Model.SendMessageRequest()
                .WithMessageBody(messageBody)
                .WithQueueUrl(queueUrl);

            // Send to SQS
            var response = sqsClient.SendMessage(request);
            string messageId = response.SendMessageResult.MessageId;

            return new EmptyResult();
        }
Example #4
0
        public ErrorTypes AddTask(TaskQueueData oTask, Priority oPriority)
        {
            ErrorTypes eResult     = ErrorTypes.Unknown;
            string     strUrlQueue = GetQueueUrl(oPriority);

            try
            {
                string strData = TaskQueueData.SerializeToXml(oTask);

                using (Amazon.SQS.AmazonSQS oSQSClient = Amazon.AWSClientFactory.CreateAmazonSQSClient())
                {
                    Amazon.SQS.Model.SendMessageRequest oSendMessageRequest = new Amazon.SQS.Model.SendMessageRequest();
                    oSendMessageRequest.QueueUrl    = strUrlQueue;
                    oSendMessageRequest.MessageBody = strData;
                    oSQSClient.SendMessage(oSendMessageRequest);
                    eResult = ErrorTypes.NoError;
                }
            }
            catch (Amazon.SQS.AmazonSQSException)
            {
                eResult = ErrorTypes.TaskQueue;
            }
            catch
            {
                eResult = ErrorTypes.TaskQueue;
            }

            return(eResult);
        }
Example #5
0
        public SqsActor()
        {
            Receive <string> (x => {
                var sqs_url       = Environment.GetEnvironmentVariable("sqs_url", EnvironmentVariableTarget.Process);
                var config        = new AmazonSQSConfig();
                config.ServiceURL = sqs_url;

                var creds  = new StoredProfileAWSCredentials();
                var client = new AmazonSQSClient(creds, config);

                var msg       = x + " and what " + Guid.NewGuid().ToString();
                var queue_url = Environment.GetEnvironmentVariable("queue_url", EnvironmentVariableTarget.Process);

                var request = new Amazon.SQS.Model.SendMessageRequest(queue_url, msg);

                client.SendMessage(request);

                Sender.Tell(string.Format("done  : [{0}]", msg));
            });
        }
Example #6
0
        public override void Write(string message)
        {
            var queue = Queue;

            if (queue == null)
            {
                return;
            }
            var sendMessageRequest = new Amazon.SQS.Model.SendMessageRequest();

            sendMessageRequest.WithQueueUrl(queueURL);
            //sendMessageRequest.WithMessageBody(String.Format("{\"instanceID\":\"{0}\",\"message\":\"{1}\"}", SQSContext.InstanceID, message));
            sendMessageRequest.WithMessageBody("{\"instanceID\":\"" + SQSTraceListener.context.InstanceId + "\",\"message\":\"" + message + "\"}");
            try
            {
                var sendMessageReply = queue.SendMessage(sendMessageRequest);
            }
            catch (Exception ex)
            {
            }
        }
Example #7
0
        public override void WriteLine(string message)
        {
            var queue = Queue;

            if (queue == null)
            {
                return;
            }
            var sendMessageRequest = new Amazon.SQS.Model.SendMessageRequest();

            sendMessageRequest.WithQueueUrl(queueURL);
            var builder = new StringBuilder();

            builder.Append("{\"instanceID\":\"");
            builder.Append(SQSTraceListener.context.InstanceId);
            builder.Append("\",\"timestamp\":\"");
            builder.Append(DateTime.UtcNow.ToString("O", System.Globalization.CultureInfo.InvariantCulture));
            builder.Append("\",\"message\":\"");
            if (message.Contains('"'))
            {
                var sb = new StringBuilder();
                sb.Append(message);
                sb.Replace("\"", "\\\"");
                builder.Append(sb);
            }
            else
            {
                builder.Append(message);
            }

            builder.Append("\"}");
            sendMessageRequest.WithMessageBody(builder.ToString());
            try
            {
                var sendMessageReply = queue.SendMessage(sendMessageRequest);
            }
            catch (Exception ex)
            {
            }
        }
Example #8
0
        /// <summary>
        /// TerminateInstances sends number of terminate messages to specified queue.
        /// </summary>
        /// <param name="num"></param>
        /// <returns></returns>
        public int TerminateInstances(int num)
        {
            Debug.WriteLine(String.Format("TerminateInstnaces: {0}", num), this.GetType());
            int count = 0;

            for (int i = 1; i <= num; i++)
            {
                var msg = new Amazon.SQS.Model.SendMessageRequest();
                msg.WithQueueUrl(AppUtility.GetContext().ShutdownQueue);
                msg.WithMessageBody("shutdown");

                var rsp = queue.SendMessage(msg);
                if (rsp.IsSetSendMessageResult())
                {
                    if (rsp.SendMessageResult.IsSetMessageId())
                    {
                        count += 1;
                    }
                }
            }

            return(count);
        }
Example #9
0
        /// <summary>
        /// Sends a new message to Amazon SQS using
        /// the specified queue URL. The message size
        /// limit is 256kb.
        /// </summary>
        /// <param name="queueUrl">The sqs queue endpoint to send the message to.</param>
        /// <param name="message">The message to send via SQS.</param>
        public static Amazon.SQS.Model.SendMessageResponse Send(string queueUrl, string message)
        {
            // Check that there is content for the message.
            if (string.IsNullOrEmpty(message))
                throw new ArgumentException("The message cannot be nothing!");

            // Check that the size of the message is okay.
            int messageSize = System.Text.ASCIIEncoding.Unicode.GetByteCount(message);
            if ((messageSize / 1000) >= 256)
                throw new ArgumentException("The message size cannot be larger than 256kb!");

            // Send the message to Amazon.
            Amazon.SQS.Model.SendMessageResponse response = new Amazon.SQS.Model.SendMessageResponse();
            using (Amazon.SQS.IAmazonSQS client = new Factory().SQSClient())
            {
                Amazon.SQS.Model.SendMessageRequest request = new Amazon.SQS.Model.SendMessageRequest()
                {
                    MessageBody = message,
                    QueueUrl = queueUrl
                };

                response = client.SendMessage(request);
            }
            return response;
        }
        public ErrorTypes AddTask(TaskQueueData oTask, Priority oPriority)
        {
            ErrorTypes eResult = ErrorTypes.Unknown;
            string strUrlQueue = GetQueueUrl(oPriority);

            try
            {

                string strData = TaskQueueData.SerializeToXml(oTask);

                using (Amazon.SQS.AmazonSQS oSQSClient = Amazon.AWSClientFactory.CreateAmazonSQSClient())
                {

                    Amazon.SQS.Model.SendMessageRequest oSendMessageRequest = new Amazon.SQS.Model.SendMessageRequest();
                    oSendMessageRequest.QueueUrl = strUrlQueue;
                    oSendMessageRequest.MessageBody = strData;
                    oSQSClient.SendMessage(oSendMessageRequest);
                    eResult = ErrorTypes.NoError;
                }
            }
            catch (Amazon.SQS.AmazonSQSException)
            {
                eResult = ErrorTypes.TaskQueue;
            }
            catch
            {
                eResult = ErrorTypes.TaskQueue;
            }

            return eResult;
        }
Example #11
0
        public ActionResult Webhook(string id)
        {
            string securityId = ConfigurationManager.AppSettings["SecurityId"];

            if (!String.IsNullOrEmpty(securityId))
            {
                if (securityId != id)
                {
                    return(new HttpStatusCodeResult((int)System.Net.HttpStatusCode.BadRequest));
                }
            }

            // Verify the content type is json
            if (!this.Request.ContentType.StartsWith("application/json"))
            {
                return(new HttpStatusCodeResult((int)System.Net.HttpStatusCode.BadRequest));
            }

            // TODO: Verify the user agent

            // Parse the JSON content simply to validate it as proper JSON
            this.Request.InputStream.Seek(0, System.IO.SeekOrigin.Begin);
            var textReader = new System.IO.StreamReader(this.Request.InputStream);

            {
                Newtonsoft.Json.JsonReader reader = new Newtonsoft.Json.JsonTextReader(textReader);
                JObject jObject = JObject.Load(reader);
            }

            // All is OK, so seek back to the start
            this.Request.InputStream.Seek(0, System.IO.SeekOrigin.Begin);
            // and re-read the content
            string messageBody = textReader.ReadToEnd();

            string queueUrl = ConfigurationManager.AppSettings["SqsQueueUrl"];

            if (String.IsNullOrEmpty(queueUrl))
            {
                throw new Exception("Null or empty SqsQueueUrl setting.");
            }

            Amazon.SQS.AmazonSQS sqsClient;

            string endPointName = ConfigurationManager.AppSettings["SqsEndpoint"];

            if (!String.IsNullOrEmpty(endPointName))
            {
                Amazon.RegionEndpoint endPoint = Amazon.RegionEndpoint.GetBySystemName(endPointName);
                if (endPoint == null)
                {
                    throw new Exception("Invalid Amazon AWS endpoint name: " + endPointName);
                }

                sqsClient = new Amazon.SQS.AmazonSQSClient(endPoint);
            }
            else
            {
                sqsClient = new Amazon.SQS.AmazonSQSClient();
            }

            // Build our request
            var request = new Amazon.SQS.Model.SendMessageRequest()
                          .WithMessageBody(messageBody)
                          .WithQueueUrl(queueUrl);

            // Send to SQS
            var    response  = sqsClient.SendMessage(request);
            string messageId = response.SendMessageResult.MessageId;

            return(new EmptyResult());
        }