mirror of
https://github.com/jcwimer/wrestlingApp
synced 2026-04-09 15:42:09 +00:00
Moved none database classes out of model folder. Still need to separate classes that are doing too much for bracket_advancement, for placement points, and for swapping wrestlers in pool/bracket.
This commit is contained in:
142
app/services/wrestler_services/pool_bracket_placement_points.rb
Normal file
142
app/services/wrestler_services/pool_bracket_placement_points.rb
Normal file
@@ -0,0 +1,142 @@
|
||||
class PoolBracketPlacementPoints
|
||||
def initialize(wrestler)
|
||||
@wrestler = wrestler
|
||||
@bracket = wrestler.weight.pool_bracket_type
|
||||
end
|
||||
|
||||
def calcPoints
|
||||
@points = 0
|
||||
whilePointsAreZero { @points = finalMatchPoints }
|
||||
if @bracket == "twoPoolsToSemi"
|
||||
whilePointsAreZero { @points = twoPoolsToSemi }
|
||||
end
|
||||
if @bracket == "fourPoolsToQuarter"
|
||||
whilePointsAreZero { @points = fourPoolsToQuarter }
|
||||
end
|
||||
if @bracket == "fourPoolsToSemi"
|
||||
whilePointsAreZero { @points = fourPoolsToSemi }
|
||||
end
|
||||
if @wrestler.weight.wrestlers.size <= 6 && @wrestler.weight.allPoolMatchesFinished(1)
|
||||
whilePointsAreZero { @points = onePool }
|
||||
end
|
||||
return @points
|
||||
end
|
||||
|
||||
def whilePointsAreZero
|
||||
if @points == 0
|
||||
yield
|
||||
end
|
||||
end
|
||||
|
||||
def bracket_position_size(bracket_position_name)
|
||||
@wrestler.allMatches.select{|m| m.bracket_position == bracket_position_name}.size
|
||||
end
|
||||
|
||||
def won_bracket_position_size(bracket_position_name)
|
||||
@wrestler.matchesWon.select{|m| m.bracket_position == bracket_position_name}.size
|
||||
end
|
||||
|
||||
def fourPoolsToQuarter
|
||||
if bracket_position_size("Semis") > 0
|
||||
return fourthPlace
|
||||
end
|
||||
if bracket_position_size("Quarter") > 0
|
||||
return eighthPlace
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
def twoPoolsToSemi
|
||||
if bracket_position_size("Semis") > 0
|
||||
return fourthPlace
|
||||
end
|
||||
if bracket_position_size("Conso Semis") > 0
|
||||
return eighthPlace
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
def fourPoolsToSemi
|
||||
if bracket_position_size("Semis") > 0
|
||||
return fourthPlace
|
||||
end
|
||||
if bracket_position_size("Conso Semis") > 0
|
||||
return eighthPlace
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
def onePool
|
||||
poolOrder = @wrestler.weight.poolOrder(1)
|
||||
if @wrestler == poolOrder.first
|
||||
return firstPlace
|
||||
elsif @wrestler == poolOrder.second
|
||||
return secondPlace
|
||||
elsif @wrestler == poolOrder.third
|
||||
return thirdPlace
|
||||
elsif @wrestler == poolOrder.fourth
|
||||
return fourthPlace
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
def finalMatchPoints
|
||||
if won_bracket_position_size("1/2") > 0
|
||||
return firstPlace
|
||||
end
|
||||
if won_bracket_position_size("3/4") > 0
|
||||
return thirdPlace
|
||||
end
|
||||
if won_bracket_position_size("5/6") > 0
|
||||
return fifthPlace
|
||||
end
|
||||
if won_bracket_position_size("7/8") > 0
|
||||
return seventhPlace
|
||||
end
|
||||
if bracket_position_size("1/2") > 0
|
||||
return secondPlace
|
||||
end
|
||||
if bracket_position_size("3/4") > 0
|
||||
return fourthPlace
|
||||
end
|
||||
if bracket_position_size("5/6") > 0
|
||||
return sixthPlace
|
||||
end
|
||||
if bracket_position_size("7/8") > 0
|
||||
return eighthPlace
|
||||
end
|
||||
return 0
|
||||
end
|
||||
|
||||
def firstPlace
|
||||
16
|
||||
end
|
||||
|
||||
def secondPlace
|
||||
12
|
||||
end
|
||||
|
||||
def thirdPlace
|
||||
10
|
||||
end
|
||||
|
||||
def fourthPlace
|
||||
9
|
||||
end
|
||||
|
||||
def fifthPlace
|
||||
7
|
||||
end
|
||||
|
||||
def sixthPlace
|
||||
6
|
||||
end
|
||||
|
||||
def seventhPlace
|
||||
4
|
||||
end
|
||||
|
||||
def eighthPlace
|
||||
3
|
||||
end
|
||||
end
|
||||
42
app/services/wrestler_services/swap_wrestlers.rb
Normal file
42
app/services/wrestler_services/swap_wrestlers.rb
Normal file
@@ -0,0 +1,42 @@
|
||||
class SwapWrestlers
|
||||
attr_accessor :wrestler1_id, :wrestler2_id
|
||||
|
||||
|
||||
def swapWrestlers(wrestler1_id,wrestler2_id)
|
||||
w1 = Wrestler.find(wrestler1_id)
|
||||
w2 = Wrestler.find(wrestler2_id)
|
||||
|
||||
#placeholder guy
|
||||
w3 = Wrestler.new
|
||||
w3.weight_id = w1.weight_id
|
||||
w3.original_seed = w1.original_seed
|
||||
w3.seed = w1.seed
|
||||
swapWrestlerMatches(w1.allMatches,w1.id,w3.id)
|
||||
|
||||
#Swap wrestler 1 and wrestler 2
|
||||
swapWrestlerMatches(w2.allMatches,w2.id,w1.id)
|
||||
w1.seed = w2.seed
|
||||
|
||||
|
||||
swapWrestlerMatches(w3.allMatches,w3.id,w2.id)
|
||||
w2.seed = w3.seed
|
||||
|
||||
|
||||
w1.save
|
||||
w2.save
|
||||
end
|
||||
|
||||
def swapWrestlerMatches(matchesToSwap,w1_id,w2_id)
|
||||
matchesToSwap.each do |m|
|
||||
if m.bracket_position == "Pool"
|
||||
if m.w1 == w1_id
|
||||
m.w1 = w2_id
|
||||
m.save
|
||||
elsif m.w2 == w1_id
|
||||
m.w2 = w2_id
|
||||
m.save
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user