public ActionResult OnPost()
        {
            _authenticatedUser = ClubBaistUsers.GetUserFromUserName(User.Identity.Name);

            if (!ModelState.IsValid)
            {
                return(Page());
            }

            _golferScorecard.Course = Course;
            _golferScorecard.Date   = GameDate;
            _golferScorecard.Rounds = Rounds;

            _golferScorecard.Golfer = (Golfer)_authenticatedUser;

            var result = _requestDirector.RecordPlayerScores(_golferScorecard);

            if (!result)
            {
                return(Page());
            }

            Alert = $"Golfer Score recorded Successfully";
            return(RedirectToPage("Index"));
        }
示例#2
0
        public void OnGet()
        {
            AuthenticatedUser = ClubBaistUsers.GetUserFromUserName(User.Identity.Name);
            SelectedDate      = DateTime.Parse(Request.Query["date"]);
            SelectedTime      = DateTime.Parse(Request.Query["time"]);

            SelectedTeeTime          = _requestDirector.FindTeeTime(SelectedDate, SelectedTime);
            ReservedGolfer1Name      = SelectedTeeTime.Golfer1.FullName;
            ReservedGolfer2Name      = SelectedTeeTime.Golfer2.FullName;
            ReservedGolfer3Name      = SelectedTeeTime.Golfer3.FullName;
            ReservedGolfer4Name      = SelectedTeeTime.Golfer4.FullName;
            ReservedGolfer1CheckedIn = SelectedTeeTime.Golfer1CheckedIn;
            ReservedGolfer2CheckedIn = SelectedTeeTime.Golfer2CheckedIn;
            ReservedGolfer3CheckedIn = SelectedTeeTime.Golfer3CheckedIn;
            ReservedGolfer4CheckedIn = SelectedTeeTime.Golfer4CheckedIn;
        }
示例#3
0
        public decimal CalculatePlayerHandicap(ClubBaistUser authenticatedPlayer)
        {
            using var connection = new SqlConnection(ConnectionString);
            using var command    = new SqlCommand("ViewPlayerHandicap", connection);
            command.CommandType  = CommandType.StoredProcedure;
            command.Parameters.Add("@golferId", SqlDbType.NVarChar).Value = authenticatedPlayer.Id;

            var Rounds = new List <Round>();

            connection.Open();
            var reader = command.ExecuteReader();

            if (reader.HasRows)
            {
                while (reader.Read())
                // Mapping the program Object to Database
                {
                    var roundDbInst = new Round()
                    {
                        Hole   = (int)reader[3],
                        Score  = (int)reader[4],
                        Rating = (decimal)reader[5],
                        Slope  = (decimal)reader[6],
                    };
                    Rounds.Add(roundDbInst);
                }
            }
            reader.Close();

            // Determine Handicap Differentials
            var handicapDifferentials = Rounds.Select(round => ((round.Score - round.Rating) * 113) / round.Slope).ToList();
            // Average it
            var average = handicapDifferentials.Average();

            // Multiply by 0.96
            average *= (decimal)0.96;

            return(Math.Truncate(100 * average) / 100);
        }
示例#4
0
        public ClubBaistUser GetUserFromId(string userId)
        {
            ClubBaistUser clubBaistUser = null;

            using var connection = new SqlConnection(ConnectionString);
            using var command    = new SqlCommand("GetUserNameFromId", connection);
            command.CommandType  = CommandType.StoredProcedure;
            command.Parameters.Add("@userId", SqlDbType.VarChar).Value = userId;

            //Open the connection and execute the reader
            connection.Open();
            var reader = command.ExecuteReader();

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    clubBaistUser = GetUserFromUserName((string)reader[0]);
                }
            }

            reader.Close();
            return(clubBaistUser);
        }
示例#5
0
        public ActionResult OnPost(string submit)
        {
            AuthenticatedUser = ClubBaistUsers.GetUserFromUserName(User.Identity.Name);
            SelectedDate      = DateTime.Parse(Request.Query["date"]);
            SelectedTime      = DateTime.Parse(Request.Query["time"]);

            if (!ModelState.IsValid)
            {
                return(Page());
            }
            var result = false;

            SelectedTeeTime = _requestDirector.FindTeeTime(SelectedDate, SelectedTime);

            SelectedTeeTime.Golfer1.FullName = ReservedGolfer1Name;
            SelectedTeeTime.Golfer2.FullName = ReservedGolfer2Name;
            SelectedTeeTime.Golfer3.FullName = ReservedGolfer3Name;
            SelectedTeeTime.Golfer4.FullName = ReservedGolfer4Name;
            if (IsNullOrEmpty(SelectedTeeTime.BookerId) || SelectedTeeTime.BookerId == " " ||
                SelectedTeeTime.BookerId == "")
            {
                SelectedTeeTime.BookerId = AuthenticatedUser.Id;
            }

            var cancelledGolfers = new List <string>();

            switch (submit)
            {
            case "cancelForGolferOne":
                cancelledGolfers.Add(ReservedGolfer1Name);
                break;

            case "cancelForGolferTwo":
                cancelledGolfers.Add(ReservedGolfer2Name);
                break;

            case "cancelForGolferThree":
                cancelledGolfers.Add(ReservedGolfer3Name);
                break;

            case "cancelForGolferFour":
                cancelledGolfers.Add(ReservedGolfer4Name);
                break;

            case "cancelTeeTime":
                if (!IsNullOrEmpty(ReservedGolfer1Name))
                {
                    cancelledGolfers.Add(ReservedGolfer1Name);
                }
                if (!IsNullOrEmpty(ReservedGolfer2Name))
                {
                    cancelledGolfers.Add(ReservedGolfer2Name);
                }
                if (!IsNullOrEmpty(ReservedGolfer3Name))
                {
                    cancelledGolfers.Add(ReservedGolfer3Name);
                }
                if (!IsNullOrEmpty(ReservedGolfer4Name))
                {
                    cancelledGolfers.Add(ReservedGolfer4Name);
                }
                SelectedTeeTime.BookerId = " ";
                break;

            case "CheckInGolfers":
                SelectedTeeTime.Golfer1CheckedIn = ReservedGolfer1CheckedIn;
                SelectedTeeTime.Golfer2CheckedIn = ReservedGolfer2CheckedIn;
                SelectedTeeTime.Golfer3CheckedIn = ReservedGolfer3CheckedIn;
                SelectedTeeTime.Golfer4CheckedIn = ReservedGolfer4CheckedIn;
                break;
            }

            result = submit switch
            {
                "cancelForGolferOne" => _requestDirector.CancelTeeTime(SelectedTeeTime, cancelledGolfers),
                "cancelForGolferTwo" => _requestDirector.CancelTeeTime(SelectedTeeTime, cancelledGolfers),
                "cancelForGolferThree" => _requestDirector.CancelTeeTime(SelectedTeeTime, cancelledGolfers),
                "cancelForGolferFour" => _requestDirector.CancelTeeTime(SelectedTeeTime, cancelledGolfers),
                "cancelTeeTime" => _requestDirector.CancelTeeTime(SelectedTeeTime, cancelledGolfers),
                "Add" => _requestDirector.ReserveTeeTime(SelectedTeeTime),
                "CheckInGolfers" => _requestDirector.CheckInGolfers(SelectedTeeTime),
                _ => result
            };

            if (!result)
            {
                return(Page());
            }

            Alert = $"Modified TeeTime for {SelectedDate:dddd, dd MMMM yyyy} at {SelectedTime:hh:mm tt}";
            return(RedirectToPage("ReserveTeeTime"));
        }
示例#6
0
 public DailyTeeSheet FindDailyTeeSheet(DateTime dailyTeeSheetDate, ClubBaistUser authenticatedUser)
 {
     return(_dailyTeeSheetsManager.GetDailyTeeSheet(dailyTeeSheetDate, authenticatedUser));
 }
示例#7
0
 public decimal ViewPlayerHandicap(ClubBaistUser authenticatedPlayer)
 {
     return(_playerScoreManager.CalculatePlayerHandicap(authenticatedPlayer));
 }
 public void OnGet()
 {
     AuthenticatedUser          = ClubBaistUsers.GetUserFromUserName(User.Identity.Name);
     AuthenticatedMemberAccount = _requestDirector.ViewMemberAccount(AuthenticatedUser.Id);
 }
        public DailyTeeSheet GetDailyTeeSheet(DateTime dailyTeeSheetDate, ClubBaistUser authenticatedUser)
        {
            var requestedTeeTimesByDate = new List <TeeTime>();

            using var connection = new SqlConnection(ConnectionString);
            using var command    = new SqlCommand("GetTeeTimesByDate", connection);
            command.CommandType  = CommandType.StoredProcedure;
            command.Parameters.Add("@Date", SqlDbType.VarChar).Value = dailyTeeSheetDate;

            //Open the connection and execute the reader
            connection.Open();
            var reader = command.ExecuteReader();

            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    // Mapping the program Object to Database
                    var teeTimeDbInstance = new TeeTime
                    {
                        Date    = (DateTime)reader[0],
                        Time    = new DateTime(((TimeSpan)reader[1]).Ticks),
                        Golfer1 = !DBNull.Value.Equals(reader[2])
                            ? _userManager.GetUserFromId((string)reader[2])
                            : new Shareholder(),
                        Golfer2 = !DBNull.Value.Equals(reader[3])
                            ? _userManager.GetUserFromId((string)reader[3])
                            :  new Shareholder(),
                        Golfer3 = !DBNull.Value.Equals(reader[4])
                            ? _userManager.GetUserFromId((string)reader[4])
                            :  new Shareholder(),
                        Golfer4 = !DBNull.Value.Equals(reader[5])
                            ? _userManager.GetUserFromId((string)reader[5])
                            : new Shareholder(),
                    };
                    var teeSheetDay = teeTimeDbInstance.Date.DayOfWeek;
                    var teeTime     = teeTimeDbInstance.Time;

                    if (teeSheetDay == DayOfWeek.Saturday || teeSheetDay == DayOfWeek.Sunday)
                    {
                        if (teeTime >= authenticatedUser.weekendHolidayPlayingHoursAfter)
                        {
                            requestedTeeTimesByDate.Add(teeTimeDbInstance);
                        }
                    }
                    else
                    {
                        if (!(authenticatedUser.regularPlayingHoursBefore < teeTime &&
                              authenticatedUser.regularPlayingHoursAfter > teeTime))
                        {
                            requestedTeeTimesByDate.Add(teeTimeDbInstance);
                        }
                    }
                }
            }
            reader.Close();
            return(new DailyTeeSheet(requestedTeeTimesByDate)
            {
                Date = dailyTeeSheetDate
            });
        }