Exemple #1
0
        public async Task <PlaylistDto> CreateNewPlaylist(PlaylistDto dto, Guid sessionId)
        {
            Database.Player currentPlayer = playerStore.GetLoggedPlayer(sessionId);
            if (currentPlayer.PersonnalPlaylists == null)
            {
                currentPlayer.PersonnalPlaylists = new List <Playlist>();
            }
            if (currentPlayer.FavouritePlaylists == null)
            {
                currentPlayer.FavouritePlaylists = new List <PlayerFavouritePlaylist>();
            }

            Playlist newPlaylist = new Database.Playlist
            {
                CreatedBy   = currentPlayer,
                Description = dto.description,
                Name        = dto.name
            };

            currentPlayer.PersonnalPlaylists.Add(newPlaylist);
            dbContext.Update(currentPlayer);
            await dbContext.SaveChangesAsync();

            dto.owner = new Owner {
                display_name = $"{currentPlayer.LastName + currentPlayer.FirstName}"
            };
            dto.id = newPlaylist.Id.ToString();
            playerStore.Refresh(currentPlayer);
            return(dto);
        }
Exemple #2
0
 public Profil(Database.Player player)
 {
     this.id                 = player.Id;
     this.Email              = player.Email;
     this.FirstName          = player.FirstName;
     this.LastName           = player.LastName;
     this.PersonnalPlaylists = player.PersonnalPlaylists;
     this.FavouritePlaylists = player.FavouritePlaylists?.Where(x => x.PlayerId == id)
                               .Select(fp => fp.FavouritePlaylist)
                               .ToList();
     this.SessionId = Guid.NewGuid();
 }
Exemple #3
0
        public async Task <PlaylistsRootObject> GetAllPlaylist(Guid sessionId)
        {
            Database.Player     player             = playerStore.GetLoggedPlayer(sessionId);
            PlaylistsRootObject playlistRootObject = new PlaylistsRootObject();

            playlistRootObject.playlists       = new PlaylistsDto();
            playlistRootObject.playlists.items = player.PersonnalPlaylists.AsQueryable()
                                                 .Select((pp, index) => new PlaylistDto
            {
                id          = pp.Id.ToString(),
                description = pp.Description,
                name        = pp.Name
            }).ToList();

            return(playlistRootObject);
        }
Exemple #4
0
        public LogIn LogNewUser(CredentialDto logDto)
        {
            if (!AllUsersCredential().Any(p => p.CheckCredential(logDto)))
            {
                return(LogIn.Failed);
            }

            Database.Player userDb = dbContext.Players.FirstOrDefault(p => p.Email == logDto.Email);
            if (userDb == null || userDb.Password != logDto.Password)
            {
                return(LogIn.Failed);
            }

            Profil user = new Profil(userDb);

            LoggedUsers.Add(user);
            return(LogIn.Success);
        }
Exemple #5
0
        public void AddPlayer(User u, bool notify = true)
        {
            try
            {
                if (!IsJoining)
                {
                    SendWithQueue(GetLocaleString("NoJoinGameRunning"));
                    return;
                }
                //first check the player hasn't already joined
                if (Players.Any(x => x.Id == u.Id))
                {
                    SendWithQueue(GetLocaleString("AlreadyJoined"));
                    return;
                }

                var p = new IPlayer
                {
                    TeleUser = u,
                    HasPM = false,
                    Name = $"{u.FirstName} {u.LastName}"
                };
                p.Name = p.Name.Trim();
                p.Id = p.TeleUser.Id;
                //if ()
                //{
                //    var dbuser = GetDBPlayer(p);
                //    if (dbuser != null)
                //    {
                //        dbuser.Banned = true;
                //        DB.SaveChanges();
                //        Send(GetLocaleString("BannedForExploit", p.Name));
                //    }
                //}
                if (p.Name.StartsWith("/") || String.IsNullOrEmpty(p.Name) || p.Name.Trim().ToLower() == "skip")
                {
                    SendWithQueue(GetLocaleString("ChangeNameToJoin",
                        String.IsNullOrWhiteSpace(u.Username) ? u.FirstName + " " + u.LastName : "@" + u.Username));
                    return;
                }
                if (Players.Any(x => x.Name == p.Name))
                {
                    SendWithQueue(GetLocaleString("NameExists", p.Name, p.TeleUser.Username));
                    return;
                }
                if (Players.Count >= Settings.MaxPlayers)
                {
                    SendWithQueue(GetLocaleString("PlayerLimitReached"));
                    return;
                }
                Players.Add(p);
                if (!notify) return;

                var msg = GetLocaleString("PlayerJoined", p.Name, Players.Count, Settings.MinPlayers,
                    DbGroup.MaxPlayers ?? Settings.MaxPlayers);
                using (var db = new WWContext())
                {
                    var user = db.Players.FirstOrDefault(x => x.TelegramId == u.Id);
                    if (user == null)
                    {
                        user = new Player
                        {
                            TelegramId = u.Id,
                            HasPM = false
                        };
                        db.Players.Add(user);
                    }

                    user.UserName = u.Username;
                    user.Name = $"{u.FirstName} {u.LastName}".Trim();

                    db.SaveChanges();
                    var botname =
            #if DEBUG
                        "@serastestbot";
            #else
                "@werewolfbot";
            #endif
                    if (user.HasPM != true)
                        msg += Environment.NewLine + GetLocaleString("PMTheBot", p.Name, botname);
                }
                SendWithQueue(msg);
                if (Players.Count == (DbGroup.MaxPlayers ?? Settings.MaxPlayers))
                    KillTimer = true;
            }
            catch (Exception e)
            {
                Console.WriteLine($"Error in AddPlayer: {e.Message}");
            }
        }
 public static void Snack(Item item, Player player)
 {
     player.Needs [1].Meter += item.Amount;
 }
 public static void Drink(Item item, Player player)
 {
     player.Needs [4].Meter += item.Amount;
 }
 public static void Consumable(Item item, Player player)
 {
     if (item.Name == "Drink") Drink(item,player);
     else if (item.Name == "Snack") Snack(item,player);
     else if (item.Name == "Bandage") Bandage(player);
 }
 public static void Bandage(Player player)
 {
     if (player.IsBleeding) player.IsBleeding = false;
 }
Exemple #10
0
 public void Refresh(Database.Player currentPlayer)
 {
     LoggedUsers.Remove(LoggedUsers.Find(x => x.Email == currentPlayer.Email));
     LoggedUsers.Add(new Profil(currentPlayer));
 }