private void AddRoll(RollTemplate roll) { if (roll.SpotStart == roll.SpotEnd) { throw new Exception("Chain not correct. Cannot create a roll with the same point for start and end"); } if (!_rolls.ContainsKey(roll.MoveCount)) { _rolls.Add(roll.MoveCount, new List <RollTemplate>()); } _rolls[roll.MoveCount].Add(roll); if (!_seenBefore.ContainsKey(roll.SpotStart)) { _seenBefore.Add(roll.SpotStart, new Dictionary <int, HashSet <int> >()); } if (!_seenBefore[roll.SpotStart].ContainsKey(roll.SpotEnd)) { _seenBefore[roll.SpotStart].Add(roll.SpotEnd, new HashSet <int>()); } _seenBefore[roll.SpotStart][roll.SpotEnd].Add(roll.MoveCount); _rollRef.AddRoll( startSpot: roll.SpotStart, dieNum: roll.MoveCount, endSpot: roll.SpotEnd, overshootTurnCount: roll.OvershootTurnCount, overshootCount: roll.OvershootCount, direction: roll.Direction, doesCrossFinish: roll.DoesCrossFinish); }
public IActionResult Post([FromBody] RollTemplate rollTemplate) { Roll roll = new Roll(); // set the dice roll values to the values passed in through the body roll.setDiceNumbers(rollTemplate.diceNumbers); roll.calculateScore(); // create json array to return json format to user JArray diceNumsJson = new JArray(roll.getDiceNumbers()); // create json object to return json format to user var jsonRollObj = new JObject(); jsonRollObj.Add("Score", roll.getScore()); jsonRollObj.Add("DiceNumbers", diceNumsJson); return(Content(jsonRollObj.ToString(), "application/json")); }