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 })); }
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 })); }