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); }
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(); }
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); }
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); }
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; }
public void Refresh(Database.Player currentPlayer) { LoggedUsers.Remove(LoggedUsers.Find(x => x.Email == currentPlayer.Email)); LoggedUsers.Add(new Profil(currentPlayer)); }