private async Task UpdateUser(PlacedBet firstUserBet, int point, int place, BetUser user) { var placement = new FinishedBetPlacement { BetUserId = firstUserBet.BetUserId, BetId = firstUserBet.BetId, Place = place }; if (user.Placements == null) { user.Placements = new List <FinishedBetPlacement> { placement } } ; else { user.Placements.Add(placement); } user.Points += point; await _userBetRepository.UpdateUser(user); }
public async Task UpdatePlacedBet(PlacedBet userBet) { var entity = await _set.FindAsync(userBet.Id); if (entity != null) { _context.Entry(entity).CurrentValues.SetValues(userBet); await _context.SaveChangesAsync(); } }
public async Task AddPlacedBet(PlacedBet userBet) { try { _set.Add(userBet); await _context.SaveChangesAsync(); } catch (Exception e) { var s = e; } }
public async Task Bet(string shortName, string price) { var user = Context.User as SocketGuildUser; var bet = await _betRepository.Getbet(shortName.ToLower().Trim()); if (bet == null) { await ReplyAsync($"Bet Doesn't exist"); return; } if (bet.Date < DateTimeOffset.Now) { await ReplyAsync($"Bet is already finished"); return; } if (bet.Locked < DateTimeOffset.Now) { await ReplyAsync($"Bet is locked"); return; } if (!int.TryParse(price.Trim(), out int priceDTO)) { await ReplyAsync($"Price is incorrect"); return; } var exists = await _placedUserBetRepository.PlacedBetExists(bet.BetId, user.Id); if (exists) { await ReplyAsync($"You can't bet twice"); return; } var userExists = await _betUserRepository.GetBetUser(user.Id); if (userExists == null) { await _betUserRepository.AddBetUser(new BetUser { BetUserId = user.Id, Name = user.Username, Points = 0 }); } var userBet = new PlacedBet { Price = priceDTO, Name = user.Username, BetId = bet.BetId, BetUserId = user.Id, BetPlaced = DateTimeOffset.Now }; await _placedUserBetRepository.AddPlacedBet(userBet); await ReplyAsync($"**{userBet.Name}** | Price: ${priceDTO:#,##0} at {bet.Date.ToString("dd/M/yyyy", CultureInfo.GetCultureInfo("nb-NO"))}"); }
public async Task <bool> MakeBet(int userId, int betResultId, int summa) { var betResultsRepos = GetRepository <BetResult>(); var userService = _serviveFactory.GetUserService(_database); var placedBets = GetRepository <PlacedBet>(); var user = userService.Get(x => x.Id == userId && x.Score >= summa).FirstOrDefault(); if (user == null && user.Score >= summa && summa > 0) { return(false); } var betResult = betResultsRepos.Get(x => x.Id == betResultId).FirstOrDefault(); if (betResult == null) { return(false); } int checkExistPlace = placedBets .Get(x => x.BetResult.BetId == betResult.BetId && x.UserId == userId).Count(); if (checkExistPlace != 0) { return(false); } user.Score -= summa; await userService.Edit(user); var newPlacedBet = new PlacedBet() { BetResultId = betResult.Id, DataPlaced = DateTime.Now, Summa = summa, UserId = user.Id, User = user, BetResult = betResult }; placedBets.Insert(newPlacedBet); await _database.Save(); return(true); }