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(); }
/// <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; }
/// <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; }