Beispiel #1
0
        public ActionResult Index(int tabletDeviceNumber)
        {
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];

            if (tabletDeviceStatus.RoundNumber > 1)  // Show ranking list only from round 2 onwards
            {
                if (Settings.ShowRanking == 1)
                {
                    RankingList rankingList = new RankingList(tabletDeviceNumber);

                    // Only show the ranking list if it contains something meaningful
                    if (rankingList != null && rankingList.Count != 0 && rankingList[0].ScoreDecimal != 0 && rankingList[0].ScoreDecimal != 50)
                    {
                        ViewData["Header"]        = $"{tabletDeviceStatus.Location} - Round {tabletDeviceStatus.RoundNumber}";
                        ViewData["Title"]         = $"Ranking List - {tabletDeviceStatus.Location}";
                        ViewData["ButtonOptions"] = ButtonOptions.OKEnabled;
                        if (AppData.IsIndividual)
                        {
                            return(View("Individual", rankingList));
                        }
                        else if (rankingList.Exists(x => x.Orientation == "E"))
                        {
                            return(View("TwoWinners", rankingList));
                        }
                        else
                        {
                            return(View("OneWinner", rankingList));
                        }
                    }
                }
            }
            return(RedirectToAction("Index", "ShowMove", new { tabletDeviceNumber, newRoundNumber = tabletDeviceStatus.RoundNumber + 1 }));
        }
Beispiel #2
0
        public ActionResult Final(int tabletDeviceNumber)
        {
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];
            RankingList        rankingList        = new RankingList(tabletDeviceNumber);

            // Only show the ranking list if it contains something meaningful
            if (rankingList == null || rankingList.Count == 0 || rankingList[0].ScoreDecimal == 0 || rankingList[0].ScoreDecimal == 50)
            {
                return(RedirectToAction("Index", "EndScreen", new { tabletDeviceNumber }));
            }
            else
            {
                rankingList.FinalRankingList = true;
                ViewData["Header"]           = $"Table {tabletDeviceStatus.Location} - Round {tabletDeviceStatus.RoundNumber}";
                ViewData["Title"]            = $"Final Ranking List - {tabletDeviceStatus.Location}";
                ViewData["ButtonOptions"]    = ButtonOptions.OKEnabled;
                if (AppData.IsIndividual)
                {
                    return(View("Individual", rankingList));
                }
                else if (rankingList.Exists(x => x.Orientation == "E"))
                {
                    return(View("TwoWinners", rankingList));
                }
                else
                {
                    return(View("OneWinner", rankingList));
                }
            }
        }
        public ActionResult OKButtonClick(int tabletDeviceNumber)
        {
            // Only used by ViewOnly view, for tablet device that is not being used for scoring, to check if all results have been entered
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];
            TableStatus        tableStatus        = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber);
            ResultsList        resultsList        = new ResultsList(tabletDeviceNumber, tableStatus);

            if (!resultsList.GotAllResults)
            {
                resultsList.Message = "NOTALLRESULTS";
                if (AppData.IsIndividual)
                {
                    ViewData["Header"] = $"{tabletDeviceStatus.Location} - Round {tableStatus.RoundNumber} - {tableStatus.RoundData.NumberNorth}+{tableStatus.RoundData.NumberSouth} v {tableStatus.RoundData.NumberEast}+{tableStatus.RoundData.NumberWest}";
                }
                else
                {
                    ViewData["Header"] = $"{tabletDeviceStatus.Location} - Round {tableStatus.RoundNumber} - NS {tableStatus.RoundData.NumberNorth} v EW {tableStatus.RoundData.NumberEast}";
                }
                ViewData["ButtonOptions"]      = ButtonOptions.OKEnabled;
                ViewData["Title"]              = $"Show Boards - {tabletDeviceStatus.Location}";
                ViewData["TabletDeviceNumber"] = tabletDeviceNumber;
                return(View("ViewOnly", resultsList));
            }
            else
            {
                return(RedirectToAction("Index", "ShowRankingList", new { tabletDeviceNumber }));
            }
        }
        public ActionResult Index(int tabletDeviceNumber, int boardNumber, bool fromView)
        {
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];
            TableStatus        tableStatus        = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber);
            HandRecord         handRecord         = HandRecords.HandRecordsList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.BoardNumber == boardNumber);

            if (handRecord == null)     // Can't find matching hand record, so use default SectionID = 1
            {
                handRecord = HandRecords.HandRecordsList.Find(x => x.SectionID == 1 && x.BoardNumber == boardNumber);
            }
            handRecord.TabletDeviceNumber = tabletDeviceNumber;
            handRecord.FromView           = fromView;

            ViewData["Title"] = $"Hand Record - {tabletDeviceStatus.Location}";
            if (AppData.IsIndividual)
            {
                ViewData["Header"] = $"{tabletDeviceStatus.Location} - Round {tableStatus.RoundNumber} - {Utilities.ColourPairByVulnerability("NS", boardNumber, $"{tableStatus.RoundData.NumberNorth}+{tableStatus.RoundData.NumberSouth}")} v {Utilities.ColourPairByVulnerability("EW", boardNumber, $"{tableStatus.RoundData.NumberEast}+{tableStatus.RoundData.NumberWest}")}";
            }
            else
            {
                ViewData["Header"] = $"{tabletDeviceStatus.Location} - Round {tableStatus.RoundNumber} - {Utilities.ColourPairByVulnerability("NS", boardNumber, $"NS {tableStatus.RoundData.NumberNorth}")} v {Utilities.ColourPairByVulnerability("EW", boardNumber, $"EW {tableStatus.RoundData.NumberEast}")}";
            }
            ViewData["ButtonOptions"] = ButtonOptions.OKEnabled;
            return(View(handRecord));
        }
        public ActionResult Index(int tabletDeviceNumber)
        {
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];
            TableStatus        tableStatus        = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber);
            ResultsList        resultsList        = new ResultsList(tabletDeviceNumber, tableStatus);

            tableStatus.ResultData = null;  // No board selected yet

            if (AppData.IsIndividual)
            {
                ViewData["Header"] = $"{tabletDeviceStatus.Location} - Round {tableStatus.RoundNumber} - {tableStatus.RoundData.NumberNorth}+{tableStatus.RoundData.NumberSouth} v {tableStatus.RoundData.NumberEast}+{tableStatus.RoundData.NumberWest}";
            }
            else
            {
                ViewData["Header"] = $"{tabletDeviceStatus.Location} - Round {tableStatus.RoundNumber} - NS {tableStatus.RoundData.NumberNorth} v EW {tableStatus.RoundData.NumberEast}";
            }
            ViewData["ButtonOptions"] = ButtonOptions.OKEnabled;
            ViewData["Title"]         = $"Show Boards - {tabletDeviceStatus.Location}";

            if (tabletDeviceStatus.Direction == Direction.North)
            {
                return(View("Scoring", resultsList));
            }
            else
            {
                resultsList.Message = "NOMESSAGE";
                return(View("ViewOnly", resultsList));
            }
        }
        public ActionResult Index(int tabletDeviceNumber, bool showWarning = false)
        {
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];
            TableStatus        tableStatus        = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber);

            if (tabletDeviceStatus.NamesUpdateRequired)
            {
                tableStatus.RoundData.UpdateNames(tableStatus);  // Update names from database if not done very recently
            }

            if (tableStatus.RoundData.GotAllNames && tabletDeviceStatus.RoundNumber > 1 && !Settings.NumberEntryEachRound)
            {
                // Player numbers not needed if all names have already been entered and names are not being updated each round
                tabletDeviceStatus.NamesUpdateRequired = false;  // No round update required in RoundInfo as it's just been done
                return(RedirectToAction("Index", "ShowRoundInfo", new { tabletDeviceNumber }));
            }
            tabletDeviceStatus.NamesUpdateRequired = true;  // We'll now need to update when we get to RoundInfo in case names change in the mean time

            PlayerEntryList playerEntryList = new PlayerEntryList(tabletDeviceNumber, tableStatus);

            playerEntryList.ShowWarning = showWarning;

            ViewData["ButtonOptions"] = ButtonOptions.OKEnabled;
            ViewData["Title"]         = $"Show Player Numbers - {tabletDeviceStatus.Location}";
            ViewData["Header"]        = $"{tabletDeviceStatus.Location} - Round {tabletDeviceStatus.RoundNumber}";

            if (AppData.IsIndividual)
            {
                return(View("Individual", playerEntryList));
            }
            else
            {
                return(View("Pair", playerEntryList));
            }
        }
        public ActionResult ViewResult(int tabletDeviceNumber, int boardNumber)
        {
            // Only used by ViewOnly view, for tablet device that is not being used for scoring, to check if result has been entered for this board
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];
            TableStatus        tableStatus        = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber);
            ResultsList        resultsList        = new ResultsList(tabletDeviceNumber, tableStatus);
            Result             result             = resultsList.Find(x => x.BoardNumber == boardNumber);

            if (result == null || result.ContractLevel < 0)
            {
                resultsList.Message = "NORESULT";
                if (AppData.IsIndividual)
                {
                    ViewData["Header"] = $"{tabletDeviceStatus.Location} - Round {tableStatus.RoundNumber} - {tableStatus.RoundData.NumberNorth}+{tableStatus.RoundData.NumberSouth} v {tableStatus.RoundData.NumberEast}+{tableStatus.RoundData.NumberWest}";
                }
                else
                {
                    ViewData["Header"] = $"{tabletDeviceStatus.Location} - Round {tableStatus.RoundNumber} - NS {tableStatus.RoundData.NumberNorth} v EW {tableStatus.RoundData.NumberEast}";
                }
                ViewData["ButtonOptions"]      = ButtonOptions.OKEnabled;
                ViewData["Title"]              = $"Show Boards - {tabletDeviceStatus.Location}";
                ViewData["TabletDeviceNumber"] = tabletDeviceNumber;
                return(View("ViewOnly", resultsList));
            }
            else
            {
                return(RedirectToAction("Index", "ShowTraveller", new { tabletDeviceNumber, boardNumber, fromView = true }));
            }
        }
Beispiel #8
0
        public ActionResult Index(int tabletDeviceNumber, LeadValidationOptions leadValidation)
        {
            if (!Settings.EnterLeadCard)
            {
                return(RedirectToAction("Index", "EnterTricksTaken", new { tabletDeviceNumber }));
            }

            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];
            TableStatus        tableStatus        = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber);

            if (tableStatus.ResultData.LeadCard == "")  // Lead not set, so use leadValidation value as passed to controller
            {
                tableStatus.ResultData.LeadValidation = leadValidation;
            }
            else  // Lead already set, so must be an edit (ie no validation and no warning)
            {
                tableStatus.ResultData.LeadValidation = LeadValidationOptions.NoWarning;
            }
            ResultInfo resultInfo = new ResultInfo(tabletDeviceNumber, tableStatus);

            if (AppData.IsIndividual)
            {
                ViewData["Header"] = $"{tabletDeviceStatus.Location} - Round {tableStatus.RoundNumber} - {Utilities.ColourPairByVulnerability("NS", tableStatus.ResultData.BoardNumber, $"{tableStatus.RoundData.NumberNorth}+{tableStatus.RoundData.NumberSouth}")} v {Utilities.ColourPairByVulnerability("EW", tableStatus.ResultData.BoardNumber, $"{tableStatus.RoundData.NumberEast}+{tableStatus.RoundData.NumberWest}")}";
            }
            else
            {
                ViewData["Header"] = $"{tabletDeviceStatus.Location} - Round {tableStatus.RoundNumber} - {Utilities.ColourPairByVulnerability("NS", tableStatus.ResultData.BoardNumber, $"NS {tableStatus.RoundData.NumberNorth}")} v {Utilities.ColourPairByVulnerability("EW", tableStatus.ResultData.BoardNumber, $"EW {tableStatus.RoundData.NumberEast}")}";
            }
            ViewData["ButtonOptions"] = ButtonOptions.OKDisabledAndBack;
            ViewData["Title"]         = $"Enter Lead - {tabletDeviceStatus.Location}";
            return(View(resultInfo));
        }
        public ActionResult Index(int tabletDeviceNumber)
        {
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];
            TableStatus        tableStatus        = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber);
            ResultInfo         resultInfo         = new ResultInfo(tabletDeviceNumber, tableStatus);

            if (AppData.IsIndividual)
            {
                ViewData["Header"] = $"{tabletDeviceStatus.Location} - Round {tableStatus.RoundNumber} - {Utilities.ColourPairByVulnerability("NS", tableStatus.ResultData.BoardNumber, $"{tableStatus.RoundData.NumberNorth}+{tableStatus.RoundData.NumberSouth}")} v {Utilities.ColourPairByVulnerability("EW", tableStatus.ResultData.BoardNumber, $"{tableStatus.RoundData.NumberEast}+{tableStatus.RoundData.NumberWest}")}";
            }
            else
            {
                ViewData["Header"] = $"{tabletDeviceStatus.Location} - Round {tableStatus.RoundNumber} - {Utilities.ColourPairByVulnerability("NS", tableStatus.ResultData.BoardNumber, $"NS {tableStatus.RoundData.NumberNorth}")} v {Utilities.ColourPairByVulnerability("EW", tableStatus.ResultData.BoardNumber, $"EW {tableStatus.RoundData.NumberEast}")}";
            }
            ViewData["ButtonOptions"] = ButtonOptions.OKDisabledAndBack;
            ViewData["Title"]         = $"Enter Tricks Taken - {tabletDeviceStatus.Location}";
            if (Settings.EnterResultsMethod == 1)
            {
                return(View("TotalTricks", resultInfo));
            }
            else
            {
                return(View("TricksPlusMinus", resultInfo));
            }
        }
Beispiel #10
0
        public ActionResult OKButtonClick(int tabletDeviceNumber)
        {
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];
            TableStatus        tableStatus        = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber);

            tableStatus.ResultData.UpdateDB(tableStatus);
            return(RedirectToAction("Index", "ShowTraveller", new { tabletDeviceNumber, boardNumber = tableStatus.ResultData.BoardNumber }));
        }
Beispiel #11
0
        public RoundInfo(int tabletDeviceNumber, TableStatus tableStatus)
        {
            TabletDeviceNumber = tabletDeviceNumber;
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];

            RoundNumber = tabletDeviceStatus.RoundNumber;
            RoundData   = tableStatus.RoundData;
        }
Beispiel #12
0
        public SitoutRoundInfo(int tabletDeviceNumber)
        {
            TabletDeviceNumber = tabletDeviceNumber;
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];

            TabletDevicesPerTable = AppData.SectionsList.Find(x => x.SectionID == tabletDeviceStatus.SectionID).TabletDevicesPerTable;
            PairNumber            = tabletDeviceStatus.PairNumber;
            RoundNumber           = tabletDeviceStatus.RoundNumber;
        }
        public ActionResult OKButtonClick(int tabletDeviceNumber, int numTricks)
        {
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];
            Result             result             = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber).ResultData;

            result.TricksTakenNumber = numTricks;
            result.CalculateScore();
            return(RedirectToAction("Index", "ConfirmResult", new { tabletDeviceNumber }));
        }
        public ActionResult Index(int tabletDeviceNumber)
        {
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];

            ViewData["Title"]  = $"Show Round Info - {tabletDeviceStatus.Location}";
            ViewData["Header"] = $"{tabletDeviceStatus.Location}";
            if (tabletDeviceStatus.TableNumber == 0)
            {
                SitoutRoundInfo sitoutRoundInfo = new SitoutRoundInfo(tabletDeviceNumber);
                ViewData["ButtonOptions"] = ButtonOptions.OKEnabled;
                return(View("Sitout", sitoutRoundInfo));
            }

            // Update player names if not just immediately done in ShowPlayerNumbers
            TableStatus tableStatus = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber);

            if (tabletDeviceStatus.NamesUpdateRequired)
            {
                tableStatus.RoundData.UpdateNames(tableStatus);
            }
            tabletDeviceStatus.NamesUpdateRequired = true;

            RoundInfo roundInfo = new RoundInfo(tabletDeviceNumber, tableStatus);
            Section   section   = AppData.SectionsList.Find(x => x.SectionID == tabletDeviceStatus.SectionID);

            if (tableStatus.RoundData.NumberNorth == 0 || tableStatus.RoundData.NumberNorth == section.MissingPair)
            {
                tableStatus.ReadyForNextRoundNorth = true;
                tableStatus.ReadyForNextRoundSouth = true;
                roundInfo.NSMissing = true;
            }
            else if (tableStatus.RoundData.NumberEast == 0 || tableStatus.RoundData.NumberEast == section.MissingPair)
            {
                tableStatus.ReadyForNextRoundEast = true;
                tableStatus.ReadyForNextRoundWest = true;
                roundInfo.EWMissing = true;
            }

            if (tabletDeviceStatus.RoundNumber == 1 || section.TabletDevicesPerTable > 1)
            {
                ViewData["ButtonOptions"] = ButtonOptions.OKEnabled;
            }
            else
            {
                // Back button needed if one tablet device per table, in case EW need to check their move details
                ViewData["ButtonOptions"] = ButtonOptions.OKEnabledAndBack;
            }
            if (AppData.IsIndividual)
            {
                return(View("Individual", roundInfo));
            }
            else
            {
                return(View("Pair", roundInfo));
            }
        }
Beispiel #15
0
        public ActionResult Index(int tabletDeviceNumber)
        {
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];

            ViewData["Header"]             = $"{tabletDeviceStatus.Location}";
            ViewData["Title"]              = $"Show Move - {tabletDeviceStatus.Location}";
            ViewData["ButtonOptions"]      = ButtonOptions.OKEnabled;
            ViewData["TabletDeviceNumber"] = tabletDeviceNumber;
            return(View());
        }
        public ActionResult OKButtonClick(int tabletDeviceNumber, Direction direction, int playerNumber)
        {
            // Update Round with new player
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];
            TableStatus        tableStatus        = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber);

            tableStatus.RoundData.UpdatePlayer(tabletDeviceStatus.SectionID, tabletDeviceStatus.TableNumber, direction, tabletDeviceStatus.RoundNumber, playerNumber);

            return(RedirectToAction("Index", "ShowPlayerNumbers", new { tabletDeviceNumber }));
        }
        public ActionResult BackButtonClick(int tabletDeviceNumber)
        {
            // Only for one tablet device per table.  Reset to the previous round; RoundNumber > 1 else no Back button and cannot get here
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];
            TableStatus        tableStatus        = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber);

            tabletDeviceStatus.RoundNumber--;
            tableStatus.RoundNumber--;
            tableStatus.RoundData = new Round(tableStatus);
            return(RedirectToAction("Index", "ShowMove", new { tabletDeviceNumber, newRoundNumber = tabletDeviceStatus.RoundNumber + 1 }));
        }
Beispiel #18
0
        public ActionResult OKButtonContract(int tabletDeviceNumber, int contractLevel, string contractSuit, string contractX, string declarerNSEW)
        {
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];
            Result             result             = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber).ResultData;

            result.ContractLevel = contractLevel;
            result.ContractSuit  = contractSuit;
            result.ContractX     = contractX;
            result.DeclarerNSEW  = declarerNSEW;
            return(RedirectToAction("Index", "EnterLead", new { tabletDeviceNumber, leadValidation = LeadValidationOptions.Validate }));
        }
        public ActionResult OKButtonClick(int sectionID, int tableNumber, bool confirm)
        {
            // Register table in database
            Utilities.RegisterTable(sectionID, tableNumber);

            // Check if table status has already been created; if not, add it to the list
            TableStatus tableStatus = AppData.TableStatusList.Find(x => x.SectionID == sectionID && x.TableNumber == tableNumber);

            if (tableStatus == null)
            {
                tableStatus = new TableStatus(sectionID, tableNumber, Utilities.GetLastRoundWithResults(sectionID));
                AppData.TableStatusList.Add(tableStatus);
            }

            if (AppData.SectionsList.Find(x => x.SectionID == sectionID).TabletDevicesPerTable == 1)
            {
                // One tablet device per table
                TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList.Find(x => x.SectionID == sectionID && x.TableNumber == tableNumber);

                // Check if tablet device is already registered for this location, and if so confirm
                if (tabletDeviceStatus != null && !confirm)
                {
                    return(RedirectToAction("Index", "EnterTableNumber", new { sectionID, tableNumber, confirm = true }));
                }
                else if (tabletDeviceStatus == null)
                {
                    // Not on list, so need to add it.  Direction is fixed as North as only one tablet per table
                    tabletDeviceStatus = new TabletDeviceStatus(sectionID, tableNumber, Direction.North, tableStatus.RoundData.NumberNorth, tableStatus.RoundNumber);
                    AppData.TabletDeviceStatusList.Add(tabletDeviceStatus);
                }

                // tabletDeviceNumber is the key for identifying this particular tablet device and is used throughout the rest of the application
                int tabletDeviceNumber = AppData.TabletDeviceStatusList.LastIndexOf(tabletDeviceStatus);

                if (tableStatus.ReadyForNextRoundNorth)
                {
                    return(RedirectToAction("Index", "ShowMove", new { tabletDeviceNumber, newRoundNummber = tableStatus.RoundNumber + 1 }));
                }
                else if (tabletDeviceStatus.RoundNumber == 1 || Settings.NumberEntryEachRound)
                {
                    return(RedirectToAction("Index", "ShowPlayerNumbers", new { tabletDeviceNumber }));
                }
                else
                {
                    return(RedirectToAction("Index", "ShowRoundInfo", new { tabletDeviceNumber }));
                }
            }
            else   // More than one tablet device per table, so need to know direction for this tablet device
            {
                return(RedirectToAction("Index", "EnterDirection", new { sectionID, tableNumber, tableStatus.RoundNumber }));
            }
        }
        public ActionResult BackButtonClick(int tabletDeviceNumber)
        {
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];

            if (Settings.EnterLeadCard)
            {
                return(RedirectToAction("Index", "EnterLead", new { tabletDeviceNumber, leadValidation = LeadValidationOptions.NoWarning }));
            }
            else
            {
                return(RedirectToAction("Index", "EnterContract", new { tabletDeviceNumber, boardNumber = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber).ResultData.BoardNumber }));
            }
        }
Beispiel #21
0
        public ActionResult BackButtonClick(int tabletDeviceNumber)
        {
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];
            Result             result             = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber).ResultData;

            if (result.ContractLevel == 0)  // This was passed out, so Back goes all the way to Enter Contract screen
            {
                return(RedirectToAction("Index", "EnterContract", new { tabletDeviceNumber, boardNumber = result.BoardNumber }));
            }
            else
            {
                return(RedirectToAction("Index", "EnterTricksTaken", new { tabletDeviceNumber }));
            }
        }
Beispiel #22
0
        public ActionResult OKButtonPass(int tabletDeviceNumber)
        {
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];
            Result             result             = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber).ResultData;

            result.ContractLevel     = 0;
            result.ContractSuit      = "";
            result.ContractX         = "";
            result.DeclarerNSEW      = "";
            result.LeadCard          = "";
            result.TricksTakenNumber = -1;
            result.CalculateScore();
            return(RedirectToAction("Index", "ConfirmResult", new { tabletDeviceNumber }));
        }
Beispiel #23
0
        public ActionResult OKButtonSkip(int tabletDeviceNumber)
        {
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];
            TableStatus        tableStatus        = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber);
            Result             result             = tableStatus.ResultData;

            result.ContractLevel     = -1;
            result.ContractSuit      = "";
            result.ContractX         = "";
            result.DeclarerNSEW      = "";
            result.LeadCard          = "";
            result.TricksTakenNumber = -1;
            result.UpdateDB(tableStatus);
            return(RedirectToAction("Index", "ShowBoards", new { tabletDeviceNumber }));
        }
Beispiel #24
0
        public ActionResult OKButtonClick(int tabletDeviceNumber, string card)
        {
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];
            TableStatus        tableStatus        = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber);

            if (tableStatus.ResultData.LeadValidation != LeadValidationOptions.Validate || !Settings.ValidateLeadCard || Utilities.ValidateLead(tableStatus, card))
            {
                tableStatus.ResultData.LeadCard = card;
                return(RedirectToAction("Index", "EnterTricksTaken", new { tabletDeviceNumber }));
            }
            else
            {
                return(RedirectToAction("Index", "EnterLead", new { tabletDeviceNumber, leadValidation = LeadValidationOptions.Warning }));
            }
        }
Beispiel #25
0
        public ActionResult OKButtonClick(int tabletDeviceNumber)
        {
            // Check if new round has been added; can't apply to individuals
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];

            if (tabletDeviceStatus.RoundNumber == Utilities.NumberOfRoundsInEvent(tabletDeviceStatus.SectionID))
            {
                // Final round, so no new rounds added
                return(RedirectToAction("Index", "EndScreen", new { tabletDeviceNumber }));
            }
            else
            {
                return(RedirectToAction("Index", "ShowMove", new { tabletDeviceNumber, newRoundNumber = tabletDeviceStatus.RoundNumber + 1 }));
            }
        }
        public ActionResult Index(int tabletDeviceNumber, Direction direction)
        {
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];

            ViewData["ButtonOptions"] = ButtonOptions.OKDisabled;
            ViewData["Title"]         = $"Enter Player Number - {tabletDeviceStatus.Location}";
            ViewData["Header"]        = $"{tabletDeviceStatus.Location}";
            EnterPlayerNumber enterPlayerNumber = new EnterPlayerNumber()
            {
                TabletDeviceNumber = tabletDeviceNumber,
                Direction          = direction,
                DisplayDirection   = Enum.GetName(typeof(Direction), direction)
            };

            return(View(enterPlayerNumber));
        }
Beispiel #27
0
        public ActionResult Index(int tabletDeviceNumber, int newRoundNumber, int tableNotReadyNumber = -1)
        {
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];

            if (newRoundNumber > Utilities.NumberOfRoundsInEvent(tabletDeviceStatus.SectionID))  // Session complete
            {
                if (Settings.ShowRanking == 2)
                {
                    return(RedirectToAction("Final", "ShowRankingList", new { tabletDeviceNumber }));
                }
                else
                {
                    return(RedirectToAction("Index", "EndScreen", new { tabletDeviceNumber }));
                }
            }

            TableStatus tableStatus = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber);

            if (tableStatus != null && tableStatus.RoundNumber < newRoundNumber)
            {
                // No tablet device has yet advanced this table to the next round, so show that this one is ready to do so
                if (tabletDeviceStatus.Direction == Direction.North)
                {
                    tableStatus.ReadyForNextRoundNorth = true;
                }
                else if (tabletDeviceStatus.Direction == Direction.East)
                {
                    tableStatus.ReadyForNextRoundEast = true;
                }
                else if (tabletDeviceStatus.Direction == Direction.South)
                {
                    tableStatus.ReadyForNextRoundSouth = true;
                }
                else if (tabletDeviceStatus.Direction == Direction.West)
                {
                    tableStatus.ReadyForNextRoundWest = true;
                }
            }

            MovesList movesList = new MovesList(tabletDeviceNumber, tableStatus, newRoundNumber, tableNotReadyNumber);

            ViewData["Header"]        = $"{tabletDeviceStatus.Location}";
            ViewData["Title"]         = $"Show Move - {tabletDeviceStatus.Location}";
            ViewData["ButtonOptions"] = ButtonOptions.OKEnabled;

            return(View(movesList));
        }
        public ActionResult OKButtonClick(int sectionID, int tableNumber, Direction direction, int roundNumber, bool confirm)
        {
            // Check if tablet device is already registered for this location, and if so confirm
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList.Find(x => x.SectionID == sectionID && x.TableNumber == tableNumber && x.Direction == direction);
            TableStatus        tableStatus        = AppData.TableStatusList.Find(x => x.SectionID == sectionID && x.TableNumber == tableNumber);

            if (tabletDeviceStatus != null && !confirm)
            {
                return(RedirectToAction("Index", "EnterDirection", new { sectionID, tableNumber, roundNumber, direction, confirm = true }));
            }
            else if (tabletDeviceStatus == null)
            {
                // Not on list of registered tablet devices, so need to add it
                int pairNumber = 0;
                if (direction == Direction.North)
                {
                    pairNumber = tableStatus.RoundData.NumberNorth;
                }
                else if (direction == Direction.East)
                {
                    pairNumber = tableStatus.RoundData.NumberEast;
                }
                else if (direction == Direction.South)
                {
                    pairNumber = tableStatus.RoundData.NumberSouth;
                }
                else if (direction == Direction.West)
                {
                    pairNumber = tableStatus.RoundData.NumberWest;
                }
                tabletDeviceStatus = new TabletDeviceStatus(sectionID, tableNumber, direction, pairNumber, roundNumber);
                AppData.TabletDeviceStatusList.Add(tabletDeviceStatus);
            }

            // tabletDeviceNumber is the key for identifying this particular tablet device and is used throughout the rest of the application
            int tabletDeviceNumber = AppData.TabletDeviceStatusList.LastIndexOf(tabletDeviceStatus);

            if (((direction == Direction.North) && tableStatus.ReadyForNextRoundNorth) || ((direction == Direction.East) && tableStatus.ReadyForNextRoundEast) || (direction == Direction.South && tableStatus.ReadyForNextRoundSouth) || (direction == Direction.West && tableStatus.ReadyForNextRoundWest))
            {
                return(RedirectToAction("Index", "ShowMove", new { tabletDeviceNumber, newRoundNumber = roundNumber + 1 }));
            }
            else
            {
                return(RedirectToAction("Index", "ShowPlayerNumbers", new { tabletDeviceNumber }));
            }
        }
        public ActionResult OKButtonClick(int tabletDeviceNumber)
        {
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];
            TableStatus        tableStatus        = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber);

            tableStatus.RoundData.UpdateNames(tableStatus);
            tabletDeviceStatus.NamesUpdateRequired = false;  // No names update required on next screen as it's only just been done

            // Check if all required names have been entered, and if not go back and wait
            if (tableStatus.RoundData.GotAllNames)
            {
                return(RedirectToAction("Index", "ShowRoundInfo", new { tabletDeviceNumber }));
            }
            else
            {
                return(RedirectToAction("Index", "ShowPlayerNumbers", new { tabletDeviceNumber, showWarning = true }));
            }
        }
Beispiel #30
0
        public ActionResult Index(int tabletDeviceNumber)
        {
            TabletDeviceStatus tabletDeviceStatus = AppData.TabletDeviceStatusList[tabletDeviceNumber];
            TableStatus        tableStatus        = AppData.TableStatusList.Find(x => x.SectionID == tabletDeviceStatus.SectionID && x.TableNumber == tabletDeviceStatus.TableNumber);
            ResultInfo         resultInfo         = new ResultInfo(tabletDeviceNumber, tableStatus);

            if (AppData.IsIndividual)
            {
                ViewData["Header"] = $"{tabletDeviceStatus.Location} - Round {tableStatus.RoundNumber} - {Utilities.ColourPairByVulnerability("NS", tableStatus.ResultData.BoardNumber, $"{tableStatus.RoundData.NumberNorth}+{tableStatus.RoundData.NumberSouth}")} v {Utilities.ColourPairByVulnerability("EW", tableStatus.ResultData.BoardNumber, $"{tableStatus.RoundData.NumberEast}+{tableStatus.RoundData.NumberWest}")}";
            }
            else
            {
                ViewData["Header"] = $"{tabletDeviceStatus.Location} - Round {tableStatus.RoundNumber} - {Utilities.ColourPairByVulnerability("NS", tableStatus.ResultData.BoardNumber, $"NS {tableStatus.RoundData.NumberNorth}")} v {Utilities.ColourPairByVulnerability("EW", tableStatus.ResultData.BoardNumber, $"EW {tableStatus.RoundData.NumberEast}")}";
            }
            ViewData["ButtonOptions"] = ButtonOptions.OKEnabledAndBack;
            ViewData["Title"]         = $"Confirm Result - {tabletDeviceStatus.Location}";
            return(View(resultInfo));
        }