Beispiel #1
0
        private void Set(Tik tik, string line, Label label, Action <IElectItem, int> setFunc)
        {
            var parts = line.Split(new[] { Consts.Tab }, StringSplitOptions.RemoveEmptyEntries);

            Utils.AssertCaption(parts[captionIndex], label.Caption);

            setFunc(tik, Convert.ToInt32(parts[captionIndex + 1].Trim()));

            var res = Enumerable.Range(captionIndex + 2, parts.Length - captionIndex - 2)
                      .Select(i => Convert.ToInt32(parts[i].Trim()))
                      .ToList();

            foreach (var i in Enumerable.Range(0, res.Count))
            {
                setFunc(tik.Uiks[i], res[i]);
            }
        }
Beispiel #2
0
        public Tik Create(string fileName)
        {
            var electionFoo = ElectionFoo.GetFoo(fileName);

            var stopWatch = new Stopwatch();

            stopWatch.Start();

            var lineCounter = 0;

            //var firstTime = true;

            var tik = new Tik()
            {
                Name = StringUtils.GetTikName(fileName)
            };

            using (var sr = new StreamReader(fileName, Encoding.GetEncoding(1251)))
            {
                while (!sr.EndOfStream)
                {
                    lineCounter++;
                    var line = sr.ReadLine();

                    if (lineCounter == electionFoo.NumberOfElectorsInList.LineNumber)
                    {
                        Set(tik, line, electionFoo.NumberOfElectorsInList, (x, v) => x.NumberOfVoters = v);
                    }
                    if (lineCounter == electionFoo.NumberOfEarlier.LineNumber)
                    {
                        Set(tik, line, electionFoo.NumberOfEarlier, (x, v) => x.NumberOfEarlier = v);
                    }
                    if (lineCounter == electionFoo.NumberOfIn.LineNumber)
                    {
                        Set(tik, line, electionFoo.NumberOfIn, (x, v) => x.NumberOfInside = v);
                    }
                    if (lineCounter == electionFoo.NumberOfOut.LineNumber)
                    {
                        Set(tik, line, electionFoo.NumberOfOut, (x, v) => x.NumberOfOutside = v);
                    }
                    if (lineCounter == electionFoo.NumberOfValidBallot.LineNumber)
                    {
                        Set(tik, line, electionFoo.NumberOfValidBallot, (x, v) => x.Valid = v);
                    }
                    if (lineCounter == electionFoo.NumberOfInvalidBallot.LineNumber)
                    {
                        Set(tik, line, electionFoo.NumberOfInvalidBallot, (x, v) => x.InValid = v);
                    }
                    if (lineCounter == electionFoo.Stationary.LineNumber)
                    {
                        Set(tik, line, electionFoo.Stationary, (x, v) => x.Stationary = v);
                    }
                    if (lineCounter == electionFoo.Portable.LineNumber)
                    {
                        Set(tik, line, electionFoo.Portable, (x, v) => x.Portable = v);
                    }

                    if (lineCounter == electionFoo.RowLocalElectionCommittee)
                    {
                        tik.Uiks = GetUiks(line);
                    }
                    if (lineCounter >= electionFoo.MinRowNumberForFactions)
                    {
                        //if (firstTime)
                        //{
                        //    CheckZero();
                        //    firstTime = false;
                        //}
                        //if (!GetNewPartyData(line, sr, fileName)) break;
                    }
                }
            }

            //Presence = 100 * ((double)(NumberOfEarlier + NumberOfIn + NumberOfOut)) / NumberOfElectorsInList;
            //AllPresences = Enumerable
            //   .Range(0, allNumberOfEarlier.Count)
            //   .Select(
            //      i =>
            //      Math.Round(
            //         100.0 * (allNumberOfEarlier[i] + allNumberOfIn[i] + allNumberOfOut[i]) /
            //         AllNumberOfElectorsInList[i], 2))
            //   .ToArray();

            //for (int i = 0; i < AllPresences.Length; i++)
            //{
            //    if (double.IsNaN(AllPresences[i]))
            //    {
            //        foreach (var electionCommittee in partiesData)
            //        {
            //            electionCommittee.Value.LocalElectionCommittees[i].Percent = double.NaN;
            //        }
            //        //Trace.WriteLine(uiks[i]);
            //    }
            //}

            stopWatch.Stop();
            //Trace.WriteLine(stopWatch.Elapsed);

            return(tik);
        }