public async Task <IActionResult> Update([FromRoute] int broadcasterId, [FromBody] BankHeistSetting bankHeistSetting) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (broadcasterId != bankHeistSetting.BroadcasterId) { return(BadRequest()); } _context.Entry(bankHeistSetting).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!BankHeistSettingExists(broadcasterId)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <IActionResult> Create([FromBody] BankHeistSetting bankHeistSetting) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.BankHeistSetting.Add(bankHeistSetting); await _context.SaveChangesAsync(); return(CreatedAtAction("Get", new { broadcasterId = bankHeistSetting.BroadcasterId }, bankHeistSetting)); }
public async Task <IActionResult> Get([FromRoute] int broadcasterId) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } BankHeistSetting bankHeistSetting = await _context.BankHeistSetting.SingleOrDefaultAsync(m => m.BroadcasterId == broadcasterId); if (bankHeistSetting == null) { return(NotFound()); } return(Ok(bankHeistSetting)); }
/// <summary> /// Load all of the settings from the database for the bank heist mini-game /// </summary> /// <param name="broadcasterId"></param> public async Task LoadSettings(int broadcasterId, string twitchBotApiLink) { BankHeistSetting bankHeistSetting = await ApiBotRequest.GetExecuteTaskAsync <BankHeistSetting>(twitchBotApiLink + $"bankheistsettings/get/{broadcasterId}"); if (bankHeistSetting == null) { bankHeistSetting = new BankHeistSetting { BroadcasterId = broadcasterId }; bankHeistSetting = await ApiBotRequest.PostExecuteTaskAsync(twitchBotApiLink + $"bankheistsettings/create", bankHeistSetting); } if (bankHeistSetting == null) { throw new Exception("Unable to create initial boss fight settings"); } // refresh arrays and lists NextLevelMessages = new string[4]; Levels = new BankHeistLevel[] { new BankHeistLevel { }, new BankHeistLevel { }, new BankHeistLevel { }, new BankHeistLevel { }, new BankHeistLevel { } }; Payouts = new BankHeistPayout[] { new BankHeistPayout { }, new BankHeistPayout { }, new BankHeistPayout { }, new BankHeistPayout { }, new BankHeistPayout { } }; Robbers = new BlockingCollection <BankRobber>(); // settings Id = bankHeistSetting.Id; CooldownTimePeriodMinutes = bankHeistSetting.CooldownPeriodMin; EntryPeriodSeconds = bankHeistSetting.EntryPeriodSec; EntryMessage = bankHeistSetting.EntryMessage; MaxGamble = bankHeistSetting.MaxGamble; MaxGambleText = bankHeistSetting.MaxGambleText; EntryInstructions = bankHeistSetting.EntryInstructions; CooldownEntry = bankHeistSetting.CooldownEntry; CooldownOver = bankHeistSetting.CooldownOver; // next level messages NextLevelMessages[0] = bankHeistSetting.NextLevelMessage2; NextLevelMessages[1] = bankHeistSetting.NextLevelMessage3; NextLevelMessages[2] = bankHeistSetting.NextLevelMessage4; NextLevelMessages[3] = bankHeistSetting.NextLevelMessage5; // game outcomes GameStart = bankHeistSetting.GameStart; ResultsMessage = bankHeistSetting.ResultsMessage; SingleUserSuccess = bankHeistSetting.SingleUserSuccess; SingleUserFail = bankHeistSetting.SingleUserFail; Success100 = bankHeistSetting.Success100; Success34 = bankHeistSetting.Success34; Success1 = bankHeistSetting.Success1; Success0 = bankHeistSetting.Success0; // game levels Levels[0].LevelBankName = bankHeistSetting.LevelName1; Levels[0].MaxUsers = bankHeistSetting.LevelMaxUsers1; Levels[1].LevelBankName = bankHeistSetting.LevelName2; Levels[1].MaxUsers = bankHeistSetting.LevelMaxUsers2; Levels[2].LevelBankName = bankHeistSetting.LevelName3; Levels[2].MaxUsers = bankHeistSetting.LevelMaxUsers3; Levels[3].LevelBankName = bankHeistSetting.LevelName4; Levels[3].MaxUsers = bankHeistSetting.LevelMaxUsers4; Levels[4].LevelBankName = bankHeistSetting.LevelName5; Levels[4].MaxUsers = bankHeistSetting.LevelMaxUsers5; // payout Payouts[0].SuccessRate = bankHeistSetting.PayoutSuccessRate1; Payouts[0].WinMultiplier = bankHeistSetting.PayoutMultiplier1; Payouts[1].SuccessRate = bankHeistSetting.PayoutSuccessRate2; Payouts[1].WinMultiplier = bankHeistSetting.PayoutMultiplier2; Payouts[2].SuccessRate = bankHeistSetting.PayoutSuccessRate3; Payouts[2].WinMultiplier = bankHeistSetting.PayoutMultiplier3; Payouts[3].SuccessRate = bankHeistSetting.PayoutSuccessRate4; Payouts[3].WinMultiplier = bankHeistSetting.PayoutMultiplier4; Payouts[4].SuccessRate = bankHeistSetting.PayoutSuccessRate5; Payouts[4].WinMultiplier = bankHeistSetting.PayoutMultiplier5; }