Exemplo n.º 1
0
        /// <summary>
        /// sends a number of messages to the cloud
        /// </summary>
        /// <param name="numMsg">The number of messages to send</param>
        /// <returns></returns>
        private async Task SendMessages(int numMsg)
        {
            sendMsg = true;
            string listElements = "";
            string postStatus   = Constants.READY_AZURE;

            for (int i = 0; i < numMsg; i++)
            {
                if (sendMsg)
                {
                    string msg = await lp.GetLocation();

                    string[] parsedmsg = msg.Split(',');
                    var      coords    = new
                    {
                        type       = "coordinates",
                        latitude   = parsedmsg[0],
                        longitude  = parsedmsg[1],
                        deviceName = msgHub.GetDeviceId(),
                        version    = Constants.VERSION
                    };
                    var str = new
                    {
                        message = coords,
                        time    = DateTime.Now.ToString()
                    };
                    var fullMsg = JsonConvert.SerializeObject(str);
                    try
                    {
                        await msgHub.SendDeviceToCloudMessageAsync(fullMsg);
                    } catch (Exception)
                    {
                        postStatus = Constants.ERROR_AZURE;
                        break;
                    }

                    await Task.Delay(TimeSpan.FromSeconds(1));

                    string newElement = "<li class='msg'>" + fullMsg + "</li>\n";
                    listElements = newElement + listElements;
                }
                else
                {
                    Debug.WriteLine("MESSAGES STOPPED");
                    break;
                }
            }

            listElements = Constants.LIST_HEADER + "\n" + listElements;
            string html = await LoadandUpdateStatus(Constants.LIST_HEADER, listElements, NavConstants.DEFAULT_PAGE);

            html = await LoadandUpdateStatus(status, postStatus, NavConstants.DEFAULT_PAGE);

            status = postStatus;
        }
Exemplo n.º 2
0
        public async Task <string> sendCoordinateMessage(string device)
        {
            string msg = await GenerateCoordinateMessage(device);

            try
            {
                await msgHub.SendDeviceToCloudMessageAsync(msg);

                return(msg);
            } catch (System.Exception e)
            {
                throw new Exception(e.Message);
            }
        }