/// <summary>
 ///     Called when [search button_ click].
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The <see cref="EventArgs" /> instance containing the event data.</param>
 protected void OnSearchButton_Click(object sender, EventArgs e)
 {
     var userId = this.Users.UserIdSelected;
     Type = RapBattleType.Written;
     switch (this.BattleTypeField.Text)
     {
         case "Audio":
             Type = RapBattleType.Audio;
             break;
         case "Written":
             Type = RapBattleType.Written;
             break;
         case "Video":
             Type = RapBattleType.Video;
             break;
     }
     var userData = new UserData(userId);
     if (Type == RapBattleType.Written && userId != 0 && userId != 1)
     {
         BindUsersBattles(userData.GetUsersWrittenBattles().Cast<RapBattle>().ToList());
     }
     if (Type == RapBattleType.Audio && userId != 0 && userId != 1)
     {
         BindUsersBattles(userData.GetUsersAudioBattles().Cast<RapBattle>().ToList());
     }
 }
 /// <summary>
 ///     Declares the rap battle winner.
 /// </summary>
 /// <param name="user1VotesList">The user1 votes list.</param>
 /// <param name="user2VotesList">The user2 votes list.</param>
 /// <param name="battleType">Type of the battle.</param>
 /// <param name="battleId">The battle identifier.</param>
 /// <param name="user1Id">The user1 identifier.</param>
 /// <param name="user2Id">The user2 identifier.</param>
 /// <returns></returns>
 public static UpdatedRapBattleVote DeclareRapBattleWinner(List<RapBattleVote> user1VotesList,
     List<RapBattleVote> user2VotesList, RapBattleType battleType, int battleId, int user1Id, int user2Id)
 {
     var winnerObject = new UpdatedRapBattleVote();
     if (user1VotesList.Any())
     {
         winnerObject.User1Overall = (float)
             (user1VotesList.Average(x => x.Wordplay) + user1VotesList.Average(x => x.Flow) +
              user1VotesList.Average(x => x.Metaphores) + user1VotesList.Average(x => x.Multis) +
              user1VotesList.Average(x => x.PunchLines))/5;
     }
     else
     {
         winnerObject.User1Overall = 0f;
     }
     if (user2VotesList.Any())
     {
         winnerObject.User2Overall = (float)
             (user2VotesList.Average(x => x.Wordplay) + user2VotesList.Average(x => x.Flow) +
              user2VotesList.Average(x => x.Metaphores) + user2VotesList.Average(x => x.Multis) +
              user2VotesList.Average(x => x.PunchLines))/5;
     }
     else
     {
         winnerObject.User2Overall = 0f;
     }
     if (winnerObject.User1Overall > winnerObject.User2Overall)
     {
         winnerObject.WinnerId = user1Id;
         if (battleType == RapBattleType.Written)
         {
             Db.update_writtenbattle_winner(battleId, user1Id, (float) winnerObject.User1Overall,
                 (float) winnerObject.User2Overall);
         }
         else
         {
             Db.update_audiobattle_winner(battleId, user1Id, (float) winnerObject.User1Overall,
                 (float) winnerObject.User2Overall);
         }
     }
     else if (winnerObject.User2Overall > winnerObject.User1Overall)
     {
         winnerObject.WinnerId = user2Id;
         if (battleType == RapBattleType.Written)
         {
             Db.update_writtenbattle_winner(battleId, user2Id, (float) winnerObject.User1Overall,
                 (float) winnerObject.User2Overall);
         }
         else
         {
             Db.update_audiobattle_winner(battleId, user2Id, (float) winnerObject.User1Overall,
                 (float) winnerObject.User2Overall);
         }
     }
     else //draw
     {
         if (battleType == RapBattleType.Written)
         {
             Db.update_writtenbattle_winner(battleId, null, (float) winnerObject.User1Overall,
                 (float) winnerObject.User2Overall);
         }
         else
         {
             Db.update_audiobattle_winner(battleId, null, (float) winnerObject.User1Overall,
                 (float) winnerObject.User2Overall);
         }
     }
     return winnerObject;
 }