//return a competition with results from the user ID that is provided. public CompetitionWithResult GetCompetitionWithResultFromID(int ID) { using (var context = new DivingCompDbContext()) { CompetitionWithResult cwr = new CompetitionWithResult(); cwr.Comp = GetCompetitionWithUserFromID(ID); //cwr.Results = new List<Result>(); //users = context.Users.Where(u => context.CompetitionUsers.Any(cu => u.ID == cu.UID & cu.CID == comp.ID)).ToList(); //users where id = ( in competition users where cu.UID <-- and cu.cid == comp.id) cwr.Jumps = context.Jumps.Where(jump => context.CompetitionUsers.Any(cu => jump.CUID == cu.ID && cu.CID == cwr.Comp.ID)).Include(j => j.Results).ToList(); foreach (Jump j in cwr.Jumps) { CompetitionUser tmp = context.CompetitionUsers.FirstOrDefault(u => u.ID == j.CUID); j.CUID = tmp.UID; foreach (Result r in j.Results) { r.Jump = null; } } return(cwr); } }
public async Task JoinCompetition(int id, string userId) { var competition = this.competitionsRepository.All().FirstOrDefault(x => x.Id == id); var user = await this.userManager.FindByIdAsync(userId); var CompetitionUser = new CompetitionUser(); CompetitionUser.Competition = competition; CompetitionUser.User = user; if (!joinedRepository.All().Any(x => x.UserId == userId && x.CompetitionId == id)) { competition.JoinedUsers.Add(CompetitionUser); await this.competitionsRepository.SaveChangesAsync(); } }
public static List <CompetitionUser> ReadCompetitionUsers(string query) { List <CompetitionUser> users = new List <CompetitionUser>(); using (DatabaseConnection dbClient = Alias.Server.DatabaseManager.GetConnection()) { using (MySqlDataReader Reader = dbClient.DataReader(query)) { while (Reader.Read()) { CompetitionUser user = new CompetitionUser { Id = Reader.GetInt32("id"), Username = Reader.GetString("username"), Figure = Reader.GetString("look"), Points = Reader.GetInt32("points") }; users.Add(user); } } } return(users); }
public void CreateCompetition(CompetitionWithUser CompInfo, List <Jump> jumps) { var context = new DivingCompDbContext(); context.Database.EnsureCreated(); //create a new competition object to later add tot the database. Competition c = new Competition(); //add provided info to the competition object. c.Name = CompInfo.Name; c.Start = CompInfo.Start; c.Jumps = CompInfo.Jumps; //add it to the database. context.Competitions.Add(c); context.SaveChanges(); List <CompetitionUser> CUIDs = new List <CompetitionUser>(); //for each jumper in the provided information, add to the database and to the competition foreach (User userJumper in CompInfo.Users) { CompetitionUser temp = new CompetitionUser(); temp.CID = c.ID; temp.UID = userJumper.ID; context.CompetitionUsers.Add(temp); context.SaveChanges(); CompetitionUser tmp = new CompetitionUser(); tmp.ID = temp.ID; tmp.UID = temp.UID; CUIDs.Add(tmp); } //for each judge in the provided information, add judge to the competition. foreach (User userJudge in CompInfo.Judges) { CompetitionJudge temp = new CompetitionJudge(); temp.CID = c.ID; temp.UID = userJudge.ID; context.CompetitionJudges.Add(temp); } //aa... List <Jump> orderedJumps = jumps.OrderBy(o => o.CUID).ToList(); int n = 0; for (int i = 0; i < orderedJumps.Count; i++) { if (i % c.Jumps == 0 && i != 0) { n++; } orderedJumps[i].GlobalNumber = orderedJumps[i].Number * (orderedJumps.Count / c.Jumps) + n; } foreach (Jump j in orderedJumps) { Jump temp = new Jump(); for (int i = 0; i < CUIDs.Count; i++) //for all CU stored // CUIDs.ID == compuser.ID, CUIDs.UID == user ID { // currently, j.CUID == compuser.UID but this will be changed to compuser.ID if (CUIDs[i].UID == j.CUID) // this means our jump belongs to this compuser { temp.CUID = CUIDs[i].ID; //here temp.Code = j.Code; temp.Number = j.Number; temp.Height = j.Height; temp.GlobalNumber = j.GlobalNumber; Jump t = JumpHelper.ParseDifficulty(j.Code, j.Height); temp.Name = t.Name; temp.Difficulty = t.Difficulty; context.Jumps.Add(temp); } } } context.SaveChanges(); }