public int GetYear()
        {
            var db    = new BoardSquaresRepository();
            var games = db.Context.Games.Where(r => r.Active).ToList();

            return(games.Any() ? games.Max(r => r.Year) : DateTime.Now.Year);
        }
示例#2
0
        public void HandleRequest()
        {
            var db       = new BoardSquaresRepository();
            var messages = db.AttemptGetEmails(Convert.ToInt32(SelectedRound));

            if (!messages.Any())
            {
                ErrorMessage = "Emails already sent for selcted week";
                IsValid      = false;
                return;
            }
            foreach (var message in messages)
            {
                var mailClient = new SmtpClient
                {
                    Host = "relay-hosting.secureserver.net"
                };
                var mailMessage = new MailMessage
                {
                    From       = new MailAddress("*****@*****.**"),
                    Subject    = message.Subject,
                    Body       = message.Body,
                    IsBodyHtml = true
                };
                mailMessage.To.Add(new MailAddress(message.Email));
                mailClient.Send(mailMessage);
                mailClient.Dispose();
            }
            db.AttemptMarkEmailsSent(messages.FirstOrDefault().BatchID);
            SuccessMessage = messages.Count + " Messages Sent!";
        }
示例#3
0
        public void GetTieBreakerScoringTotalsByRound(List <int> players, int teamId)
        {
            var db       = new BoardSquaresRepository();
            var instring = string.Join(", ", players);

            TieBreakerScoringSummaries = db.Context.Database.SqlQuery(typeof(PlayerScoringSummary), String.Format("select p.*,t.ID AS TieBreakerSort from FP_PlayerTotalsByRoundView p left join FP_UserTeamTieBreakerPlayers t on p.PlayerID = t.PlayerID WHERE p.PlayerID IN ({0}) AND t.UserTeamID = {1} ", instring, teamId)).ToListAsync().Result.Select(r => r as PlayerScoringSummary).OrderBy(r => r.TieBreakerSort).ToList();
        }
        private void Save()
        {
            BoardSquaresRepository db = new BoardSquaresRepository();

            foreach (var player in GetCombinedPlayers())
            {
                var userTeamPlayer = new UserTeamPlayer();
                userTeamPlayer.PlayerID   = player.PlayerID;
                userTeamPlayer.UserTeamID = Entity.UserTeamID;
                db.Context.UserTeamPlayers.Add(userTeamPlayer);
            }
            var tieBreaker1 = new UserTeamTieBreakerPlayers();

            tieBreaker1.PlayerID   = TieBreakerPlayer1.PlayerID;
            tieBreaker1.UserTeamID = Entity.UserTeamID;
            db.Context.TieBreakerPlayers.Add(tieBreaker1);

            var tieBreaker2 = new UserTeamTieBreakerPlayers();

            tieBreaker2.PlayerID   = TieBreakerPlayer2.PlayerID;
            tieBreaker2.UserTeamID = Entity.UserTeamID;
            db.Context.TieBreakerPlayers.Add(tieBreaker2);

            var ut = db.Context.UserTeams.Find(Entity.UserTeamID);

            ut.Complete = true;
            db.Context.SaveChanges();
        }
示例#5
0
        public void GetPlayerScoringTotalsByRound(List <int> players)
        {
            var db       = new BoardSquaresRepository();
            var instring = string.Join(", ", players);

            PlayerScoringSummaries = db.Context.Database.SqlQuery(typeof(PlayerScoringSummary), String.Format("SELECT * FROM FP_PlayerTotalsByRoundView WHERE PlayerID IN ({0}) ", instring)).ToListAsync().Result.Select(r => r as PlayerScoringSummary).OrderByDescending(r => r.PlayerTotal).ToList();
        }
        public void GetUserTeams(int p)
        {
            BoardSquaresRepository db = new BoardSquaresRepository();

            UserTeamList             = db.GetTeamsByUser(p, true);
            IsUserTeamSectionVisible = true;
            IsUsersSectionVisible    = false;
        }
        private void DeleteUser(int p)
        {
            BoardSquaresRepository db = new BoardSquaresRepository();
            User userToDelete         = db.Context.Users.Find(p);

            db.Context.Users.Remove(userToDelete);
            db.Context.SaveChanges();
            GetUsers();
        }
        public void UpdateBalanceDue(int p)
        {
            BoardSquaresRepository db = new BoardSquaresRepository();
            UserTeam team             = db.Context.UserTeams.Find(p);

            team.Balance = 0;
            db.Context.SaveChanges();
            GetUserTeams(team.UserID);
        }
        private void DeleteUserTeam(int p)
        {
            BoardSquaresRepository db = new BoardSquaresRepository();
            UserTeam teamToDelete     = db.Context.UserTeams.Find(p);

            db.Context.UserTeams.Remove(teamToDelete);
            db.Context.SaveChanges();
            GetUserTeams(teamToDelete.UserID);
        }
        private void Delete(int id)
        {
            var db     = new BoardSquaresRepository();
            var entity = db.Context.ScoringPoints.Find(id);

            db.Context.ScoringPoints.Remove(entity);
            db.Context.SaveChanges();
            ViewPlayerScoring(Entity);
        }
        public Dictionary <string, string> GetAvailablePlayers(string playerTeam, string playerPosition)
        {
            if (string.IsNullOrEmpty(playerTeam))
            {
                return(new Dictionary <string, string>());
            }
            BoardSquaresRepository db = new BoardSquaresRepository();

            return(db.GetPlayerDictionaryByTeamAndPosition(playerTeam, playerPosition));
        }
 public ActionResult UpdateAccountInfo(UpdateAccountInfoViewModel viewmodel)
 {
     //var viewmodel = new RegisterViewModel();
     if (viewmodel.Password != null && viewmodel.ConfirmPassword != null)
     {
         BoardSquaresRepository.AttemptPasswordChange(viewmodel.UserID, viewmodel.Password);
     }
     BoardSquaresRepository.AttemptUpdateWeeklyEmails(viewmodel.UserID, viewmodel.WeeklyUpdates);
     //var test = true;
     return(View(viewmodel));
 }
        public async Task <ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var result = BoardSquaresRepository.AttemptRegister(model);
                switch (result)
                {
                case -9:
                    ViewBag.ErrorMessage = "Error when creating user. Please try again later.";
                    return(View(model));

                case -8:
                    ViewBag.ErrorMessage = "An account with specified Email already exists.";
                    return(View(model));

                case -7:
                    ViewBag.ErrorMessage = "Desired User Name already exists. Please try a different one.";
                    return(View(model));

                case -6:
                    ViewBag.ErrorMessage = "Error validating user.";
                    return(View(model));

                case -5:
                    ViewBag.ErrorMessage = "Account Created, but Team Name already exists in game. Please Log in to create a team";
                    return(View(model));

                case -4:
                    ViewBag.ErrorMessage = "Game exists, but is currently full.";
                    return(View(model));

                case -3:
                    ViewBag.ErrorMessage = "Game is Closed.";
                    return(View(model));

                case -2:
                    ViewBag.ErrorMessage = "Game is Inactive.";
                    return(View(model));

                case -1:
                    ViewBag.ErrorMessage = "Game does not exist.";
                    return(View(model));

                default:
                    var user = BoardSquaresRepository.GetAllUsers().FirstOrDefault(u => u.UserName == model.UserName && u.Email == model.Email);
                    BoardSquaresRepository.CreateNewTeam(user.UserID, model.TeamName, model.GameNumber);
                    return(RedirectToAction("Games", "Home"));
                }
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        public void GetUserTeams()
        {
            BoardSquaresRepository db = new BoardSquaresRepository();

            UserTeams = db.GetTeamsByUser(User.UserID, false).OrderByDescending(r => r.Year).ThenByDescending(r => r.CreatedDate).ToList();
            if (UserTeams.Any())
            {
                foreach (var viewModelUserTeam in UserTeams)
                {
                    viewModelUserTeam.Balance = Decimal.Round(viewModelUserTeam.Balance, 2);
                }
            }
        }
        public void GetPlayerScoring()
        {
            var db = new BoardSquaresRepository();

            ScoringEvents = db.Context.Database.SqlQuery(typeof(PlayerScoring),
                                                         String.Format("SELECT * FROM FP_PlayerPointsByRoundView WHERE (PlayerID IN ({0}) OR {0} = 0)AND (RoundID = {1} OR {1} = 0) ", SelectedPlayer, SelectedRound))
                            .ToListAsync()
                            .Result
                            .Select(r => r as PlayerScoring)
                            .OrderBy(r => r.RoundID)
                            .ThenBy(r => r.ScoringEventID)
                            .ToList();
            PlayerSelectionVisible = false;
        }
        private void AddPlayerScoring(int playerId)
        {
            var db = new BoardSquaresRepository();

            foreach (var score in ScoringEventsList.Where(s => s.Value > -1))
            {
                db.CreateNewScoringEvent(playerId, Convert.ToInt32(score.ScoringEventID), Round, score.Value);
            }
            GetScoringsForPlayerPosition();
            ScoringPoints                = GetScoringEventsForPlayer(playerId);
            IsScoringDetailVisible       = true;
            IsPlayerSelectionAreaVisible = false;
            IsNewScoringEventAreaVisible = true;
        }
        public void GetFilteredTeamDetails(int entity)
        {
            var db         = new BoardSquaresRepository();
            var temp       = db.GetUserTeamPlayersByGame(entity);
            var tieBreaker = db.Context.TieBreakerPlayers.Where(r => r.UserTeamID == entity).Select(r => r.PlayerID).ToList();

            var playerList = temp.Select(r => r.PlayerID).ToList();

            GetPlayerScoringTotalsByRound(playerList);
            GetTieBreakerScoringTotalsByRound(tieBreaker);
            IsNewTeamAreaVisible  = false;
            IsTeamDetailVisible   = false;
            IsTeamListAreaVisible = false;
            IsPlayerDetailVisible = true;
        }
示例#18
0
        public void GetFilteredTeamDetails(int entity, string teamName)
        {
            var db         = new BoardSquaresRepository();
            var playerList = db.GetUserTeamPlayersByGame(entity).Select(r => r.PlayerID).ToList();
            var tieBreaker = db.GetTieBreakerPlayers(entity);//db.Context.TieBreakerPlayers.Where(r => r.UserTeamID == entity).Select(r => r.PlayerID).ToList();

            SelectedTeam   = teamName;
            SelectedTeamID = entity;
            //var playerList = temp.Select(r => r.PlayerID).ToList();
            var tiebreakerList = tieBreaker.Select(r => r.PlayerID).ToList();

            //var regularPlayerList = playerList.Where(r => !tiebreakerList.Contains(r)).ToList();
            GetPlayerScoringTotalsByRound(playerList);
            GetTieBreakerScoringTotalsByRound(tiebreakerList, SelectedTeamID);
        }
        public void GetUsers()
        {
            BoardSquaresRepository db = new BoardSquaresRepository();

            UserList = db.GetAllUsers();
            var userTeamList = db.Context.UserTeams.Where(g => g.Balance > 0).ToList();

            foreach (var user in UserList)
            {
                user.BalDue = 0;
                var teams = userTeamList.Where(g => g.UserID == user.UserID).Select(r => r.Balance).ToList();
                if (teams.Any())
                {
                    user.BalDue = Decimal.Round(teams.Sum(r => r), 2);
                }
            }
            UserList = UserList.OrderByDescending(r => r.BalDue).ThenBy(r => r.UserName).ToList();
        }
        //[ValidateAntiForgeryToken]
        public async Task <ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            User applicationUser = new User();
            var  loginResult     = BoardSquaresRepository.AttemptLogin(model.Email, model.Password);

            switch (loginResult)
            {
            case -1:
                ViewBag.ErrorMessage = "No Accounts found with specified Email";
                return(View(model));

            case 0:
                ViewBag.ErrorMessage = "Incorrect Password";
                return(View(model));

            default:
                applicationUser = BoardSquaresRepository.GetUserByID(loginResult);
                break;
            }

            var claims = new[] {
                new Claim(ClaimTypes.Email, applicationUser.Email),
                new Claim(ClaimTypes.NameIdentifier, applicationUser.Email),
                new Claim(ClaimTypes.Name, applicationUser.UserName)
                // can add more claims
            };

            var identity   = new ClaimsIdentity(claims, "ApplicationCookie");
            var roleClaims = new Claim(ClaimTypes.Role, applicationUser.AdminRole ? "Admin" : "User");

            identity.AddClaim(roleClaims);
            var context     = Request.GetOwinContext();
            var authManager = context.Authentication;

            authManager.SignIn(new AuthenticationProperties {
                IsPersistent = true,
            }, identity);
            return(RedirectToAction("Index", "Home"));
        }
        public List <ScoringPoints> GetScoringEventsForPlayer(int playerId)
        {
            var db   = new BoardSquaresRepository();
            var list =
                db.Context.ScoringPoints.Where(s => s.PlayerID == playerId && s.RoundID == Round && s.Year == Year)
                .OrderByDescending(s => s.CreatedDate)
                .ToList();
            var total = 0;

            foreach (var scoringPoint in list)
            {
                scoringPoint.RoundName =
                    RoundsDictionary.First(r => r.Key == scoringPoint.RoundID.ToString()).Value;

                scoringPoint.ScoringEventName =
                    Scorings.FirstOrDefault(k => k.Key == scoringPoint.ScoringEventID.ToString()).Value;
                total += scoringPoint.Points;
            }
            RoundTotal = total;
            return(list);
        }
示例#22
0
        public void GetAllGames(string gameNumber)
        {
            var db    = new BoardSquaresRepository();
            var teams = db.Context.Database.SqlQuery(typeof(TeamScoringByPlayer), String.Format("SELECT a.*, CASE WHEN t.ID IS NULL THEN -1 ELSE t.ID END as TiebreakerSort FROM FP_TeamScoringSummaryByPlayerView a join FP_GameNumbers g on g.GameNumber = a.GameNumber left join FP_UserTeamTieBreakerPlayers t on a.PlayerID = t.PlayerID AND a.UserTeamID = t.UserTeamID WHERE g.Active = 1 AND GETDATE() > g.CloseDate AND a.GameNumber = '{0}' ", gameNumber)).ToListAsync().Result.Select(r => r as TeamScoringByPlayer).GroupBy(r => r.UserTeamID);

            foreach (var team in teams)
            {
                TeamList.Add(new GameSummaryTeam
                {
                    TeamName  = team.First().UserTeamName,
                    TeamTotal = team.Where(r => !r.TieBreakerPlayer).Sum(r => r.TotalPoints),
                    //TieBreakerTotal = team.Where(r => r.TieBreakerPlayer).Sum(r => r.TotalPoints),
                    TeamPlayers       = team.Where(r => !r.TieBreakerPlayer).OrderByDescending(r => r.TotalPoints).ToList(),
                    TieBreakerPlayers = team.Where(r => r.TieBreakerPlayer).OrderBy(r => r.TiebreakerSort).ToList(),
                    TieBreaker1Score  = team.Where(r => r.TieBreakerPlayer).OrderBy(r => r.TiebreakerSort).ToList().First().TotalPoints,
                    TieBreaker2Score  = team.Where(r => r.TieBreakerPlayer).OrderBy(r => r.TiebreakerSort).ToList().Last().TotalPoints,
                });
            }
            TeamList     = TeamList.OrderByDescending(r => r.TeamTotal).ThenByDescending(r => r.TieBreaker1Score).ThenByDescending(r => r.TieBreaker2Score).ToList();
            SelectedGame = gameNumber;
        }
        public async Task <ActionResult> ResetPassword(ResetPasswordViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var user = BoardSquaresRepository.Context.Users.FirstOrDefault(r => r.Email == model.Email);

            if (user == null)
            {
                // Don't reveal that the user does not exist
                return(RedirectToAction("ResetPasswordConfirmation", "Account"));
            }
            var result = BoardSquaresRepository.AttemptPasswordReset(user.UserID, model.Code, model.Password);

            if (result == 1)
            {
                return(RedirectToAction("ResetPasswordConfirmation", "Account"));
            }
            return(View());
        }
示例#24
0
        //[ValidateAntiForgeryToken]
        public async Task <ActionResult> ForgotPassword(ForgotPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = BoardSquaresRepository.Context.Users.FirstOrDefault(r => r.Email == model.Email); //await UserManager.FindByNameAsync(model.Email);
                if (user == null)                                                                            //|| !(await UserManager.IsEmailConfirmedAsync(user.UserID.ToString())))
                {
                    // Don't reveal that the user does not exist or is not confirmed
                    return(View("ForgotPasswordConfirmation"));
                }

                // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
                // Send an email with this link
                string code = Membership.GeneratePassword(25, 8);//await UserManager.GeneratePasswordResetTokenAsync(user.UserID.ToString());
                BoardSquaresRepository.AssignPasswordResetCode(user.UserID, code);
                var callbackUrl = Url.Action("ResetPassword", "Account", new { userId = user.UserID, code = code }, protocol: Request.Url.Scheme);
                var subject     = "Playoff Fantasy - Password Reset Request";
                var message     = "We have received a request to change your password. Please click the 'Reset Password' button below to continue.<br /><br />" +
                                  "<a href=\"" + callbackUrl + "\">Reset Password</a><br /><br />" +
                                  "If you do not wish to change your password at this time, please ignore this email." +
                                  "<br /><br />Thank you!<br />" +
                                  "<a href=\"https://boardsquares.com\">BoardSquares.com</a>";
                var mailClient  = new SmtpClient();
                var mailMessage = new MailMessage
                {
                    From       = new MailAddress("*****@*****.**"),
                    Subject    = subject,
                    Body       = message,
                    IsBodyHtml = true
                };
                mailMessage.To.Add(new MailAddress(model.Email));
                mailClient.Send(mailMessage);
                mailClient.Dispose();
                return(RedirectToAction("ForgotPasswordConfirmation", "Account"));
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
示例#25
0
        public async Task <ActionResult> ResetPassword(ResetPasswordViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var user = BoardSquaresRepository.Context.Users.FirstOrDefault(r => r.Email == model.Email);

            if (user == null)
            {
                // Don't reveal that the user does not exist
                return(RedirectToAction("ResetPasswordConfirmation", "Account"));
            }
            var result = BoardSquaresRepository.AttemptPasswordReset(user.UserID, model.Code, model.Password);

            if (result == 1)
            {
                return(RedirectToAction("ResetPasswordConfirmation", "Account"));
            }

            TempData["Error"] = $"Unable to reset your password. Please use the <a href=\"{Url.Action("ForgotPassword", "Account")}\">Forgot Password</a> page to request a new password reset email.";
            return(View());
        }
示例#26
0
        public void GetTeamDetailsByGame()
        {
            var db = new BoardSquaresRepository();

            foreach (var userGame in UserGames)
            {
                var temp =
                    db.Context.Database.SqlQuery(typeof(TeamScoringSummary),
                                                 String.Format("EXEC FP_GetRankings_Ties @GameNumber = '{0}'", userGame))
                    .ToListAsync()
                    .Result
                    .Select(r => r as TeamScoringSummary)
                    .OrderBy(r => r.tempID)
                    .ThenByDescending(r => r.TieBreakerPoints)
                    .ToList();

                temp.All(p =>
                {
                    p.Amount = Decimal.Round(p.Amount, 2);
                    return(true);
                });
                TeamSummariesList.Add(temp);
            }
        }
示例#27
0
        public ActionResult UpdateAccountInfo(UpdateAccountInfoViewModel viewmodel)
        {
            var didTryPasswordChange  = false;
            var passwordChangeSuccess = false;

            if (viewmodel.Password != null && viewmodel.ConfirmPassword != null)
            {
                didTryPasswordChange = true;
                var result = BoardSquaresRepository.AttemptPasswordChange(viewmodel.UserID, viewmodel.Password);

                passwordChangeSuccess = result == 1;
            }

            BoardSquaresRepository.AttemptUpdateWeeklyEmails(viewmodel.UserID, viewmodel.WeeklyUpdates);

            if (didTryPasswordChange)
            {
                if (passwordChangeSuccess)
                {
                    ViewBag.UpdateAccountInfoMessage   = "Your password and settings have been successfully updated!";
                    ViewBag.UpdateAccountInfoIsSuccess = true;
                }
                else
                {
                    ViewBag.UpdateAccountInfoMessage   = "We were unable to change your password at this time.";
                    ViewBag.UpdateAccountInfoIsSuccess = false;
                }
            }
            else
            {
                ViewBag.UpdateAccountInfoMessage   = "Your settings have been successfully updated!";
                ViewBag.UpdateAccountInfoIsSuccess = true;
            }

            return(View(viewmodel));
        }
        public void GetPlayers()
        {
            var db = new BoardSquaresRepository();

            PlayersDictionary = db.GetPlayerDictionaryByTeamAndPosition(SelectedTeam, "All");
        }
        public void GetTeams()
        {
            var db = new BoardSquaresRepository();

            TeamsDictionary = db.GetAllNFLTeams();
        }
示例#30
0
        public void BuidDropdowns()
        {
            var db = new BoardSquaresRepository();

            db.GetGamesByUser(User.UserID).ForEach(c => GamesDropDown.Add(c, c));
        }