示例#1
0
        public static List <Region> GetRegions()
        {
            var ctx     = new CybersportDBEntities();
            var regions = ctx.Regions.ToList();

            return(regions);
        }
示例#2
0
        public static List <Team> GetTeams()
        {
            var ctx   = new CybersportDBEntities();
            var teams = ctx.Teams.Where(t => t.TeamID != Guid.Empty && t.ManagerID != Guid.Empty).ToList();

            return(teams);
        }
示例#3
0
        public static List <Role> GetRoles()
        {
            var ctx   = new CybersportDBEntities();
            var roles = ctx.Roles.ToList();

            return(roles);
        }
示例#4
0
        public static bool IsAlreadyHasATeam(Guid managerID)
        {
            var ctx  = new CybersportDBEntities();
            var test = ctx.Teams.Where(x => x.ManagerID == managerID).ToList();

            return(test.Count() == 0 ? false : true);
        }
示例#5
0
        public static List <Tournament> GetTournaments(Guid orgID)
        {
            var ctx  = new CybersportDBEntities();
            var tour = ctx.Tournaments.Where(t => t.TournamentID != Guid.Empty && t.OrgID == orgID).ToList();

            return(tour);
        }
示例#6
0
        public static bool CheckTeamMember(Guid playerID, Guid teamID)
        {
            var ctx  = new CybersportDBEntities();
            var test = ctx.PlayersInTeams.Where(x => x.PlayerID == playerID && x.TeamID == teamID && x.Finish == null).ToList();

            return(test.Count() == 0 ? false : true);
        }
示例#7
0
        public static Tournament GetSingleTournament(Guid champID)
        {
            var ctx  = new CybersportDBEntities();
            var tour = ctx.Tournaments.FirstOrDefault(t => t.TournamentID == champID);

            return(tour);
        }
示例#8
0
        public static List <Tournament> GetTournaments(Dictionary <string, string> filters)
        {
            string nameF       = filters["Name"];
            int    countTeamsF = Convert.ToInt32(filters["MembersCount"]);
            int    moneyF      = Convert.ToInt32(filters["Money"]);
            var    ctx         = new CybersportDBEntities();

            var champF = ctx.Tournaments.Where(c => (c.Name.Contains(nameF) &&
                                                     c.MembersCount >= countTeamsF &&
                                                     c.Money >= moneyF)).ToList();

            if (filters.ContainsKey("CityID"))
            {
                Guid cityF = new Guid(filters["CityID"]);
                champF = champF.Where(p => p.CityID == cityF).ToList();
            }
            if (filters.ContainsKey("Start"))
            {
                DateTime startF = Convert.ToDateTime(filters["Start"]);
                champF = champF.Where(p => p.Start >= startF).ToList();
            }
            if (filters.ContainsKey("Finish"))
            {
                DateTime finishF = Convert.ToDateTime(filters["Finish"]);
                champF = champF.Where(p => p.Finish <= finishF).ToList();
            }
            return(champF);
        }
示例#9
0
        public static List <Player> GetPlayers(Dictionary <string, string> filters)
        {
            string nameF     = filters["Name"];
            string nicknameF = filters["Nickname"];
            string surnameF  = filters["Surname"];
            int    mapsF     = Convert.ToInt32(filters["PlayedMaps"]);
            int    roundsF   = Convert.ToInt32(filters["PlayedRounds"]);
            int    ratingF   = Convert.ToInt32(filters["Rating"]);
            var    ctx       = new CybersportDBEntities();
            var    playersF  = ctx.Players.Where(p => (p.Name.Contains(nameF) &&
                                                       p.Nickname.Contains(nicknameF) &&
                                                       p.Surname.Contains(surnameF) &&
                                                       p.Rating >= ratingF &&
                                                       p.PlayedMaps >= mapsF &&
                                                       p.PlayedRounds >= roundsF)).ToList();

            if (filters.ContainsKey("Age"))
            {
                int ageF = Convert.ToInt32(filters["Age"]);
                playersF = playersF.Where(p => p.Age == ageF).ToList();
            }
            if (filters.ContainsKey("CountryName"))
            {
                string countryNameF = filters["CountryName"].Trim();
                playersF = playersF.Where(p => p.CountryName.Equals(countryNameF)).ToList();
            }
            return(playersF);
        }
示例#10
0
        public static List <PlayersInTeam> GetFreePlayers(Guid teamID)
        {
            var ctx         = new CybersportDBEntities();
            var freePlayers = ctx.PlayersInTeams.Where(p => (p.TeamID == Guid.Empty || p.TeamID == teamID) && p.Finish == null).ToList();

            return(freePlayers);
        }
示例#11
0
        public static List <Player> GetPlayers()
        {
            var ctx     = new CybersportDBEntities();
            var players = ctx.Players.ToList();

            return(players);
        }
示例#12
0
        public static void CreateCity(City city)
        {
            var ctx = new CybersportDBEntities();

            city.Country = ctx.Countries.ToList().First(c => c.CountryID == city.CountryID);
            ctx.Cities.Add(city);
            ctx.SaveChanges();
        }
示例#13
0
        public static Country GetCountries(int id)
        {
            var     ctx       = new CybersportDBEntities();
            var     countries = ctx.Countries.ToList();
            Country country   = countries.First(c => c.CountryID == id);

            return(country);
        }
示例#14
0
        public static List <PlayersInTeam> GetCareer(Guid playerID)
        {
            var ctx     = new CybersportDBEntities();
            var pitList = ctx.PlayersInTeams
                          .Where(x => x.PlayerID == playerID)
                          .OrderByDescending(x => x.Start).ToList();

            return(pitList);
        }
示例#15
0
        public static Guid GetLastTeam(Guid playerID)
        {
            var           ctx = new CybersportDBEntities();
            PlayersInTeam sc  = (PlayersInTeam)ctx.PlayersInTeams
                                .Where(x => x.PlayerID == playerID && x.Finish == null)
                                .OrderByDescending(x => x.Start).First();

            return(sc.ID);
        }
示例#16
0
        public static void EditPlayer(Player oldPlayer)
        {
            var ctx = new CybersportDBEntities();

            oldPlayer.Country          = ctx.Countries.ToList().First(c => c.CountryID == oldPlayer.CountryID);
            oldPlayer.Role             = ctx.Roles.ToList().First(r => r.RoleID == oldPlayer.RoleID);
            ctx.Entry(oldPlayer).State = System.Data.Entity.EntityState.Modified;
            ctx.SaveChanges();
        }
示例#17
0
        public static void AddSetsInMatch(Set set, MatchesInTournament mit)
        {
            var ctx = new CybersportDBEntities();

            set.SetID               = Guid.NewGuid();
            set.MatchID             = mit.MathID;
            set.MatchesInTournament = ctx.MatchesInTournaments.FirstOrDefault(t => t.MathID == set.MatchID);
            set.Map = ctx.Maps.FirstOrDefault(t => t.MapID == set.MapID);
            ctx.Sets.Add(set);
            ctx.SaveChanges();
        }
示例#18
0
        public static void SetPlayersResults(Team team, int playedRounds)
        {
            var ctx     = new CybersportDBEntities();
            var players = ctx.PlayersInTeams.Where(p => p.TeamID == team.TeamID && p.Finish == null).ToList();

            foreach (PlayersInTeam pit in players)
            {
                pit.Player.PlayedRounds += playedRounds;
                ctx.SaveChanges();
            }
        }
示例#19
0
        public static void CreateTournament(Tournament champ)
        {
            var ctx = new CybersportDBEntities();

            if (ctx.Tournaments.Where(tm => tm.Name == champ.Name).Count() != 0)
            {
                throw new Exception("Уже есть чемпионат с таким названием.");
            }
            champ.City = ctx.Cities.ToList().First(c => c.CityID == champ.CityID);
            ctx.Tournaments.Add(champ);
            ctx.SaveChanges();
        }
示例#20
0
        public static void AddMatchInChamp(MatchesInTournament mit)
        {
            var ctx = new CybersportDBEntities();

            mit.MathID     = Guid.NewGuid();
            mit.Date       = DateTime.Today;
            mit.Tournament = ctx.Tournaments.FirstOrDefault(t => t.TournamentID == mit.TournamentID);
            mit.Team       = ctx.Teams.FirstOrDefault(t => t.TeamID == mit.FirstTeamID);
            mit.Team1      = ctx.Teams.FirstOrDefault(t => t.TeamID == mit.SecondTeamID);
            ctx.MatchesInTournaments.Add(mit);
            ctx.SaveChanges();
        }
示例#21
0
        public static Player FindPlayer(string log, string pass)
        {
            var ctx = new CybersportDBEntities();

            try
            {
                return(ctx.Players.ToList().First(pl => pl.Email == log && pl.Password == pass));
            }
            catch
            {
                return(null);
            }
        }
示例#22
0
        public static void DeleteTeam(Guid id)
        {
            var  ctx        = new CybersportDBEntities();
            Team delTeam    = ctx.Teams.Where(x => x.ManagerID == id).First();
            var  playersIDs = ctx.PlayersInTeams.Where(p => p.TeamID == ctx.Teams.FirstOrDefault(t => t.ManagerID == id).TeamID).Select(s => s.PlayerID);

            foreach (Guid pID in playersIDs)
            {
                AddPlayerInTeam(pID, Guid.Empty, DateTime.Today);
            }
            delTeam.ManagerID = Guid.Empty;
            ctx.SaveChanges();
        }
示例#23
0
        public static void AddParticipant(Guid champID, Guid teamID)
        {
            var         ctx  = new CybersportDBEntities();
            var         tour = ctx.Tournaments.FirstOrDefault(t => t.TournamentID == champID);
            Participant pt   = new Participant();

            pt.TeamID       = teamID;
            pt.Team         = ctx.Teams.ToList().First(t => t.TeamID == teamID);
            pt.TournamentID = champID;
            pt.Place        = 0;
            pt.Money        = 0;
            tour.Participants.Add(pt);
            ctx.SaveChanges();
        }
示例#24
0
        public static void RefreshTeamMembers(List <Guid> newMembersIDs, Guid teamID)
        {
            var ctx            = new CybersportDBEntities();
            var allTeamPlayers = ctx.PlayersInTeams.Where(p => p.TeamID == teamID && p.Finish == null).ToList();

            for (int i = 0; i < allTeamPlayers.Count(); i++)
            {
                var search = newMembersIDs.FirstOrDefault(x => x == allTeamPlayers[i].PlayerID);
                if (search == Guid.Empty)
                {
                    AddPlayerInTeam(allTeamPlayers[i].PlayerID, Guid.Empty, DateTime.Today);
                }
            }
            ctx.SaveChanges();
        }
示例#25
0
        public static string ReturnLatestTeam(Guid id)
        {
            var ctx = new CybersportDBEntities();

            try
            {
                return(ctx.PlayersInTeams
                       .Where(x => x.PlayerID == id && x.Finish == null)
                       .OrderBy(x => x.Finish).First().Team.Name);
            }
            catch
            {
                return("Без команды");
            }
        }
示例#26
0
        public static void CreateTeam(Team team)
        {
            var ctx = new CybersportDBEntities();

            if (ctx.Teams.Where(tm => tm.Name == team.Name).Count() != 0)
            {
                throw new Exception("Уже есть команда с таким названием.");
            }
            team.Wins    = 0;
            team.Draws   = 0;
            team.Defeats = 0;
            team.Rating  = 0;
            team.Region  = ctx.Regions.ToList().First(r => r.RegionID == team.RegionID);
            ctx.Teams.Add(team);
            ctx.SaveChanges();
        }
示例#27
0
        public static void CreateTeam()
        {
            var  ctx = new CybersportDBEntities();
            Team t   = new Team();

            t.TeamID   = Guid.Empty;
            t.Name     = "Без команды";
            t.Wins     = 0;
            t.Draws    = 0;
            t.Defeats  = 0;
            t.Rating   = 0;
            t.RegionID = ctx.Regions.First().RegionID;
            t.Region   = ctx.Regions.ToList().First(r => r.RegionID == t.RegionID);
            ctx.Teams.Add(t);
            ctx.SaveChanges();
        }
示例#28
0
        public static void DeletePlayer(Player player)
        {
            var ctx = new CybersportDBEntities();

            if (player.Role.Role1 == "Администратор")
            {
                throw new Exception("Нельзя удалять единственного администратора!");
            }
            Player delPlayer = new Player
            {
                PlayerID = player.PlayerID
            };

            ctx.Players.Attach(delPlayer);
            ctx.Players.Remove(delPlayer);
            ctx.SaveChanges();
        }
示例#29
0
        public static void EditTournament(Tournament oldChamp)
        {
            var ctx = new CybersportDBEntities();

            oldChamp.City = ctx.Cities.ToList().First(c => c.CityID == oldChamp.CityID);
            Tournament changedChamp = ctx.Tournaments.Where(x => x.TournamentID == oldChamp.TournamentID).First();

            changedChamp.Name             = oldChamp.Name;
            changedChamp.Money            = oldChamp.Money;
            changedChamp.CityID           = oldChamp.CityID;
            changedChamp.City             = oldChamp.City;
            changedChamp.Finish           = oldChamp.Finish;
            changedChamp.Start            = oldChamp.Start;
            changedChamp.MembersCount     = oldChamp.MembersCount;
            ctx.Entry(changedChamp).State = System.Data.Entity.EntityState.Modified;
            ctx.SaveChanges();
        }
示例#30
0
        public static void AddPlayerInTeam(Guid playerID, Guid teamID, DateTime date)
        {
            var  ctx          = new CybersportDBEntities();
            Guid oldValueGuid = GetLastTeam(playerID);

            ctx.PlayersInTeams.First(x => x.ID == oldValueGuid && x.Finish == null).Finish = date;
            PlayersInTeam pit = new PlayersInTeam();

            pit.ID       = Guid.NewGuid();
            pit.PlayerID = playerID;
            pit.TeamID   = teamID;
            pit.Start    = date;
            pit.Team     = ctx.Teams.First(x => x.TeamID == teamID);
            pit.Player   = ctx.Players.First(x => x.PlayerID == playerID);
            ctx.PlayersInTeams.Add(pit);
            ctx.SaveChanges();
        }