Exemplo n.º 1
0
        public ElectionRules GetRules(string type, string mode)
        {
            var rules = new ElectionRules
            {
                Num   = 0,
                Extra = 0,
                // CanVote = "",
                // CanReceive = "",
                // IsSingleNameElection = false
            };


            switch (type)
            {
            case "LSA":
                // rules.CanVote = CanVoteOrReceive.All;
                // rules.CanVoteLocked = true;

                rules.Extra       = 0;
                rules.ExtraLocked = true;

                switch (mode)
                {
                case ElectionMode.Normal:
                    rules.Num       = 9;
                    rules.NumLocked = true;
                    // rules.CanReceive = CanVoteOrReceive.All;
                    break;

                case ElectionMode.TieBreak:
                    rules.Num       = 1;
                    rules.NumLocked = false;
                    // rules.CanReceive = CanVoteOrReceive.NamedPeople;
                    break;

                case ElectionMode.ByElection:
                    rules.Num       = 1;
                    rules.NumLocked = false;
                    // rules.CanReceive = CanVoteOrReceive.All;
                    break;
                }

                // rules.CanReceiveLocked = true;

                break;

            case "NSA":
                // rules.CanVote = CanVoteOrReceive.NamedPeople; // delegates
                // rules.CanVoteLocked = true;

                rules.Extra       = 0;
                rules.ExtraLocked = true;

                switch (mode)
                {
                case ElectionMode.Normal:
                    rules.Num       = 9;
                    rules.NumLocked = true;
                    // rules.CanReceive = CanVoteOrReceive.All;
                    break;

                case ElectionMode.TieBreak:
                    rules.Num       = 1;
                    rules.NumLocked = false;
                    // rules.CanReceive = CanVoteOrReceive.NamedPeople;
                    break;

                case ElectionMode.ByElection:
                    rules.Num       = 1;
                    rules.NumLocked = false;
                    // rules.CanReceive = CanVoteOrReceive.All;
                    break;
                }

                // rules.CanReceiveLocked = true;

                break;

            case "Con":
                // rules.CanVote = CanVoteOrReceive.All;
                // rules.CanVoteLocked = true;

                switch (mode)
                {
                case ElectionMode.Normal:
                    rules.Num       = 5;
                    rules.NumLocked = false;

                    rules.Extra       = 3;
                    rules.ExtraLocked = false;

                    // rules.CanReceive = CanVoteOrReceive.All;
                    break;

                case ElectionMode.TieBreak:
                    rules.Num       = 1;
                    rules.NumLocked = false;

                    rules.Extra       = 0;
                    rules.ExtraLocked = true;

                    // rules.CanReceive = CanVoteOrReceive.NamedPeople;
                    break;

                case ElectionMode.ByElection:
                    throw new ApplicationException("Unit Conventions cannot have by-elections");
                }

                // rules.CanReceiveLocked = true;
                break;

            case "Reg":
                // rules.CanVote = CanVoteOrReceive.NamedPeople; // LSA members
                // rules.CanVoteLocked = false;

                switch (mode)
                {
                case ElectionMode.Normal:
                    rules.Num       = 9;
                    rules.NumLocked = false;

                    rules.Extra       = 7;
                    rules.ExtraLocked = false;

                    // rules.CanReceive = CanVoteOrReceive.All;
                    break;

                case ElectionMode.TieBreak:
                    rules.Num       = 1;
                    rules.NumLocked = false;

                    rules.Extra       = 0;
                    rules.ExtraLocked = true;

                    // rules.CanReceive = CanVoteOrReceive.NamedPeople;
                    break;

                case ElectionMode.ByElection:
                    // Regional Councils often do not have by-elections, but some countries may allow it?

                    rules.Num       = 1;
                    rules.NumLocked = false;

                    rules.Extra       = 0;
                    rules.ExtraLocked = true;

                    // rules.CanReceive = CanVoteOrReceive.All;
                    break;
                }

                // rules.CanReceiveLocked = true;
                break;

            case "Oth":
                // rules.CanVote = CanVoteOrReceive.All;

                // rules.CanVoteLocked = false;
                // rules.CanReceiveLocked = false;
                rules.NumLocked   = false;
                rules.ExtraLocked = false;

                switch (mode)
                {
                case ElectionMode.Normal:
                    rules.Num   = 9;
                    rules.Extra = 0;
                    // rules.CanReceive = CanVoteOrReceive.All;
                    break;

                case ElectionMode.TieBreak:
                    rules.Num   = 1;
                    rules.Extra = 0;
                    // rules.CanReceive = CanVoteOrReceive.NamedPeople;
                    break;

                case ElectionMode.ByElection:
                    rules.Num   = 1;
                    rules.Extra = 0;
                    // rules.CanReceive = CanVoteOrReceive.All;
                    break;
                }

                break;
            }

            return(rules);
        }
Exemplo n.º 2
0
    public ElectionRules GetRules(string type, string mode)
    {
      var rules = new ElectionRules
                    {
                      Num = 0,
                      Extra = 0,
                      CanVote = "",
                      CanReceive = "",
                      IsSingleNameElection = false
                    };


      switch (type)
      {
        case "LSA":
          rules.CanVote = CanVoteOrReceive.All;
          rules.CanVoteLocked = true;

          rules.Extra = 0;
          rules.ExtraLocked = true;

          switch (mode)
          {
            case ElectionMode.Normal:
              rules.Num = 9;
              rules.NumLocked = true;
              rules.CanReceive = CanVoteOrReceive.All;
              break;
            case ElectionMode.TieBreak:
              rules.Num = 1;
              rules.NumLocked = false;
              rules.CanReceive = CanVoteOrReceive.NamedPeople;
              break;
            case ElectionMode.ByElection:
              rules.Num = 1;
              rules.NumLocked = false;
              rules.CanReceive = CanVoteOrReceive.All;
              break;
          }
          rules.CanReceiveLocked = true;

          break;

        case "NSA":
          rules.CanVote = CanVoteOrReceive.NamedPeople; // delegates
          rules.CanVoteLocked = true;

          rules.Extra = 0;
          rules.ExtraLocked = true;

          switch (mode)
          {
            case ElectionMode.Normal:
              rules.Num = 9;
              rules.NumLocked = true;
              rules.CanReceive = CanVoteOrReceive.All;
              break;
            case ElectionMode.TieBreak:
              rules.Num = 1;
              rules.NumLocked = false;
              rules.CanReceive = CanVoteOrReceive.NamedPeople;
              break;
            case ElectionMode.ByElection:
              rules.Num = 1;
              rules.NumLocked = false;
              rules.CanReceive = CanVoteOrReceive.All;
              break;
          }

          rules.CanReceiveLocked = true;

          break;

        case "Con":
          rules.CanVote = CanVoteOrReceive.All;
          rules.CanVoteLocked = true;

          switch (mode)
          {
            case ElectionMode.Normal:
              rules.Num = 5;
              rules.NumLocked = false;

              rules.Extra = 3;
              rules.ExtraLocked = false;

              rules.CanReceive = CanVoteOrReceive.All;
              break;

            case ElectionMode.TieBreak:
              rules.Num = 1;
              rules.NumLocked = false;

              rules.Extra = 0;
              rules.ExtraLocked = true;

              rules.CanReceive = CanVoteOrReceive.NamedPeople;
              break;

            case ElectionMode.ByElection:
              throw new ApplicationException("Unit Conventions cannot have by-elections");
          }
          rules.CanReceiveLocked = true;
          break;

        case "Reg":
          rules.CanVote = CanVoteOrReceive.NamedPeople; // LSA members
          rules.CanVoteLocked = false;

          switch (mode)
          {
            case ElectionMode.Normal:
              rules.Num = 9;
              rules.NumLocked = false;

              rules.Extra = 3;
              rules.ExtraLocked = false;

              rules.CanReceive = CanVoteOrReceive.All;
              break;

            case ElectionMode.TieBreak:
              rules.Num = 1;
              rules.NumLocked = false;

              rules.Extra = 0;
              rules.ExtraLocked = true;

              rules.CanReceive = CanVoteOrReceive.NamedPeople;
              break;

            case ElectionMode.ByElection:
              // Regional Councils often do not have by-elections, but some countries may allow it?

              rules.Num = 1;
              rules.NumLocked = false;

              rules.Extra = 0;
              rules.ExtraLocked = true;

              rules.CanReceive = CanVoteOrReceive.All;
              break;
          }
          rules.CanReceiveLocked = true;
          break;

        case "Oth":
          rules.CanVote = CanVoteOrReceive.All;

          rules.CanVoteLocked = false;
          rules.CanReceiveLocked = false;
          rules.NumLocked = false;
          rules.ExtraLocked = false;

          switch (mode)
          {
            case ElectionMode.Normal:
              rules.Num = 9;
              rules.Extra = 0;
              rules.CanReceive = CanVoteOrReceive.All;
              break;

            case ElectionMode.TieBreak:
              rules.Num = 1;
              rules.Extra = 0;
              rules.CanReceive = CanVoteOrReceive.NamedPeople;
              break;

            case ElectionMode.ByElection:
              rules.Num = 1;
              rules.Extra = 0;
              rules.CanReceive = CanVoteOrReceive.All;
              break;
          }
          break;
      }

      return rules;
    }