public List<Tuple<Theme, bool>> GetAll(Guest guest) { try { List<string> columnNames = new List<string> (); columnNames.Add ("guestId"); columnNames.Add ("themeId"); columnNames.Add ("likeValue"); StatementValue where = new StatementValue () { Item1 = "guestId = @StatementValue0", Item2 = new List<string>(new string[]{guest.Id.ToString()}) }; List<List<string>> result = this.Select (columnNames, where); List<Tuple<Theme, bool>> objs = new List<Tuple<Theme, bool>> (); List<Theme> themes = (new ThemesTable (this.entity)).GetAll (); for (int i = 0; i < result[0].Count; i++) { Theme theme = themes.Find (thme => thme.Id == int.Parse (result [1] [i])); bool like = bool.Parse (result [2] [i]); objs.Add (new Tuple<Theme, bool> (theme, like)); } return objs; } catch (MySqlException ex) { switch (ex.Number) { case 0: throw new DatabaseException ("Cannot connect to server. Contact administrator", ex); case 1045: throw new DatabaseException ("Invalid username/password, please try again", ex); default: throw new DatabaseException (ex.Message, ex); } } }
/// <summary> /// Adds a guest to the database and also adds it's likes and dislikes. /// </summary> /// <param name="guest">The Guest.</param> public void Add(Guest guest, Game game) { try { List<ColumnValue> columns = new List<ColumnValue> (); columns.Add (new ColumnValue () { Item1 = "name", Item2 = guest.Name }); columns.Add (new ColumnValue () { Item1 = "avatarId", Item2 = guest.AvatarId.ToString() }); columns.Add (new ColumnValue () { Item1 = "gameId", Item2 = game.Id.ToString() }); guest.Id = (int)this.Insert (columns).LastInsertedId; LikesTable likesTable = new LikesTable (this.entity); foreach (Theme theme in guest.Likes) { likesTable.AddLike (guest, theme, true); } foreach (Theme theme in guest.Dislikes) { likesTable.AddLike (guest, theme, false); } } catch (MySqlException ex) { switch (ex.Number) { case 0: throw new DatabaseException ("Cannot connect to server. Contact administrator", ex); case 1045: throw new DatabaseException ("Invalid username/password, please try again", ex); default: throw new DatabaseException (ex.Message, ex); } } }
public Player(int id, Guest guest, float budget, bool inUse, int colorId, float time, bool wasUsed, int itemsReturned) : this(id, guest) { this.Budget = budget; this.InUse = inUse; this.ColorId = colorId; this.Time = time; this.WasUsed = wasUsed; this.ItemsReturned = itemsReturned; }
public void Delete(Guest obj) { try { StatementValue where = new StatementValue (); where.Item1 = "id = @StatementValue0"; where.Item2 = new List<string> (); where.Item2.Add (obj.Id.ToString ()); this.Delete (where); } catch (MySqlException ex) { switch (ex.Number) { case 0: throw new DatabaseException ("Cannot connect to server. Contact administrator", ex); case 1045: throw new DatabaseException ("Invalid username/password, please try again", ex); default: throw new DatabaseException (ex.Message, ex); } } }
public void AddLike(Guest obj, Theme theme, bool like) { try { List<ColumnValue> columns = new List<ColumnValue> (); int likeValue = like ? 1 : 0; columns.Add (new ColumnValue () { Item1 = "guestId", Item2 = obj.Id.ToString() }); columns.Add (new ColumnValue () { Item1 = "themeId", Item2 = theme.Id.ToString() }); columns.Add (new ColumnValue () { Item1 = "likeValue", Item2 = likeValue.ToString() }); this.Insert (columns); } catch (MySqlException ex) { switch (ex.Number) { case 0: throw new DatabaseException ("Cannot connect to server. Contact administrator", ex); case 1045: throw new DatabaseException ("Invalid username/password, please try again", ex); default: throw new DatabaseException (ex.Message, ex); } } }
public void Save(Guest obj, Theme theme, bool like) { try { List<ColumnValue> columns = new List<ColumnValue> (); int likeValue = like ? 1 : 0; columns.Add (new ColumnValue () { Item1 = "likeValue", Item2 = likeValue.ToString() }); StatementValue where = new StatementValue (); where.Item1 = "guestId = @StatementValue0 AND themeId = @StatementValue1"; where.Item2 = new List<string> (); where.Item2.Add (obj.Id.ToString ()); where.Item2.Add (theme.Id.ToString ()); this.Update (columns, where); } catch (MySqlException ex) { switch (ex.Number) { case 0: throw new DatabaseException ("Cannot connect to server. Contact administrator", ex); case 1045: throw new DatabaseException ("Invalid username/password, please try again", ex); default: throw new DatabaseException (ex.Message, ex); } } }
public Player(int id, Guest guest) : this(guest) { this.Id = id; }
public Player(Guest guest) : this() { this.Guest = guest; }
private Guest CreateGuest(int avatarId, List<Guest> guests) { Guest guest = new Guest(); guest.AvatarId = avatarId; guest.Name = guests.Find(gst => gst.AvatarId == avatarId).Name; return guest; }
private Guest CreateGuest(int avatarId) { Guest guest = new Guest(); guest.AvatarId = avatarId; switch (avatarId) { case 0: guest.Name = "Pedro"; break; case 1: guest.Name = "Leonor"; break; case 2: guest.Name = "Gabriel"; break; case 3: guest.Name = "Gonçalo"; break; case 4: guest.Name = "Mariana"; break; case 5: guest.Name = "Miguel"; break; case 6: guest.Name = "Carolina"; break; case 7: guest.Name = "Margarida"; break; default: guest.Name = string.Empty; break; } return guest; }
public int HappynessPointSum(Guest guest, int[] themesPoints) { int index; int playerPoints = 0; //see if he likes foreach (Theme guestLike in guest.Likes) { index = guestLike.Id - 1; //id of themes start in 1. playerPoints += themesPoints[index]; } //see if he does not like foreach (Theme guestDislike in guest.Dislikes) { index = guestDislike.Id - 1; playerPoints -= themesPoints[index]; } return playerPoints; }
/// <summary> /// Saves the specified guest to the database. /// </summary> /// <remarks> /// Also updates it's likes and dislikes (removing old ones and adding new ones) /// </remarks> /// <param name="guest">The guest.</param> public void Save(Guest guest, Game game) { try { if (guest.Id < 0) { return; } List<ColumnValue> columns = new List<ColumnValue> (); columns.Add (new ColumnValue () { Item1 = "name", Item2 = guest.Name }); columns.Add (new ColumnValue () { Item1 = "avatarId", Item2 = guest.AvatarId.ToString() }); columns.Add (new ColumnValue () { Item1 = "gameId", Item2 = game.Id.ToString() }); StatementValue where = new StatementValue (); where.Item1 = "id = @StatementValue0"; where.Item2 = new List<string> (); where.Item2.Add (guest.Id.ToString ()); this.Update (columns, where); LikesTable likesTable = new LikesTable (this.entity); List<Tuple<Theme, bool>> likes = likesTable.GetAll (guest); // Delete removed likes foreach (Tuple<Theme, bool> like in likes) { if (!guest.Likes.Contains (like.Item1) && !guest.Dislikes.Contains (like.Item1)) { likesTable.Delete (guest, like.Item1); } } // Update likes and add new likes foreach (Theme theme in guest.Likes) { Tuple<Theme, bool> findTheme = likes.Find (thmeLike => thmeLike.Item1.Equals (theme)); if (findTheme == null) { likesTable.AddLike (guest, theme, true); } else { if (!findTheme.Item2) likesTable.Save (guest, theme, true); } } foreach (Theme theme in guest.Dislikes) { Tuple<Theme, bool> findTheme = likes.Find (thmeLike => thmeLike.Item1.Equals (theme)); if (findTheme == null) { likesTable.AddLike (guest, theme, false); } else { if (findTheme.Item2) likesTable.Save (guest, theme, false); } } } catch (MySqlException ex) { switch (ex.Number) { case 0: throw new DatabaseException ("Cannot connect to server. Contact administrator", ex); case 1045: throw new DatabaseException ("Invalid username/password, please try again", ex); default: throw new DatabaseException (ex.Message, ex); } } }