public JsonResult Members(int id) { var issueMembers = repo.GetIssueMembers(id); var list = new List<dynamic>(); if (issueMembers != null) { foreach (var item in issueMembers) { var memberVM = new { MemberID = item.MemberID, Name = item.Member.FirstName, AvatarHash = UserService.GetAvatarUrl(item.Member.Avatar), ShowDelete = false }; list.Add(memberVM); } } return Json(list, JsonRequestBehavior.AllowGet); }
public async Task<IHttpActionResult> JoinGame(string id) { var openGames = db.GameModels.Include("Users").Include("StoryParts").Where(c => !c.IsFinished && c.Users.Count < c.PlayerSize); var currentUser = await db.Users.Where(c => c.UserName == id).FirstAsync(); if(currentUser == null) { return StatusCode(HttpStatusCode.NotFound); } //Join Game GameModel currentGame = null; if (!openGames.Any()) { currentGame = new GameModel(); var storyBegining = await db.StoryBeginingModels.OrderBy(c => Guid.NewGuid()).FirstAsync(); currentGame.GameText = storyBegining.StoryBegin; if (currentGame.Users == null) { currentGame.Users = new List<ApplicationUser>() { currentUser }; currentGame.StoryParts = new List<MessageModel>(); } db.GameModels.Add(currentGame); } else { currentGame = await openGames.FirstAsync(); currentGame.Users.Add(currentUser); if (currentGame.Users.Count == currentGame.PlayerSize) { var lottery = currentGame.Users.OrderBy(c => Guid.NewGuid()).ToList(); for (int i = 0; i < currentGame.Rounds * currentGame.PlayerSize; i++) { var lotteryIdx = i % (currentGame.PlayerSize); currentGame.StoryParts.Add(new MessageModel { StoryPosition = i, ApplicationUser = lottery.ElementAt(lotteryIdx), ApplicationUserId = lottery.ElementAt(lotteryIdx).Id }); } } db.Entry(currentGame).State = EntityState.Modified; } try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { IObjectContextAdapter adapter = db; adapter.ObjectContext.Refresh(RefreshMode.StoreWins, db.GameModels); try { await db.SaveChangesAsync(); } catch { return StatusCode(HttpStatusCode.InternalServerError); } } if (currentGame.Users.Count == currentGame.PlayerSize) { var hubContext = GlobalHost.ConnectionManager.GetHubContext<GameHub>(); var smallGame = new { GameId = currentGame.Id, GameText = currentGame.GameText, Rounds = currentGame.Rounds, Players = currentGame.Users.Select(c => new { UserName = c.UserName }), StoryParts = currentGame.StoryParts.Select(c => new { CurrentUser = c.ApplicationUser.UserName, Position = c.StoryPosition }) }; hubContext.Clients.All.broadcastMessage("heat", smallGame); return Ok(); } return Ok("lobby"); }
protected static object ConstructEvent(NotificationType type, object obj) { var notevent = new { Event = type.ToString(), Data = obj }; return notevent; }
public void broadcast(string username, string message) { var msg = new { username=username, message=message }; Clients.All.broadcastMessage(msg); }
public static void SendResult(PurchaseResult result, string connectionId) { var hubContext = GlobalHost.ConnectionManager.GetHubContext<MainHub>(); if(result.Success) { hubContext.Clients.Client(connectionId).orderSucceeded(new { id = result.Request.Id }); } else { hubContext.Clients.Client(connectionId).orderFailed(new { id = result.Request.Id }); } var summary = new { id = result.Id, requested = result.Request.Timestamp.ToString("u"), processed = result.Timestamp.ToString("u"), success = result.Success.ToString(), ticketcount = result.Request.DesiredTickets.Length }; hubContext.Clients.All.requestProcessed(summary); }
protected override System.Threading.Tasks.Task OnReceived(IRequest request, string connectionId, string data) { var t = new { Id = data.Length, Name = data, ConnId = connectionId }; return Connection.Broadcast(t); }