public string CreateMessageNotification(TINNHAN tinNhan)
        {
            int id = tinNhan.MaTinNhan;
            string title = HttpUtility.HtmlDecode(tinNhan.TieuDe).Replace("\r\n", "");
            string sender = tinNhan.NGUOIGUIs.ElementAt(0).HoTenNguoiGui;
            string sendTime = tinNhan.ThoiDiemGui.ToString();

            var danhSachMaNguoiNhan = tinNhan.NGUOINHANs.Select(n => n.MaNguoiNhan).ToList();
            var arrRegid = FireBaseDao.GetFireBaseTokenById(danhSachMaNguoiNhan);

            if (arrRegid.Length == 0) return null;

            PushNotification notification = new PushNotification()
            {
                registration_ids = arrRegid,
                data = new Data()
                {
                    title = sender,
                    body = title,
                    id = id,
                    type = MESSAGE_NOTIFICATION,
                    postTime = sendTime
                }
            };
            string postData = JsonConvert.SerializeObject(notification);
            return postData;
        }
 public static void AddTinNhan(TINNHAN tinNhan)
 {
     using (var db = new UMS_HUSCEntities())
     {
         db.TINNHANs.Add(tinNhan);
         db.SaveChanges();
     }
 }
        public IHttpActionResult TraLoiTinNhan(string maSinhVien, string matKhau, TinNhan tinNhan)
        {
            if (!SinhVienDao.TonTaiSinhVien(maSinhVien, matKhau))
            {
                return(BadRequest("Thông tin người gửi không đúng"));
            }

            var hoTenNguoiGui = tinNhan.HoTenNguoiGui;
            var maxMaTinNhan  = TinNhanDao.GetMaxMaTinNhan() + 1;

            TINNHAN newTinNhan = new TINNHAN()
            {
                MaTinNhan   = maxMaTinNhan,
                TieuDe      = tinNhan.TieuDe,
                NoiDung     = tinNhan.NoiDung,
                ThoiDiemGui = DateTime.Now
            };

            NGUOIGUI nguoiGui = new NGUOIGUI()
            {
                MaTinNhan     = maxMaTinNhan,
                MaNguoiGui    = tinNhan.MaNguoiGui,
                HoTenNguoiGui = hoTenNguoiGui,
                TINNHAN       = newTinNhan,
                TrangThai     = TinNhanDao.TINNHAN_CHUA_XOA,
                TAIKHOAN      = null
            };

            var nguoiNhans = new List <NGUOINHAN>();

            foreach (var item in tinNhan.NguoiNhans)
            {
                NGUOINHAN nguoiNhan = new NGUOINHAN()
                {
                    MaTinNhan      = maxMaTinNhan,
                    HoTenNguoiNhan = SinhVienDao.GetHoTenTheoTaiKhoan(item.MaNguoiNhan),
                    ThoiDiemXem    = null,
                    TINNHAN        = newTinNhan,
                    TAIKHOAN       = null,
                    TrangThai      = TinNhanDao.TINNHAN_CHUA_XOA,
                    MaNguoiNhan    = item.MaNguoiNhan
                };
                nguoiNhans.Add(nguoiNhan);
            }

            newTinNhan.NGUOIGUIs = new List <NGUOIGUI> {
                nguoiGui
            };
            newTinNhan.NGUOINHANs = nguoiNhans;
            TinNhanDao.AddTinNhan(newTinNhan);

            try
            {
                // Thong bao den client app
                FCMController fcm      = new FCMController();
                string        message  = fcm.CreateMessageNotification(newTinNhan);
                string        response = fcm.SendMessage(message);
                return(Ok(response));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message + "\n" + ex.InnerException.Message));
            }
        }
        public ActionResult DemoPostMessage(FormCollection form)
        {
            var demo = new DemoKetQua();

            var tieuDe              = HttpUtility.HtmlEncode(form["txtTieuDe"]);
            var noiDung             = HttpUtility.HtmlEncode(form["txtNoiDung"]);
            var maNguoiGui          = form["txtMaNguoiNguoi"];
            var thoiDiemGui         = DateTime.Now;
            var danhSachMaNguoiNhan = form["txtNguoiNhan[]"].Split(',').ToList <string>();

            try
            {
                // Them tin nhan vao db
                TINNHAN tinNhan = new TINNHAN()
                {
                    MaTinNhan   = TinNhanDao.GetMaxMaTinNhan() + 1, // tu dong tang
                    TieuDe      = tieuDe,
                    NoiDung     = noiDung,
                    ThoiDiemGui = thoiDiemGui,
                };

                // Lay danh sach thong tin nguoi nhan
                var danhSachNguoiNhan = new List <NGUOINHAN>();
                danhSachMaNguoiNhan.ForEach(m => danhSachNguoiNhan.Add(
                                                new NGUOINHAN()
                {
                    MaTinNhan      = tinNhan.MaTinNhan,
                    MaNguoiNhan    = int.Parse(m),
                    TrangThai      = TinNhanDao.TINNHAN_CHUA_XOA,
                    HoTenNguoiNhan = SinhVienDao.GetHoTenTheoTaiKhoan(int.Parse(m)),
                    ThoiDiemXem    = null,
                    TINNHAN        = tinNhan,
                    TAIKHOAN       = null
                }
                                                ));

                //// Nguoi gui
                var nguoiGui = new List <NGUOIGUI>
                {
                    new NGUOIGUI()
                    {
                        MaNguoiGui    = int.Parse(maNguoiGui),
                        TrangThai     = TinNhanDao.TINNHAN_CHUA_XOA,
                        MaTinNhan     = tinNhan.MaTinNhan,
                        HoTenNguoiGui = SinhVienDao.GetHoTenTheoTaiKhoan(int.Parse(maNguoiGui)),
                        TINNHAN       = tinNhan,
                        TAIKHOAN      = null
                    }
                };

                tinNhan.NGUOINHANs = danhSachNguoiNhan;
                tinNhan.NGUOIGUIs  = nguoiGui;
                TinNhanDao.AddTinNhan(tinNhan);

                // Thong bao den client app
                FCMController fcm     = new FCMController();
                string        message = fcm.CreateMessageNotification(tinNhan);
                demo.TinGuiDi = message;

                string response = fcm.SendMessage(message);
                demo.PhanHoi = response;

                // Hien thi ket qua thanh cong
                demo.KetQua = "Them thanh cong !!!";
            }
            catch (Exception ex)
            {
                demo.PhanHoi = ex.Message + ex.StackTrace;
            }

            return(RedirectToAction("DemoPostMessage", "Demo", demo));
        }