コード例 #1
0
        public IActionResult Create([FromBody] NewGroupViewModel group)
        {
            if (group == null || group.GroupName == "")
            {
                return(new ObjectResult(
                           new { status = "error", message = "incomplete request" }
                           ));
            }

            if ((_context.Groups.Any(gp => gp.GroupName == group.GroupName)) == true)
            {
                return(new ObjectResult(
                           new { status = "error", message = "group name already exist" }
                           ));
            }

            Group newGroup = new Group {
                GroupName = group.GroupName
            };

            // Insert this new group to the database...
            _context.Groups.Add(newGroup);
            _context.SaveChanges();
            //Insert into the user group table, group_id and user_id in the user_groups table...
            foreach (string UserName in group.UserNames)
            {
                _context.UsersGroups.Add(
                    new UserGroup {
                    UserName = UserName, GroupId = newGroup.Id
                }
                    );
                _context.SaveChanges();
            }

            var options = new PusherOptions
            {
                Cluster   = _configuration["PUSHER_APP_CLUSTER"],
                Encrypted = true
            };
            var pusher = new Pusher(
                _configuration["PUSHER_APP_ID"],
                _configuration["PUSHER_APP_KEY"],
                _configuration["PUSHER_APP_SECRET"],
                options
                );
            var result = pusher.TriggerAsync(
                "group_chat", //channel name
                "new_group",  // event name
                new { newGroup });

            return(new ObjectResult(new { status = "success", data = newGroup }));
        }
コード例 #2
0
        public IActionResult Create([FromBody] MessageViewModel message)
        {
            Message new_message = new Message
            {
                AddedBy = _userManager.GetUserName(User), message = message.message, GroupId = message.GroupId
            };

            _context.Messages.Add(new_message);
            _context.SaveChanges();

            var options = new PusherOptions
            {
                Cluster   = _configuration["PUSHER_APP_CLUSTER"],
                Encrypted = true
            };
            var pusher = new Pusher(
                _configuration["PUSHER_APP_ID"],
                _configuration["PUSHER_APP_KEY"],
                _configuration["PUSHER_APP_SECRET"],
                options
                );
            var result = pusher.TriggerAsync(
                "private-" + message.GroupId,
                "new_message",
                new { new_message },
                new TriggerOptions()
            {
                SocketId = message.SocketId
            });

            return(new ObjectResult(new { status = "success", data = new_message }));
        }