private async Task <MessageReport> SendMessage(WM_Task task, List <string> users)
        {
            var result = new MessageReport(false, "error");

            try
            {
                //Lấy Players
                var players = await _OS_PlayerService.GetPlayerIdsByUserIds(users);

                //Gửi
                var model = new OneSignalrMessage()
                {
                    Id          = "",
                    Title       = string.Format("Công việc: {0}", task.Title),
                    Description = string.Format("Công việc mới được giao cho bạn"),
                    UserIds     = "",
                    PlayerIds   = players.Select(n => n.PlayerId).ToArray(),
                    View        = "TaskPage"
                };

                result = await _OS_PlayerService.SendMessage(model);
            }
            catch (System.Exception ex)
            {
                result = new MessageReport(false, ex.Message);
            }

            return(result);
        }
        private async Task <MessageReport> SendMessageComplete(WM_Task task, List <string> users, string userCompleteId)
        {
            var result = new MessageReport(false, "error");

            try
            {
                //Lấy người hoàn thiện
                var objUser = await _SY_UserService.GetById(userCompleteId);

                //Lấy Players
                var players = await _OS_PlayerService.GetPlayerIdsByUserIds(users);

                //Gửi
                var model = new OneSignalrMessage()
                {
                    Id          = "",
                    Title       = string.Format("Công việc: {0}", task.Title),
                    Description = string.Format("Công việc được check hoàn thành bởi {0}", objUser != null ? objUser.Username : ""),
                    UserIds     = "",
                    PlayerIds   = players.Select(n => n.PlayerId).ToArray(),
                    View        = "TaskPage"
                };

                result = await _OS_PlayerService.SendMessage(model);
            }
            catch (System.Exception ex)
            {
                result = new MessageReport(false, ex.Message);
            }

            return(result);
        }
Exemple #3
0
        public async Task <IActionResult> MessageSubmit(OneSignalrMessage model)
        {
            var result = new MessageReport(false, "Có lỗi xảy ra");

            try
            {
                //Lấy danh sách cần gửi
                if (string.IsNullOrWhiteSpace(model.UserIds))
                {
                    result = new MessageReport(false, "Chưa có người để gửi");
                    return(Json(result));
                }

                //
                var k       = model.UserIds.Split(',', StringSplitOptions.RemoveEmptyEntries).ToList();
                var players = await _OS_PlayerService.GetPlayerIdsByUserIds(k);

                model.PlayerIds = players.Where(n => n.PlayerId != null).Select(n => n.PlayerId).ToArray();
                model.View      = "ProjectPage";

                //
                result = await _OS_PlayerService.SendMessage(model);
            }
            catch (Exception ex)
            {
                result = new MessageReport(false, ex.Message);
            }

            return(Json(result));
        }
Exemple #4
0
        public async Task <IActionResult> SendMessageModal(AJAXModel_Modal model)
        {
            //
            var objProject = await _PM_ProjectService.GetById(model.idrecord);

            //Lấy danh sách user tham gia dự án
            var objWork = await _PM_WorkService.GetAllByProjectId(model.idrecord);

            var userids = objWork.Select(n => n.UserId).Distinct().ToList();

            var obj = new OneSignalrMessage()
            {
                Description = "",
                Title       = "Nhắc nhở dự án: " + objProject.Title,
                Id          = model.idrecord,
                PlayerIds   = new string[] { },
                View        = "ProjectPage"
            };

            var cus = new OS_MessageModal()
            {
                Data         = obj,
                Data_Modal   = model,
                Select_Users = await Select_User(string.Join(',', userids))
            };

            return(PartialView(cus));
        }
Exemple #5
0
        private async Task <MessageReport> SendMessageTask(WM_Task task)
        {
            var result = new MessageReport(false, "error");

            try
            {
                //Lấy danh sách người dùng liên quan tới task + người tạo dự án
                var users = await GetUserTaskInvolved(task.Id);

                users.Add(task.UserCreatedId);

                //Lấy Players
                var players = await _OS_PlayerService.GetPlayerIdsByUserIds(users);

                //Gửi
                var model = new OneSignalrMessage()
                {
                    Id          = "",
                    Title       = string.Format("Nhắc nhở công việc: {0}", task.Title),
                    Description = "Công việc sắp đến hạn hoàn thành",
                    UserIds     = "",
                    PlayerIds   = players.Select(n => n.PlayerId).ToArray(),
                    View        = "TaskPage"
                };

                result = await _OS_PlayerService.SendMessage(model);
            }
            catch (System.Exception ex)
            {
                result = new MessageReport(false, ex.Message);
            }

            return(result);
        }
Exemple #6
0
        private async Task <MessageReport> SendMessageProject(PM_Project project, PM_Component component)
        {
            var result = new MessageReport(false, "error");

            try
            {
                //Lấy danh sách người dùng liên quan tới component + người tạo dự án
                var users = await GetUserInvolved(component.Id);

                users.Add(project.UserCreatedId);

                //Lấy Players
                var players = await _OS_PlayerService.GetPlayerIdsByUserIds(users);

                //Gửi
                var model = new OneSignalrMessage()
                {
                    Id          = "",
                    Title       = string.Format("Dự án: {0}", project.Title),
                    Description = string.Format("Nhắc nhở hoàn thành Component: {0}", component.Code),
                    UserIds     = "",
                    PlayerIds   = players.Select(n => n.PlayerId).ToArray(),
                    View        = "HomePage"
                };

                result = await _OS_PlayerService.SendMessage(model);
            }
            catch (System.Exception ex)
            {
                result = new MessageReport(false, ex.Message);
            }

            return(result);
        }
Exemple #7
0
        private async Task <MessageReport> SendNotification(SY_Notification model)
        {
            var obj = new OneSignalrMessage()
            {
                Description = model.Description,
                Id          = model.Id,
                PlayerIds   = new string[] {},
                Title       = "Thông báo: " + model.Title,
                UserIds     = "",
                View        = OneSignalConfig.NotificationPage
            };

            return(await _OS_PlayerService.SendNotification(obj));
        }
        public async Task <MessageReport> SendNotification(OneSignalrMessage model)
        {
            var result = new MessageReport(false, "Có lỗi xảy ra");

            try
            {
                using (var client = new HttpClient())
                {
                    var url = new Uri("https://onesignal.com/api/v1/notifications");
                    client.DefaultRequestHeaders.Accept.Clear();
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", OneSignalConfig.APISercetKey);

                    var obj = new
                    {
                        app_id            = OneSignalConfig.AppID,
                        headings          = new { en = model.Title },
                        contents          = new { en = model.Description },
                        included_segments = new string[] { "All" },
                        content_available = true,
                        data = new { View = model.View, ID = "" },
                    };

                    var json     = JsonConvert.SerializeObject(obj);
                    var content  = new StringContent(json, Encoding.UTF8, "application/json");
                    var response = await client.PostAsync(url, content);

                    if (response.IsSuccessStatusCode)
                    {
                        result = new MessageReport(true, "Gửi thành công");
                    }
                    else
                    {
                        result = new MessageReport(false, await response.Content.ReadAsStringAsync());
                    }
                }
            }
            catch (Exception ex)
            {
                result = new MessageReport(false, ex.Message);
            }

            return(result);
        }