Пример #1
0
 public ProfileStructure GetProfile(int id)
 {
     using (var context = new LoLEsportsDbContext())
     {
         using (var dbContextTransaction = context.Database.BeginTransaction())
         {
             try
             {
                 ProfileStructure newProf = new ProfileStructure();
                 Account          acc     = context.Account.Where(x => x.UserId == id).FirstOrDefault();
                 newProf.UserID        = acc.UserId;
                 newProf.UserName      = acc.UserName;
                 newProf.ChampionImage = context.Champion.Where(x => x.ChampionId == acc.ChampionId).Select(y => y.ChampionImage).FirstOrDefault();
                 newProf.error         = 0;
                 dbContextTransaction.Commit();
                 return(newProf);
             }
             catch (Exception)
             {
                 dbContextTransaction.Rollback();
                 ProfileStructure data = new ProfileStructure();
                 data.error   = 1;
                 data.message = "Database could not commit transaction.";
                 return(data);
             }
         }
     }
 }
Пример #2
0
 public DataStructure AddAccount(Account account)
 {
     using (var context = new LoLEsportsDbContext())
     {
         using (var dbContextTransaction = context.Database.BeginTransaction())
         {
             try
             {
                 DataStructure data = new DataStructure();
                 Account       acc  = context.Account.Where(i => i.UserName.Equals(account.UserName)).FirstOrDefault();
                 if (acc != null)
                 {
                     data.error   = 1;
                     data.message = "That username is not available.";
                     return(data);
                 }
                 account.LevelAccess = 3;
                 account.ChampionId  = 1;
                 context.Add(account);
                 context.SaveChanges();
                 dbContextTransaction.Commit();
                 data.error = 0;
                 return(data);
             }
             catch (Exception)
             {
                 dbContextTransaction.Rollback();
                 DataStructure data = new DataStructure();
                 data.error   = 1;
                 data.message = "Database could not commit transaction.";
                 return(data);
             }
         }
     }
 }
Пример #3
0
 public DataStructure DeleteAccount(int id)
 {
     using (var context = new LoLEsportsDbContext())
     {
         using (var dbContextTransaction = context.Database.BeginTransaction())
         {
             try
             {
                 DataStructure data = new DataStructure();
                 Account       acc  = context.Account.Where(i => i.UserId == id).FirstOrDefault();
                 if (acc == null)
                 {
                     data.error   = 1;
                     data.message = "Account does not exist.";
                     return(data);
                 }
                 context.Remove(acc);
                 context.SaveChanges();
                 data.error   = 0;
                 data.message = "Account successfully deleted.";
                 dbContextTransaction.Commit();
                 return(data);
             }
             catch (Exception e)
             {
                 DataStructure data = new DataStructure();
                 data.error   = 1;
                 data.message = e.ToString();
                 dbContextTransaction.Rollback();
                 return(data);
             }
         }
     }
 }
Пример #4
0
 public LoginStructure GetAccount(String user, String password)
 {
     using (var context = new LoLEsportsDbContext())
     {
         using (var dbContextTransaction = context.Database.BeginTransaction())
         {
             try
             {
                 LoginStructure login = new LoginStructure();
                 Account        acc   = context.Account.Where(i => i.UserName.Equals(user) && i.Password.Equals(password)).FirstOrDefault();
                 if (acc == null)
                 {
                     login.error   = 1;
                     login.message = "Invalid username/password combination.";
                     return(login);
                 }
                 login.error         = 0;
                 login.UserID        = acc.UserId;
                 login.ChampionImage = context.Champion.Where(i => i.ChampionId == acc.ChampionId).Select(x => x.ChampionImage).FirstOrDefault();
                 return(login);
             }
             catch (Exception)
             {
                 dbContextTransaction.Rollback();
                 LoginStructure data = new LoginStructure();
                 data.error   = 1;
                 data.message = "Database could not commit transaction.";
                 return(data);
             }
         }
     }
 }
Пример #5
0
        public TeamStructure GetTeam(int TeamId)
        {
            using (var context = new LoLEsportsDbContext())
            {
                using (var dbContextTransaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        TeamStructure data  = new TeamStructure();
                        Coach         coach = context.Coach.Where(i => i.CoachId == context.CompetitorTeamRef.Where(x => x.TeamId == TeamId).Select(m => m.CoachId).FirstOrDefault()).FirstOrDefault();

                        if (coach == null)
                        {
                            data.error   = 1;
                            data.message = "There is no coach available for this team.";
                            return(data);
                        }
                        Person coachPerson = context.Person.Where(i => i.PersonId == coach.PersonId).FirstOrDefault();
                        Team   team        = context.Team.Where(i => i.TeamId == TeamId).FirstOrDefault();
                        data.TeamLogo    = team.TeamLogo;
                        data.TeamName    = team.TeamName;
                        data.TeamPicture = team.TeamPicture;
                        data.TeamId      = TeamId;

                        data.CoachName = coachPerson.PersonName;
                        data.CoachIgn  = coach.CoachIgn;
                        data.ids       = new List <int>();

                        var t = context.CompetitorTeamRef.Where(i => i.TeamId == TeamId).Select(x => x.PlayerId).ToList();
                        t.ForEach(x =>
                        {
                            data.ids.Add(x);
                        });

                        dbContextTransaction.Commit();
                        data.error = 0;
                        return(data);
                    }
                    catch (Exception e)
                    {
                        dbContextTransaction.Rollback();
                        TeamStructure data = new TeamStructure();
                        data.error   = 1;
                        data.message = e.ToString();

                        return(data);
                    }
                }
            }
        }
        public TournamentStructure GetTournament(int id)
        {
            using (var context = new LoLEsportsDbContext())
            {
                using (var dbContextTransaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        TournamentStructure tourney = new TournamentStructure();
                        Tournament          t       = context.Tournament.Where(i => i.TournamentId == id).FirstOrDefault();
                        if (t == null)
                        {
                            tourney.error   = 1;
                            tourney.message = "Tournament does not exist in the database.";
                            return(tourney);
                        }
                        tourney.TournamentName = t.TournamentName;
                        tourney.StartDate      = t.StartDate;
                        tourney.EndDate        = t.EndDate;
                        tourney.Season         = t.Season;
                        PlayerTransaction p = new PlayerTransaction();
                        tourney.MVP = p.GetPlayer(t.Mvpid);
                        Coach c = context.Coach.Where(i => i.CoachId == t.Mvcid).FirstOrDefault();
                        tourney.MVCName = context.Person.Where(i => i.PersonId == c.PersonId).Select(x => x.PersonName).FirstOrDefault();
                        tourney.MVCIgn  = c.CoachIgn;
                        MatchTransaction mt = new MatchTransaction();
                        TeamTransaction  tt = new TeamTransaction();
                        tourney.TournamentBanner = t.TournamentBanner;
                        tourney.Matches          = new List <SimpleMatchStructure>();
                        tourney.Standings        = new List <StandingsStructure>();
                        context.Team.ToList().ForEach((team) =>
                        {
                            StandingsStructure s = new StandingsStructure();
                            s.TeamName           = team.TeamName;
                            s.TeamLogo           = team.TeamPicture;
                            s.TeamId             = team.TeamId;
                            tourney.Standings.Add(s);
                        });
                        context.Match.Where(i => (!i.IsFinals).GetValueOrDefault() && (!i.IsQuarters).GetValueOrDefault() && (!i.IsSemis).GetValueOrDefault() && i.TournamentId == t.TournamentId).OrderBy(o => o.DatePlayed)
                        .ToList().ForEach((match) =>
                        {
                            SimpleMatchStructure sms = new SimpleMatchStructure();
                            sms.MatchId     = match.MatchId;
                            sms.DatePlayed  = match.DatePlayed;
                            sms.WinningTeam = tt.GetTeam(match.WinningTeamId);
                            sms.LosingTeam  = tt.GetTeam(match.LosingTeamId);
                            tourney.Matches.Add(sms);
                            tourney.Standings.Find(l => l.TeamName == sms.WinningTeam.TeamName).Wins++;
                            tourney.Standings.Find(l => l.TeamName == sms.LosingTeam.TeamName).Losses++;
                        });
                        tourney.Playsoffs = new List <SimpleMatchStructure>();
                        context.Match.Where(i => ((i.IsFinals).GetValueOrDefault() == true || (i.IsQuarters).GetValueOrDefault() == true || (i.IsSemis).GetValueOrDefault() == true) && i.TournamentId == t.TournamentId).OrderBy(o => o.DatePlayed)
                        .ToList().ForEach((match) =>
                        {
                            SimpleMatchStructure sms = new SimpleMatchStructure();
                            sms.MatchId     = match.MatchId;
                            sms.DatePlayed  = match.DatePlayed;
                            sms.WinningTeam = tt.GetTeam(match.WinningTeamId);
                            sms.LosingTeam  = tt.GetTeam(match.LosingTeamId);
                            tourney.Playsoffs.Add(sms);
                        });
                        tourney.Standings = tourney.Standings.OrderByDescending(o => o.Wins).ThenBy(x => x.Losses).ToList();


                        dbContextTransaction.Commit();
                        return(tourney);
                    }
                    catch (Exception e)
                    {
                        TournamentStructure tourney = new TournamentStructure();
                        tourney.error   = 1;
                        tourney.message = e.ToString();
                        dbContextTransaction.Rollback();
                        return(tourney);
                    }
                }
            }
        }
Пример #7
0
        public List <Tournament> GetTournaments()
        {
            LoLEsportsDbContext context = new LoLEsportsDbContext();

            return(context.Tournament.ToList());
        }
Пример #8
0
        public List <Team> GetTeams()
        {
            LoLEsportsDbContext context = new LoLEsportsDbContext();

            return(context.Team.ToList());
        }
Пример #9
0
        public List <Champion> GetChampions()
        {
            LoLEsportsDbContext context = new LoLEsportsDbContext();

            return(context.Champion.ToList());
        }
Пример #10
0
        public MatchStructure GetMatch(int id)
        {
            using (var context = new LoLEsportsDbContext())
            {
                using (var dbContextTransaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        MatchStructure match = new MatchStructure();
                        Match          m     = context.Match.Where(i => i.MatchId == id).FirstOrDefault();
                        if (m == null)
                        {
                            match.error   = 1;
                            match.message = "Match does not exist in the database.";
                            return(match);
                        }

                        match.DatePlayed    = m.DatePlayed;
                        match.MatchLocation = m.MatchLocation;
                        match.Duration      = m.Duration;

                        Team            wt = context.Team.Where(i => i.TeamId == m.WinningTeamId).FirstOrDefault();
                        TeamTransaction tt = new TeamTransaction();
                        match.WinningTeam = tt.GetTeam(wt.TeamId);
                        Team lt = context.Team.Where(i => i.TeamId == m.LosingTeamId).FirstOrDefault();
                        match.LosingTeam = tt.GetTeam(lt.TeamId);

                        match.WinningTeamStats = context.PlayerMatchRef.Where(i => i.MatchId == m.MatchId && match.WinningTeam.ids.Contains(i.PlayerId)).OrderBy(o => o.PlayerId).ToList();
                        match.LosingTeamStats  = context.PlayerMatchRef.Where(i => i.MatchId == m.MatchId && match.LosingTeam.ids.Contains(i.PlayerId)).OrderBy(o => o.PlayerId).ToList();

                        match.PlayerNames    = new List <String>();
                        match.ChampionImages = new List <String>();
                        match.ChampionBans   = new List <String>();
                        match.WinningTeamStats.ForEach((player) =>
                        {
                            match.PlayerNames.Add(context.Player.Where(x => player.PlayerId == x.PlayerId).Select(l => l.PlayerIgn).FirstOrDefault());
                            match.ChampionImages.Add(context.Champion.Where(x => player.ChampionPlayedId == x.ChampionId).Select(l => l.ChampionImage).FirstOrDefault());
                            match.ChampionBans.Add(context.Champion.Where(x => player.ChampionBannedId == x.ChampionId).Select(l => l.ChampionImage).FirstOrDefault());
                        });

                        match.PlayerNames2    = new List <String>();
                        match.ChampionImages2 = new List <String>();
                        match.ChampionBans2   = new List <String>();
                        match.LosingTeamStats.ForEach((player) =>
                        {
                            match.PlayerNames2.Add(context.Player.Where(x => player.PlayerId == x.PlayerId).Select(l => l.PlayerIgn).FirstOrDefault());
                            match.ChampionImages2.Add(context.Champion.Where(x => player.ChampionPlayedId == x.ChampionId).Select(l => l.ChampionImage).FirstOrDefault());
                            match.ChampionBans2.Add(context.Champion.Where(x => player.ChampionBannedId == x.ChampionId).Select(l => l.ChampionImage).FirstOrDefault());
                        });

                        Tournament t = context.Tournament.Where(x => x.TournamentId == m.TournamentId).FirstOrDefault();
                        match.TournamentID   = t.TournamentId;
                        match.TournamentName = t.TournamentName;

                        dbContextTransaction.Commit();
                        return(match);
                    }
                    catch (Exception e)
                    {
                        MatchStructure match = new MatchStructure();
                        match.error   = 1;
                        match.message = e.ToString();
                        dbContextTransaction.Rollback();
                        return(match);
                    }
                }
            }
        }
Пример #11
0
        public PlayerStructure GetPlayer(int PlayerId)
        {
            using (var context = new LoLEsportsDbContext())
            {
                using (var dbContextTransaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        PlayerStructure data   = new PlayerStructure();
                        Player          player = context.Player.Where(i => i.PlayerId == PlayerId).FirstOrDefault();
                        if (player == null)
                        {
                            data.error   = 1;
                            data.message = "Player does not exist in the current database.";
                            return(data);
                        }
                        Person person = context.Person.Where(i => i.PersonId == player.PersonId).FirstOrDefault();
                        if (person == null)
                        {
                            data.error   = 1;
                            data.message = "Player does not have an existing PersonID.";
                            return(data);
                        }
                        data.error      = 0;
                        data.Age        = person.Age;
                        data.Biography  = person.Biography;
                        data.Hometown   = person.Hometown;
                        data.PersonName = person.PersonName;
                        data.PlayerID   = player.PlayerId;
                        data.PlayerIGN  = player.PlayerIgn;
                        data.PlayerRole = player.PlayerRole;
                        data.Quote      = player.Quote;
                        data.Salary     = person.Salary;

                        //Calculate scores
                        int TotalKills   = context.PlayerMatchRef.Where(i => i.PlayerId == player.PlayerId).Sum(x => x.PlayerKills);
                        int TotalAssists = context.PlayerMatchRef.Where(i => i.PlayerId == player.PlayerId).Sum(x => x.PlayerAssists);
                        int TotalScore   = context.PlayerMatchRef.Where(i => i.PlayerId == player.PlayerId).Sum(x => x.PlayerScore);
                        int TotalDeaths  = context.PlayerMatchRef.Where(i => i.PlayerId == player.PlayerId).Sum(x => x.PlayerDeaths);

                        player.TotalKills   = TotalKills;
                        player.TotalAssists = TotalAssists;
                        player.TotalScore   = TotalScore;
                        player.TotalDeaths  = TotalDeaths;
                        context.Update(player);
                        context.SaveChanges();

                        data.TotalAssists = TotalAssists;
                        data.TotalDeaths  = TotalDeaths;
                        data.TotalKills   = TotalKills;
                        data.TotalScore   = TotalScore;
                        data.PlayerImage  = player.PlayerImage;

                        int TeamId = context.CompetitorTeamRef.Where(i => i.PlayerId == PlayerId).Select(x => x.TeamId).FirstOrDefault();
                        data.TeamName  = context.Team.Where(i => i.TeamId == TeamId).Select(x => x.TeamName).FirstOrDefault();
                        data.TeamImage = context.Team.Where(i => i.TeamId == TeamId).Select(x => x.TeamLogo).FirstOrDefault();
                        data.TeamID    = TeamId;

                        dbContextTransaction.Commit();
                        return(data);
                    }
                    catch (Exception)
                    {
                        dbContextTransaction.Rollback();
                        PlayerStructure data = new PlayerStructure();
                        data.error   = 1;
                        data.message = "Database could not commit the transaction.";
                        return(data);
                    }
                }
            }
        }