예제 #1
0
        private void WriteScannersInfo(XmlTextWriter xmlWriter, Voting.Election election)
        {
            var scannerArr = _scannersInfo.GetScannerInfos();

            foreach (var scanner in scannerArr)
            {
                var intScannerSerialNumber = Convert.ToInt32(scanner.SerialNumber);
                xmlWriter.WriteStartElement("Scanner");
                xmlWriter.WriteAttributeString("n", scanner.SerialNumber);
                var mask = new VoteKey
                {
                    ScannerSerialNumber = intScannerSerialNumber,
                    BlankType           = BlankType.Bad,
                };
                var nufCount = VotingResults.VotesCount(mask);
                xmlWriter.WriteAttributeString("nuf", XmlConvert.ToString(nufCount));
                if (election != null)
                {
                    WriteAttendInfo(xmlWriter, intScannerSerialNumber, election);
                }
                else
                {
                    foreach (var el in _electionManager.SourceData.Elections)
                    {
                        WriteAttendInfo(xmlWriter, intScannerSerialNumber, el);
                    }
                }
                xmlWriter.WriteEndElement();
            }
        }
예제 #2
0
        public void GenerateVotingResultProtocol(Voting.Election election)
        {
            _isPreliminaryProtocol = false;
            var timeStamp     = DateTime.Now;
            var electionIndex = _electionManager.SourceData.GetElectionIndex(election);

            _votingResultProtocolFileName = GenerateVotingResultProtocolFileName(timeStamp, electionIndex + 1);
            _votingResultProtocolData     = GenerateVotingResultProtocolData(timeStamp, election);
            SaveVotingResultProtocolToLocalDir();
        }
예제 #3
0
 private void WriteProtocolBody(XmlTextWriter xmlWriter, Voting.Election election)
 {
     xmlWriter.WriteStartElement("Protocol");
     xmlWriter.WriteAttributeString("final", XmlConvert.ToString(!_isPreliminaryProtocol));
     if (election != null)
     {
         WriteElectionInfo(xmlWriter, election);
     }
     else
     {
         foreach (var el in _electionManager.SourceData.Elections)
         {
             WriteElectionInfo(xmlWriter, el);
         }
     }
     xmlWriter.WriteEndElement();
 }
예제 #4
0
        private void WriteElectionInfo(XmlTextWriter xmlWriter, Voting.Election election)
        {
            xmlWriter.WriteStartElement("Election");
            xmlWriter.WriteAttributeString("n", election.ExternalNumber);
            xmlWriter.WriteAttributeString("parentid", election.ParentComittee.ParentID);
            xmlWriter.WriteAttributeString("e-mail", election.ParentComittee.EMail);
            if (!_isPreliminaryProtocol)
            {
                foreach (var line in election.Protocol.Lines)
                {
                    xmlWriter.WriteStartElement("Line");
                    xmlWriter.WriteAttributeString("n", XmlConvert.ToString(line.Num));
                    if (!string.IsNullOrEmpty(line.AdditionalNum))
                    {
                        xmlWriter.WriteAttributeString("a", line.AdditionalNum);
                    }
                    xmlWriter.WriteString(XmlConvert.ToString(line.Value.GetValueOrDefault(0)));
                    xmlWriter.WriteEndElement();
                }
            }
            var showDisabledCandidates = !string.IsNullOrEmpty(election.Protocol.DisabledString);

            foreach (var candidate in election.Candidates)
            {
                if (candidate.Disabled && !showDisabledCandidates)
                {
                    continue;
                }
                xmlWriter.WriteStartElement("Candidate");
                xmlWriter.WriteAttributeString("n", candidate.Id);
                if (candidate.Disabled)
                {
                    xmlWriter.WriteAttributeString("disabled", XmlConvert.ToString(true));
                }
                var mask = new VoteKey
                {
                    ElectionNum = election.ElectionId,
                    CandidateId = candidate.Id
                };
                var votesCount = VotingResults.VotesCount(mask);
                xmlWriter.WriteString(XmlConvert.ToString(votesCount));
                xmlWriter.WriteEndElement();
            }
            xmlWriter.WriteEndElement();
        }
예제 #5
0
 private string GenerateVotingResultProtocolData(DateTime timeStamp, Voting.Election election)
 {
     using (var stringWriter = new StringWriter())
     {
         using (var xmlWriter = new XmlTextWriter(stringWriter))
         {
             xmlWriter.WriteStartElement("Xib", VOTINGRESULTPROTOCOL_XMLNS);
             xmlWriter.WriteAttributeString("uik", _electionManager.SourceData.Uik.ToString());
             xmlWriter.WriteAttributeString("isGasVrn",
                                            XmlConvert.ToString(_electionManager.SourceData.IsGasVrn));
             xmlWriter.WriteAttributeString(
                 "ts", XmlConvert.ToString(timeStamp, XmlDateTimeSerializationMode.Local));
             xmlWriter.WriteAttributeString(
                 "version", XmlConvert.ToString(GetNextVotingResultProtocolVersion()));
             WriteScannersInfo(xmlWriter, election);
             WriteProtocolBody(xmlWriter, election);
             xmlWriter.WriteElementString("Check", String.Empty);
             xmlWriter.WriteEndElement();
         }
         stringWriter.Flush();
         return(stringWriter.ToString());
     }
 }
예제 #6
0
 private void WriteAttendInfo(XmlTextWriter xmlWriter, int scannerSerialNumber, Voting.Election election)
 {
     foreach (var blank in _electionManager.SourceData.Blanks)
     {
         if (election != null &&
             _electionManager.SourceData.GetBlankIdByElectionNumber(election.ElectionId) != blank.Id)
         {
             continue;
         }
         var mask = new VoteKey
         {
             ScannerSerialNumber = scannerSerialNumber,
             BlankId             = blank.Id
         };
         xmlWriter.WriteStartElement("Bulletin");
         xmlWriter.WriteAttributeString("id", blank.Id);
         xmlWriter.WriteAttributeString("n", XmlConvert.ToString(blank.Marker));
         mask.BlankType = BlankType.Valid;
         xmlWriter.WriteAttributeString("Valid", XmlConvert.ToString(VotingResults.VotesCount(mask)));
         mask.BlankType = BlankType.NoMarks;
         xmlWriter.WriteAttributeString("NoMarks", XmlConvert.ToString(VotingResults.VotesCount(mask)));
         mask.BlankType = BlankType.TooManyMarks;
         xmlWriter.WriteAttributeString("TooManyMarks", XmlConvert.ToString(VotingResults.VotesCount(mask)));
         mask.BlankType = BlankType.BadMode;
         xmlWriter.WriteAttributeString("BadMode", XmlConvert.ToString(VotingResults.VotesCount(mask)));
         xmlWriter.WriteEndElement();
     }
 }