public async Task SendMessage(int partyId, int userId, string content) { if (content.Length == 0) { return; } var db = new SpotifyPartyDBContext(); var user = db.User.Find(userId); var party = db.Party.Find(partyId); var message = new Message() { Content = content, Party = party, Sender = user, DateTime = DateTime.UtcNow }; db.Message.Add(message); db.SaveChanges(); var sender = JsonSerializer.Serialize(new { country = message.Sender.Country, currentPartyId = message.Sender.CurrentPartyId, email = message.Sender.Email, userId = message.Sender.UserId, userName = message.Sender.UserName }); await Clients.Group(partyId.ToString()).SendAsync("ReceiveMessage", JsonSerializer.Serialize(new { messageId = message.MessageId, content = message.Content, sender, dateTime = message.DateTime })); }
public IEnumerable <Party> GetParties() { var db = new SpotifyPartyDBContext(); var parties = db.Party.AsNoTracking() .Include(party => party.Users); return(parties); }
public void DeleteUser(int id) { var db = new SpotifyPartyDBContext(); var user = new User { UserId = id }; db.Remove(user); db.SaveChanges(); }
public ActionResult <User> GetUserByEmail(string email) { var db = new SpotifyPartyDBContext(); var user = db.User.SingleOrDefault((p) => p.Email == email) ?? null; if (user == null) { return(NotFound()); } return(Ok(user)); }
public ActionResult <User> GetUser(uint id) { var db = new SpotifyPartyDBContext(); var user = db.User.SingleOrDefault((u) => u.UserId == id) ?? null; if (user == null) { return(NotFound()); } return(Ok(user)); }
public ActionResult <Message> GetMessage(int messageId) { var db = new SpotifyPartyDBContext(); var result = db.Message.SingleOrDefault(m => m.MessageId == messageId) ?? null; if (result == null) { return(NotFound()); } return(Ok(result)); }
public IEnumerable <Message> GetMessagesInParty(int partyId) { var db = new SpotifyPartyDBContext(); var result = db.Message .Include(m => m.Sender) .Where(m => m.PartyId == partyId) .OrderBy(m => m.DateTime) .ToList(); return(result); }
public async Task AddUser(int userId, int partyId) { var db = new SpotifyPartyDBContext(); var user = db.User.Find(userId); var party = db.Party.Find(partyId); party.Users.Add(user); db.SaveChanges(); Context.Items.Add("userId", userId); Context.Items.Add("partyId", partyId); await Groups.AddToGroupAsync(Context.ConnectionId, partyId.ToString()); await Clients.Group(partyId.ToString()).SendAsync("UserAdded", JsonSerializer.Serialize(user)); }
public IActionResult DeleteParty(int id) { try { var db = new SpotifyPartyDBContext(); var party = new Party { PartyId = id }; db.Remove(party); db.SaveChanges(); return(StatusCode(200)); } catch (Exception e) { return(StatusCode(500, e.Message)); } }
public ActionResult <Party> GetParty(uint id) { var db = new SpotifyPartyDBContext(); var party = db.Party .Include(party => party.Users) .Include(party => party.PartyLeader) .Single((p) => p.PartyId == id); Debug.WriteLine(party.Users.ToString()); if (party == null) { return(NotFound()); } return(Ok(party)); }
public IActionResult PostUser([FromBody] JsonElement value) { try { var userName = value.GetProperty("display_name").GetString(); var country = value.GetProperty("country").GetString(); var email = value.GetProperty("email").GetString(); var db = new SpotifyPartyDBContext(); db.User.Add(new User { UserName = userName, Country = country, Email = email }); db.SaveChanges(); return(StatusCode(200)); } catch (Exception e) { return(StatusCode(500, e.Message)); } }
public override async Task OnDisconnectedAsync(Exception exception) { var partyId = Int32.Parse(Context.Items["partyId"].ToString()); var userId = Int32.Parse(Context.Items["userId"].ToString()); var db = new SpotifyPartyDBContext(); var user = db.User.Find(userId); var party = db.Party.Find(partyId); party.Users.Remove(user); db.SaveChanges(); Context.Items.Remove("userId"); Context.Items.Remove("partyId"); await Groups.RemoveFromGroupAsync(Context.ConnectionId, partyId.ToString()); await Clients.Group(partyId.ToString()).SendAsync("UserLeft", JsonSerializer.Serialize(user)); await base.OnDisconnectedAsync(exception); }
public IActionResult PostParty([FromBody] JsonElement value) { try { var partyName = value.GetProperty("name").GetString(); var partySummary = value.GetProperty("summary").GetString(); var userId = value.GetProperty("userId").GetInt32(); var db = new SpotifyPartyDBContext(); var user = db.User.Find(userId); db.Party.Add(new Party { Name = partyName, Summary = partySummary, PartyLeader = user }); db.SaveChanges(); return(StatusCode(200)); } catch (Exception e) { return(StatusCode(500, e.ToString())); } }
public IEnumerable <User> GetUser() { var db = new SpotifyPartyDBContext(); return(db.User.ToList()); }
public void PutParty(uint id, [FromBody] JsonElement value) { var db = new SpotifyPartyDBContext(); }