public void SaveChanges() { Dictionary <int, string> colors = new Dictionary <int, string>(); var scope = Program.host.Services.CreateScope(); db = scope.ServiceProvider.GetService <HexaceContext>(); db.Database.OpenConnection(); foreach (var item in db.Fractions) { colors.Add(item.Id, item.Color); } foreach (var cell in Cells) { var updateCell = db.FieldCells.First(c => c.X == cell.x && c.Y == cell.y); if (cell.colorDef == null) { updateCell.FractionDefId = null; } else { updateCell.FractionDefId = colors.First(c => c.Value == cell.colorDef).Key; } updateCell.FractionAttackId = null; updateCell.IsFilled = cell.isFilled; updateCell.IsStroked = false; } db.SaveChanges(); }
public FractionStats(HexaceContext context) { db = context; FractionInfo = new Dictionary <string, FractionScore>(); Dictionary <string, int> fractions = new Dictionary <string, int>() { { "Turquoise", 1 }, { "Burgundy", 2 }, { "Purple", 3 } }; DateTime maxDate = new DateTime(1); foreach (var fractionName in fractions) { FractionInfo.Add(fractionName.Key, null); FractionScore score = null; foreach (var item in db.FractionScores) { if (item.FractionId == fractionName.Value && item.ScoreDatetime >= maxDate) { maxDate = item.ScoreDatetime; score = item; } } FractionInfo[fractionName.Key] = score; } }
public Timer(HexaceContext context) { db = context; UsersLastClicks = new Dictionary <int, double>(); Users = new List <User>(db.Users.ToList()); foreach (var user in Users) { UsersLastClicks.Add(user.Id, Math.Floor(DateTime.UtcNow .Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)) .TotalMilliseconds)); } }
public async void UpdateMessages() { var scope = Program.host.Services.CreateScope(); db = scope.ServiceProvider.GetService <HexaceContext>(); //db.Database.OpenConnection(); for (int i = 1; i < 4; i++) { foreach (var message in Chats[i]) { if (message.Id == 0) { db.ChatMessages.Add(message); await db.SaveChangesAsync(); } } } }
public Chat(HexaceContext context) { db = context; Chats = new Dictionary <int, List <ChatMessage> >(); Users = new List <User>(db.Users.ToList()); for (int i = 1; i < 4; i++) { var fracChat = db.ChatMessages.Where(x => x.FractionId == i); var messages = new List <ChatMessage>(); foreach (var item in fracChat) { messages.Add(item); } Chats.Add(i, messages); } }
public GameModel(HexaceContext context) { db = context; Cells = new List <ObjectCell>(); foreach (var cell in db.FieldCells.ToList()) { string colorDef; if (cell.FractionDefId == 4) { colorDef = null; } else { colorDef = cell.IsFilled ? db.Fractions.First(x => x.Id == cell.FractionDefId).Color : null; } cell.IsStroked = false; cell.FractionAttackId = null; Cells.Add(new ObjectCell(cell.X, cell.Y, cell.IsFilled, cell.IsStroked, null, colorDef)); } }
public async void UpdateStats() { var scope = Program.host.Services.CreateScope(); db = scope.ServiceProvider.GetService <HexaceContext>(); foreach (var item in FractionInfo.Values) { db.Database.OpenConnection(); item.ScoreDatetime = DateTime.Now; db.FractionScores.Add(new FractionScore { AttackAttempts = item.AttackAttempts, DefenseAttempts = item.DefenseAttempts, FractionId = item.FractionId, HexesUnderControl = item.HexesUnderControl, Score = item.Score, SeasonId = item.SeasonId, SuccessfulAttacks = item.SuccessfulAttacks, SuccessfulDefences = item.SuccessfulDefences, ScoreDatetime = DateTime.Now }); } await db.SaveChangesAsync(); }
public ProfileController(HexaceContext context) { db = context; }
public static void CheckForAchievements(int userId, HexaceContext context) { var userAchievements = context.UsersAchievements.Where(ua => ua.UserId == userId); var lockedAchievements = new List <Achievement>(); foreach (var item in context.Achievements.ToList()) { var isLocked = true; foreach (var userAchievement in userAchievements) { if (item.Id == userAchievement.Id) { isLocked = false; } } if (isLocked) { lockedAchievements.Add(item); } } foreach (var item in lockedAchievements) { switch (item.AchievementName.TrimEnd()) { case "Attacker I": if (context.Profiles.First(p => p.UserId == userId).SuccessfulAttacks >= 5) { context.UsersAchievements.Add(new UserAchievement { AchievementGotDatetime = DateTime.Now, AchievementId = item.Id, UserId = userId }); } break; case "Attacker II": if (context.Profiles.First(p => p.UserId == userId).SuccessfulAttacks >= 50) { context.UsersAchievements.Add(new UserAchievement { AchievementGotDatetime = DateTime.Now, AchievementId = item.Id, UserId = userId }); } break; case "Attacker III": if (context.Profiles.First(p => p.UserId == userId).SuccessfulAttacks >= 100) { context.UsersAchievements.Add(new UserAchievement { AchievementGotDatetime = DateTime.Now, AchievementId = item.Id, UserId = userId }); } break; case "Defender I": if (context.Profiles.First(p => p.UserId == userId).SuccessfulDefences >= 10) { context.UsersAchievements.Add(new UserAchievement { AchievementGotDatetime = DateTime.Now, AchievementId = item.Id, UserId = userId }); } break; case "Defender II": if (context.Profiles.First(p => p.UserId == userId).SuccessfulDefences >= 100) { context.UsersAchievements.Add(new UserAchievement { AchievementGotDatetime = DateTime.Now, AchievementId = item.Id, UserId = userId }); } break; case "Defender III": if (context.Profiles.First(p => p.UserId == userId).SuccessfulDefences >= 1000) { context.UsersAchievements.Add(new UserAchievement { AchievementGotDatetime = DateTime.Now, AchievementId = item.Id, UserId = userId }); } break; case "Long-liver": if (DateTime.Now.Subtract(context.Users.First(p => p.Id == userId).RegistrationDate).TotalDays > 365) { context.UsersAchievements.Add(new UserAchievement { AchievementGotDatetime = DateTime.Now, AchievementId = item.Id, UserId = userId }); } break; } } context.SaveChangesAsync(); }
public LeaderboardController(HexaceContext context) { db = context; }
public HomeController(HexaceContext context) { db = context; }