コード例 #1
0
        public static void MoveOwnersOfGameOverToNewOwnershipSystem()
        {
            var dc = new ManagementContext();
            var gameDb = (from xx in dc.Games
                          select xx).ToList();

            foreach (var game in gameDb)
            {
                if (game.OwnerOfGame != null)
                {
                    GameMemberOwnership owner = new GameMemberOwnership();
                    owner.Game = game;
                    owner.Member = game.OwnerOfGame;
                    owner.OwnerType = Convert.ToInt32(GameOwnerEnum.Owner);
                    game.MemberOwners.Add(owner);
                }
                if (game.FederationOwner != null)
                {
                    GameFederationOwnership owner = new GameFederationOwnership();
                    owner.Game = game;
                    owner.Federation = game.FederationOwner;
                    owner.OwnerType = Convert.ToInt32(GameOwnerEnum.Owner);
                    game.FederationOwners.Add(owner);
                }
            }
            dc.SaveChanges();
        }
コード例 #2
0
        /// <summary>
        /// updates the game from the management view
        /// Currently updates game name, date, and its members.
        /// </summary>
        /// <param name="game"></param>
        public static bool UpdateGameFromManagement(Game game)
        {
            try
            {
                var dc = new ManagementContext();
                var gameDb = (from xx in dc.Games
                              where xx.GameId == game.GameId
                              where xx.IdForOnlineManagementUse == game.PrivateKeyForGame
                              select xx).FirstOrDefault();
                if (gameDb != null)
                {
                    gameDb.ScoreboardType = Convert.ToInt32(ScoreboardModeEnum.Live);
                    gameDb.GameDate = game.GameDate;
                    gameDb.GameName = game.GameName;
                    gameDb.EmbededVideoHtml = game.EmbededVideoString;
                    gameDb.IsThereVideoOfGame = Convert.ToInt32(game.IsThereVideoOfGame);
                    gameDb.StreamingUrlOfVideo = game.StreamingUrlSilverlight;
                    gameDb.StreamingUrlOfVideoMobile = game.StreamingMobileUrlSilverlight;
                    if (game.SelectedPaywall > 0)
                        gameDb.Paywall = dc.Paywalls.Where(x => x.PaywallId == game.SelectedPaywall).FirstOrDefault();
                    else
                        gameDb.Paywall = null;
                    //iterating through all memebers in DB
                    foreach (var team in gameDb.GameTeams)
                    {
                        foreach (var memDb in team.GameMembers)
                        {
                            //finding the member in local game
                            var mem = game.MembersOfGame.Where(x => x.MemberId == memDb.GameMemberId).FirstOrDefault();
                            //if we find member in local game, we can set the member link, otherwise we set it to nothing.
                            if (mem != null)
                            {
                                //if the member id is not the same as it is in the DB.
                                if (mem.MemberLinkId != memDb.MemberLinkId)
                                {
                                    //gets the user from the members table.
                                    var memberUser = dc.Members.Where(x => x.MemberId == mem.MemberLinkId).FirstOrDefault();
                                    //if member exists, we need to find user.
                                    if (memberUser != null)
                                    {
                                        //finds user to email.
                                        var userAccount = System.Web.Security.Membership.GetUser((object)memberUser.AspNetUserId);
                                        if (userAccount != null)
                                        {
                                            //collects the data to email the user.
                                            var emailData = new Dictionary<string, string>
                                        {
                                            { "derbyname", memberUser.DerbyName }, 
                                            { "email", userAccount.Email },
                                            { "gamename", game.GameName},
                                            { "link", "http://rdnation.com/roller-derby-game/" + game.GameId.ToString().Replace("-","")+"/"+ RDN.Utilities.Strings.StringExt.ToSearchEngineFriendly(game.GameName) +"/"+ RDN.Utilities.Strings.StringExt.ToSearchEngineFriendly(game.Team1Name) +"/"+RDN.Utilities.Strings.StringExt.ToSearchEngineFriendly(game.Team2Name)  }
                                        };
                                            EmailServer.EmailServer.SendEmail(ServerConfig.DEFAULT_EMAIL, ServerConfig.DEFAULT_EMAIL_FROM_NAME, userAccount.Email, EmailServer.EmailServer.DEFAULT_SUBJECT + " Added To A Derby Game", emailData, EmailServer.EmailServerLayoutsEnum.AddedToANewGame);
                                        }
                                    }
                                }
                                memDb.MemberLinkId = mem.MemberLinkId;
                            }
                            else
                                memDb.MemberLinkId = new Guid();
                        }
                    }

                    if (!String.IsNullOrEmpty(game.SelectedTournament))
                    {
                        var tourny = dc.GameTournaments.Where(x => x.TournamentId == new Guid(game.SelectedTournament)).FirstOrDefault();
                        if (game.PassCodeEnteredForTournament == tourny.TournamentPasscode)
                        {
                            tourny.Games.Add(gameDb);
                        }
                    }
                    else
                        gameDb.GameTournament = null;
                    if (!String.IsNullOrEmpty(game.SelectedShop))
                    {
                        gameDb.SelectedShop = dc.Merchants.Where(x => x.MerchantId == new Guid(game.SelectedShop)).FirstOrDefault();
                    }
                    else
                        gameDb.SelectedShop = null;

                    foreach (var mem in game.MemberOwners)
                    {
                        if (mem.MemberId != new Guid())
                        {
                            var member = gameDb.MemberOwners.Where(x => x.Member.MemberId == mem.MemberId).FirstOrDefault();
                            if (member == null)
                            {
                                var memDb = dc.Members.Where(x => x.MemberId == mem.MemberId).FirstOrDefault();
                                if (memDb != null)
                                {
                                    GameMemberOwnership m = new GameMemberOwnership();
                                    m.Game = gameDb;
                                    m.Member = memDb;
                                    m.OwnerType = Convert.ToInt32(GameOwnerEnum.Manager);
                                    gameDb.MemberOwners.Add(m);

                                    if (memDb.AspNetUserId != new Guid())
                                    {
                                        var user = System.Web.Security.Membership.GetUser((object)memDb.AspNetUserId);
                                        EmailAccountAddedToManageDerbyGame(gameDb, memDb.DerbyName, user.Email);
                                    }
                                }
                            }
                        }
                    }
                    foreach (var mem in game.FederationOwners)
                    {
                        if (mem.FederationId != new Guid())
                        {
                            var member = gameDb.FederationOwners.Where(x => x.Federation.FederationId == mem.FederationId).FirstOrDefault();
                            if (member == null)
                            {
                                var memDb = dc.Federations.Where(x => x.FederationId == mem.FederationId).FirstOrDefault();
                                if (memDb != null)
                                {
                                    GameFederationOwnership m = new GameFederationOwnership();
                                    m.Game = gameDb;
                                    m.Federation = memDb;
                                    m.OwnerType = Convert.ToInt32(GameOwnerEnum.Manager);
                                    gameDb.FederationOwners.Add(m);
                                    if (memDb.ContactCard != null && memDb.ContactCard.Emails.Count > 0)
                                    {
                                        var emails = memDb.ContactCard.Emails.FirstOrDefault();
                                        EmailAccountAddedToManageDerbyGame(gameDb, memDb.Name, emails.EmailAddress);
                                    }
                                }
                            }
                        }
                    }
                    foreach (var mem in game.LeagueOwners)
                    {
                        if (mem.LeagueId != new Guid())
                        {
                            var member = gameDb.LeagueOwners.Where(x => x.League.LeagueId == mem.LeagueId).FirstOrDefault();
                            if (member == null)
                            {
                                var memDb = dc.Leagues.Where(x => x.LeagueId == mem.LeagueId).FirstOrDefault();
                                if (memDb != null)
                                {
                                    GameLeagueOwnership m = new GameLeagueOwnership();
                                    m.Game = gameDb;
                                    m.League = memDb;
                                    m.OwnerType = Convert.ToInt32(GameOwnerEnum.Manager);
                                    gameDb.LeagueOwners.Add(m);
                                    if (memDb.ContactCard != null && memDb.ContactCard.Emails.Count > 0)
                                    {
                                        var emails = memDb.ContactCard.Emails.FirstOrDefault();
                                        EmailAccountAddedToManageDerbyGame(gameDb, memDb.Name, emails.EmailAddress);
                                    }
                                }
                            }
                        }
                    }


                    int c = dc.SaveChanges();
                    return c > 0;
                }
            }
            catch (Exception exception)
            {
                ErrorDatabaseManager.AddException(exception, exception.GetType(), ErrorGroupEnum.Database);
            }
            return false;
        }
コード例 #3
0
        /// <summary>
        /// gets the game to manage it live.
        /// </summary>
        /// <param name="gameId"></param>
        /// <param name="privatePassCode"></param>
        /// <param name="memberId"></param>
        /// <returns></returns>
        public static Game GetGameForManagement(Guid gameId, Guid privatePassCode, Guid memberId)
        {
            try
            {
                var dc = new ManagementContext();
                var game = (from xx in dc.Games
                            where xx.GameId == gameId
                            where xx.IdForOnlineManagementUse == privatePassCode
                            select xx).FirstOrDefault();
                if (game != null)
                {
                    if (game.MemberOwners.Count == 0)
                    {
                        var mem = dc.Members.Where(x => x.MemberId == memberId).FirstOrDefault();
                        if (mem != null)
                        {
                            GameMemberOwnership owner = new GameMemberOwnership();
                            owner.Game = game;
                            owner.Member = mem;
                            owner.OwnerType = Convert.ToInt32(GameOwnerEnum.Owner);
                            game.MemberOwners.Add(owner);
                            dc.SaveChanges();
                        }
                    }
                    return DisplayGame(game);


                }
            }
            catch (Exception exception)
            {
                ErrorDatabaseManager.AddException(exception, exception.GetType(), ErrorGroupEnum.Database);
            }
            return null;
        }