public async Task <IActionResult> Update([FromRoute] int broadcasterId, [FromBody] BankHeistSettings bankHeistSettings) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (broadcasterId != bankHeistSettings.Broadcaster) { return(BadRequest()); } _context.Entry(bankHeistSettings).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!BankHeistSettingsExists(broadcasterId)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task CreateSettings(int broadcasterId, string twitchBotApiLink) { BankHeistSettings freshSettings = new BankHeistSettings { Broadcaster = broadcasterId }; await LoadSettings(broadcasterId, twitchBotApiLink, await ApiBotRequest.PostExecuteTaskAsync(twitchBotApiLink + $"bankheistsettings/create", freshSettings)); }
public async Task <IActionResult> Create([FromBody] BankHeistSettings bankHeistSettings) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.BankHeistSettings.Add(bankHeistSettings); await _context.SaveChangesAsync(); return(CreatedAtAction("Get", new { broadcasterId = bankHeistSettings.Broadcaster }, bankHeistSettings)); }
public async Task <IActionResult> Get([FromRoute] int broadcasterId) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } BankHeistSettings bankHeistSettings = await _context.BankHeistSettings.SingleOrDefaultAsync(m => m.Broadcaster == broadcasterId); if (bankHeistSettings == null) { return(NotFound()); } return(Ok(bankHeistSettings)); }
/// <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, BankHeistSettings bankHeistSettings = null) { if (bankHeistSettings == null) { bankHeistSettings = await ApiBotRequest.GetExecuteTaskAsync <BankHeistSettings>(twitchBotApiLink + $"bankheistsettings/get/{broadcasterId}"); if (bankHeistSettings == null) { return; // check if settings were loaded successfully, else attempt to create new 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 = bankHeistSettings.Id; CooldownTimePeriodMinutes = bankHeistSettings.CooldownPeriodMin; EntryPeriodSeconds = bankHeistSettings.EntryPeriodSec; EntryMessage = bankHeistSettings.EntryMessage; MaxGamble = bankHeistSettings.MaxGamble; MaxGambleText = bankHeistSettings.MaxGambleText; EntryInstructions = bankHeistSettings.EntryInstructions; CooldownEntry = bankHeistSettings.CooldownEntry; CooldownOver = bankHeistSettings.CooldownOver; // next level messages NextLevelMessages[0] = bankHeistSettings.NextLevelMessage2; NextLevelMessages[1] = bankHeistSettings.NextLevelMessage3; NextLevelMessages[2] = bankHeistSettings.NextLevelMessage4; NextLevelMessages[3] = bankHeistSettings.NextLevelMessage5; // game outcomes GameStart = bankHeistSettings.GameStart; ResultsMessage = bankHeistSettings.ResultsMessage; SingleUserSuccess = bankHeistSettings.SingleUserSuccess; SingleUserFail = bankHeistSettings.SingleUserFail; Success100 = bankHeistSettings.Success100; Success34 = bankHeistSettings.Success34; Success1 = bankHeistSettings.Success1; Success0 = bankHeistSettings.Success0; // game levels Levels[0].LevelBankName = bankHeistSettings.LevelName1; Levels[0].MaxUsers = bankHeistSettings.LevelMaxUsers1; Levels[1].LevelBankName = bankHeistSettings.LevelName2; Levels[1].MaxUsers = bankHeistSettings.LevelMaxUsers2; Levels[2].LevelBankName = bankHeistSettings.LevelName3; Levels[2].MaxUsers = bankHeistSettings.LevelMaxUsers3; Levels[3].LevelBankName = bankHeistSettings.LevelName4; Levels[3].MaxUsers = bankHeistSettings.LevelMaxUsers4; Levels[4].LevelBankName = bankHeistSettings.LevelName5; Levels[4].MaxUsers = bankHeistSettings.LevelMaxUsers5; // payout Payouts[0].SuccessRate = bankHeistSettings.PayoutSuccessRate1; Payouts[0].WinMultiplier = bankHeistSettings.PayoutMultiplier1; Payouts[1].SuccessRate = bankHeistSettings.PayoutSuccessRate2; Payouts[1].WinMultiplier = bankHeistSettings.PayoutMultiplier2; Payouts[2].SuccessRate = bankHeistSettings.PayoutSuccessRate3; Payouts[2].WinMultiplier = bankHeistSettings.PayoutMultiplier3; Payouts[3].SuccessRate = bankHeistSettings.PayoutSuccessRate4; Payouts[3].WinMultiplier = bankHeistSettings.PayoutMultiplier4; Payouts[4].SuccessRate = bankHeistSettings.PayoutSuccessRate5; Payouts[4].WinMultiplier = bankHeistSettings.PayoutMultiplier5; }