Esempio n. 1
0
        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);
        }
Esempio n. 8
0
        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));
        }
Esempio n. 11
0
 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));
     }
 }
Esempio n. 12
0
        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()));
     }
 }
Esempio n. 14
0
        public IEnumerable <User> GetUser()
        {
            var db = new SpotifyPartyDBContext();

            return(db.User.ToList());
        }
 public void PutParty(uint id, [FromBody] JsonElement value)
 {
     var db = new SpotifyPartyDBContext();
 }