Exemplo n.º 1
0
        /// <summary>
        ///   Update listing
        /// </summary>
        /// <param name="person">The people to update</param>
        /// <param name="votingMethodRemoved"></param>
        public void UpdateFrontDeskListing(Person person, bool votingMethodRemoved)
        {
            var updateInfo = new
            {
                PersonLines = FrontDeskPersonLines(new List <Person> {
                    person
                }),
                LastRowVersion = person.C_RowVersionInt
            };

            new FrontDeskHub().UpdatePeople(updateInfo);
            new VoterPersonalHub().Update(person);

            var  oldestStamp = person.C_RowVersionInt.AsLong() - 5; // send last 5, to ensure none are missed
            long newStamp;
            var  rollCallModel = new RollCallModel();
            var  rollCallInfo  = new
            {
                changed   = rollCallModel.GetMorePeople(oldestStamp, out newStamp),
                removedId = votingMethodRemoved ? person.C_RowId : 0,
                newStamp
            };

            if (rollCallInfo.newStamp != 0 || rollCallInfo.removedId != 0)
            {
                new RollCallHub().UpdateAllConnectedClients(rollCallInfo);
            }
        }
Exemplo n.º 2
0
    public object Pulse()
    {
      var result2 = new Dictionary<string, object>();
      var isStillAllowed = new ComputerModel().ProcessPulse();

      new ElectionModel().ProcessPulse();
      var statusChanged = false;

      if (_infoFromClient != null)
      {
        statusChanged = _infoFromClient.Status != UserSession.CurrentElectionStatus;

        switch (_infoFromClient.Context)
        {
          case "BeforeRollCall":
            var rollcall = new RollCallModel();
            long newStamp;
            result2.Add("MorePeople", rollcall.GetMorePeople(_infoFromClient.Stamp, out newStamp));
            result2.Add("NewStamp", newStamp);
            break;
        }
      }

      var newStatus = statusChanged
                              ? new
                              {
                                QuickLinks = new MenuHelper(_urlHelper).QuickLinks(),
                                Name = UserSession.CurrentElectionStatusName,
                                Code = UserSession.CurrentElectionStatus,
                              }
                              : null;
                         //VersionNum = new Random().Next(1, 100),

      if (newStatus != null)
      {
        result2.Add("NewStatus", newStatus);
      }
      result2.Add("Active", isStillAllowed);
      result2.Add("PulseSeconds", isStillAllowed ? 0 : 60); // if 0, client will use its current pulse number
      
      return result2;

    }