Esempio n. 1
0
        internal static Game SaveGame(string sub, DateTime endGame, double latitude, double longitude, string[] clues, int[] user_ids, string photo)
        {
            using (var context = new Database.postgresContext())
            {
                var user = context.User.FirstOrDefault(u => u.Sub == sub);

                if (user == null)
                {
                    throw new Database.UserNotFoundException();
                }

                var game = new Database.Game()
                {
                    CreatorId     = user.Id,
                    Ended         = false,
                    Latitude      = latitude,
                    Longitude     = longitude,
                    Photo         = photo,
                    StartDatetime = DateTime.Now,
                    EndDatetime   = endGame,
                    WinCode       = GenerateRandomCode()
                };

                context.Game.Add(game);

                context.SaveChanges();

                foreach (string clue in clues)
                {
                    Database.Clue c = new Database.Clue();
                    c.GameId = game.Id;
                    c.Text   = clue;
                    context.Clue.Add(c);
                }

                foreach (int user_id in user_ids)
                {
                    var u = context.User.Find(user_id);
                    Database.GameUser gu = new Database.GameUser();
                    gu.GameId = game.Id;
                    gu.UserId = user_id;
                    context.GameUser.Add(gu);
                    CloudMessagingService.GameInvitation(user.Sub, game.Id);
                }

                context.SaveChanges();

                return(ParseGame(game));
            }
        }
Esempio n. 2
0
        internal static Game SaveGame(string sub, Game gameNew)
        {
            using (var context = new Database.postgresContext())
            {
                var user = context.User.First(u => u.Sub == sub);

                var game = new Database.Game()
                {
                    CreatorId     = user.Id,
                    Ended         = false,
                    Latitude      = gameNew.Latitude,
                    Longitude     = gameNew.Longitude,
                    Photo         = gameNew.Photo,
                    StartDatetime = DateTime.Now,
                    EndDatetime   = gameNew.EndDatetime,
                    WinCode       = GenerateRandomCode()
                };

                context.Game.Add(game);

                context.SaveChanges();

                foreach (string clue in gameNew.Clues)
                {
                    Database.Clue c = new Database.Clue();
                    c.GameId = game.Id;
                    c.Text   = clue;
                    context.Clue.Add(c);
                }

                foreach (int user_id in gameNew.UserIds)
                {
                    var u = context.User.Find(user_id);
                    Database.GameUser gu = new Database.GameUser();
                    gu.GameId = game.Id;
                    gu.UserId = user_id;
                    context.GameUser.Add(gu);
                    CloudMessagingService.GameInvitation(user.Sub, game.Id);
                }

                context.SaveChanges();



                return(ParseGame(game));
            }
        }