/// <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); } }
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; }