예제 #1
0
        public static IoTDevice DTOMessageToIoTDevice(DTOMessage dtoMessage)
        {
            IoTDevice ioTDevice = new IoTDevice()
            {
                Id       = dtoMessage.Iotdeviceid,
                Messages = new HashSet <Message>()
            };

            Message message = new Message()
            {
                TimeStampSent     = dtoMessage.TimeStamp,
                TimeStampReceived = (long)DateTime.Now.ToUniversalTime().Subtract(
                    new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)
                    ).TotalMilliseconds,

                TransmissionsCounter = dtoMessage.TransmissionsCounter,
                IoTDevice            = ioTDevice,
                Measurements         = new HashSet <Measurement>()
            };

            foreach (var dtoMeasurement in dtoMessage.Measurements)
            {
                message.Measurements.Add(new Measurement()
                {
                    SensorType = dtoMeasurement.SensorType,
                    Value      = dtoMeasurement.Value,
                    Message    = message
                });
            }

            ioTDevice.Messages.Add(message);

            return(ioTDevice);
        }
예제 #2
0
        private void PrintDTOMessage(DTOMessage message)
        {
            Console.WriteLine($"IoT Device ID: {message.Iotdeviceid}");
            Console.WriteLine($"Message Timestamp: {message.TimeStamp}");
            Console.WriteLine($"Message TransmissionsCounter: {message.TransmissionsCounter}");

            foreach (var measurement in message.Measurements)
            {
                Console.WriteLine($"    Measurement SensorType: {measurement.SensorType}");
                Console.WriteLine($"    Measurement Value: {measurement.Value}");
            }
        }
예제 #3
0
        private void SendRegistrationEmail(string userName, string password, string email)
        {
            MailService mailService         = MailService.Instance;
            string      _mailConfigFilePath = AppDomain.CurrentDomain.GetData("DataDirectory") + "\\Mail.xml";

            mailService.LoadFile(_mailConfigFilePath);
            DTOMessage message        = mailService.GetMessage("NewEmail");
            string     sendFrom       = (ConfigurationSettings.AppSettings["MailFromAddress"] != null) ? ConfigurationSettings.AppSettings["MailFromAddress"].ToString() : "";
            string     messageSubject = MailService.formatMsg(message.Subject, null);
            string     bodyStr        = MailService.formatMsg(message.Body, new string[] { userName, password });

            MailService.SendMessageWithAttachment(sendFrom, email, null, messageSubject, bodyStr, null);
        }
        //public static void PublicarMensajes(DTOChat chat)
        //{
        //    WCFHelper.ExecuteService<IChatService>(ConfiguracionSistemaURLsEnumDestino.ChatService, i => i.EnviarMensaje(chat));
        //}

        //public static int InsertarMensaje(int idChat, int origen, string mensaje)
        //{
        //    return ChatDAL.InsertarMensaje(idChat, origen, mensaje);
        //}

        //public static void InformarNuevoGrupo(ChatEntity chat, string usuarios, int idOwner)
        //{
        //    //agrego el owner a participantes
        //    usuarios += "," + idOwner.ToString();
        //    DTONuevoChat nuevoChat = new DTONuevoChat()
        //    {
        //        IdChat = chat.IdChat,
        //        Nombre = chat.Nombre,
        //        Participantes = usuarios.Split(',').Select(x => new DTOUsuario() { IdUsuario = int.Parse(x) }).ToList(),
        //        IdOwner = idOwner,
        //        Fecha = chat.Fecha

        //    };
        //    WCFHelper.ExecuteService<IChatService>(ConfiguracionSistemaURLsEnumDestino.ChatService, i => i.InformarNuevoGrupo(nuevoChat));
        //}

        public static void InformarNuevoMensaje(int IdUser, string type, string subType, string message, DateTime date)
        {
            DTOMessage dto = new DTOMessage()
            {
                IdUser  = IdUser,
                Type    = type,
                SubType = subType,
                Message = message,
                Date    = date
            };
            var client = new HttpClient();

            var uri          = OrdenesApplication.Instance.ContextoAplicacion.Urls.Find(x => x.TipoUrl == ConfiguracionSistemaURLsEnumDestino.Notificaciones).Url; //"https://localhost:44324/api/Message";
            var jsonInString = JsonConvert.SerializeObject(dto);

            client.PostAsync(uri, new StringContent(jsonInString, Encoding.UTF8, "application/json"));


            //List<DTOUsuario> participantes;
            //ChatEntity chat;
            //string nombreChat;
            //using (OrdenesContext mc = new OrdenesContext())
            //{
            //    participantes = (from p in mc.ChatUsuarios where p.IdChat == idChat select new DTOUsuario() { IdUsuario = p.IdUsuario }).ToList();
            //    chat = (from c in mc.Chats where c.IdChat == idChat select c).FirstOrDefault();
            //    if (chat.EsGrupo)
            //    {
            //        nombreChat = chat.Nombre;
            //    } else
            //    {
            //        //Si no es grupo, en participantes solo hay 2 usuarios, porque es chat individual. Como busco la contraparte, pongo que sea distinto a idUsuarioOrigen
            //        int idContraparte = participantes.Find(x => x.IdUsuario != idUsuarioOrigen).IdUsuario;
            //        nombreChat = (from u in mc.Usuario where u.IdUsuario == idContraparte select u).FirstOrDefault().Username;
            //    }


            //}
            //DTONuevoMensajeChat nuevoMensajeChat = new DTONuevoMensajeChat()
            //{
            //    IdChat = idChat,
            //    Mensaje = mensaje,
            //    Target = nombreChat,
            //    Participantes = participantes,
            //    Fecha = DateTime.Now,
            //    EsGrupo = chat.EsGrupo,
            //    IdUsuarioOrigen = idUsuarioOrigen,
            //    UsernameOrigen = MAEUserSession.Instancia.UserName,
            //    IdChatMensaje = idChatMensaje
            //};
            //WCFHelper.ExecuteService<IChatService>(ConfiguracionSistemaURLsEnumDestino.ChatService, i => i.InformarNuevoMensaje(nuevoMensajeChat));
        }
예제 #5
0
        public IActionResult UploadMessage([FromBody] DTOMessage message)
        {
            Console.WriteLine("Got POST message");
            PrintDTOMessage(message);

            using (var ctx = _context)
            {
                var       entity    = ctx.IoTDevices.Find(message.Iotdeviceid);
                IoTDevice ioTDevice = DTOMessageMapper.DTOMessageToIoTDevice(message);

                if (entity == null) // Add or Update?
                {
                    ctx.IoTDevices.Add(ioTDevice);
                }
                else
                {
                    // Initialize a new set on the already attached entity.
                    // This is required since we do NOT want to load all messages from the database.
                    // EF figures out automatically that the entity is modified and makes an INSERT of the message.
                    entity.Messages = new HashSet <Message>
                    {
                        ioTDevice.Messages.First()
                    };

                    // DO NOT DO LIKE THIS. THIS WILL CAUSE THE ENTITY FRAMEWORK TO LOAD ALL MESSAGE RECORDS.
                    // IN TIME, AS THE AMOUNT OF RECORDS GROWS, THIS CALL WILL BE EXTREMELY SLOW.

                    /*ctx.Entry(entity).Collection("Messages").IsModified = true;
                     * ctx.Entry(entity).Collection("Messages").Load();
                     * entity.Messages.Add(ioTDevice.Messages.First());
                     */
                }

                try
                {
                    ctx.SaveChanges();
                }
                catch (DbUpdateException e)
                {
                    return(Problem("Could not update the DB. " + e.Message + e.StackTrace, statusCode: 500));
                }
                catch (Exception e)
                {
                    return(Problem("Unspecified error while saving the given data. " + e.Message + e.StackTrace, statusCode: 500));
                }
            }

            return(Ok());
        }
        public JsonResult Post([FromBody] DTOMessage dto)//(int IdUser, string type, string subType, string message)
        {
            MessageHelper.OnNewMessageHandle(new DTONewMessage()
            {
                IdUser  = dto.IdUser,
                Type    = dto.Type,
                SubType = dto.SubType,
                Message = dto.Message,
                Date    = dto.Date
            }, _hubContext);



            return(new JsonResult(new { ok = true }));
        }
예제 #7
0
        private void button8_Click(object sender, EventArgs e)
        {
            StringBuilder strResult = new StringBuilder(1000);

            BUSMessage.ForceUpdate();
            int nMessages = BUSMessage.Count();

            for (int i = 0; i < nMessages; i++)
            {
                DTOMessage mess = BUSMessage.Get(i);
                strResult.Append("Message: " + mess.Message);
                strResult.Append("\r\n");
            }

            tbResult.Text = strResult.ToString();
        }
예제 #8
0
        public static DTOMessage[] Get10LastMessage()
        {//xem nhu chuyen trang roi`
            HtmlNodeCollection nodeCol = Gloval.Database.DocumentNode.SelectNodes(XPathManager.XPathMessage.MessageEntry);

            List <DTOMessage> list = new List <DTOMessage>();

            foreach (HtmlNode node in nodeCol)
            {
                DTOMessage mess = new DTOMessage();
                mess.Message = node.ChildNodes[1].InnerText;
                list.Add(mess);
            }

            Gloval.Database.Account.Message = list.ToArray();

            return(Gloval.Database.Account.Message);
        }
예제 #9
0
        public static DTOMessage[] Get10LastMessage()
        {//xem nhu chuyen trang roi`
            HtmlNodeCollection nodeColMessage = Gloval.Database.DocumentNode.SelectNodes(XPathManager.XPathMessage.MessageEntry);
            HtmlNodeCollection nodeColSender  = Gloval.Database.DocumentNode.SelectNodes(XPathManager.XPathMessage.MessageSender);

            DTOMessage[] list;
            if (nodeColMessage == null)
            {
                //khong co tin nhan nao
                list = new DTOMessage[1] {
                    new DTOMessage {
                        Message = "don't have any message", Sender = ""
                    }
                };
                return(list);
            }

            list = new DTOMessage[nodeColSender.Count];

            for (int i = nodeColSender.Count - 1; i >= 0; i--)
            {
                DTOMessage mes = new DTOMessage();

                //khử nhiễu
                string[] strSplit = nodeColMessage[i].InnerText.Split(new char[] { '\r', '\n', '\t' });

                StringBuilder strResultMessage = new StringBuilder(500);
                foreach (string str in strSplit)
                {
                    if (str.Trim() != "")
                    {
                        strResultMessage.Append(str);
                        strResultMessage.Append("<br/>");
                    }
                }

                mes.Message = strResultMessage.ToString();
                mes.Sender  = nodeColSender[i].InnerText.Trim(new char[] { '\t', '\r', '\n', ' ' });

                list[i] = mes;
            }

            return(list);
        }