Ejemplo n.º 1
0
        public void DictionaryCounterInt32_Augment_2()
        {
            DictionaryCounterInt32 <string> dictionary
                = new DictionaryCounterInt32 <string>(_GetComparer());

            dictionary.Augment("first", 2);
            Assert.AreEqual(2, dictionary.GetValue("first"));

            dictionary.Augment("FIRST", 2);
            Assert.AreEqual(4, dictionary.GetValue("first"));
        }
Ejemplo n.º 2
0
        public void DictionaryCounterInt32_Augment_1()
        {
            DictionaryCounterInt32 <string> dictionary
                = new DictionaryCounterInt32 <string>();

            dictionary.Augment("first", 2);
            Assert.AreEqual(2, dictionary.GetValue("first"));

            dictionary.Augment("first", 2);
            Assert.AreEqual(4, dictionary.GetValue("first"));
        }
Ejemplo n.º 3
0
        static void ProcessRecord
        (
            MarcRecord record
        )
        {
            BookInfo info      = new BookInfo(provider, record);
            string   worksheet = info.Worksheet;

            if (worksheet != "SPEC" && worksheet != "PAZK")
            {
                return;
            }

            string[] publishers = info.Publishers;
            int      count      = info.UsageCount;
            int      exemplars  = info.Exemplars.Length;

            if (count != 0)
            {
                foreach (string publisher in publishers)
                {
                    string trimmed = publisher.Trim(charsToTrim);
                    counter1.Augment(trimmed, count);
                    counter2.Augment(trimmed, exemplars);
                }
            }
        }
Ejemplo n.º 4
0
        static void ProcessRecord
        (
            int mfn
        )
        {
            irbis.ReadRecord(mfn);
            NativeRecord record = irbis.GetRecord();
            NativeField  v933   = record.GetFirstField(933);

            if (ReferenceEquals(v933, null))
            {
                return;
            }

            string index = v933.Value;
            string description;

            if (!magazines.ContainsKey(index))
            {
                int[] found = irbis.ExactSearch("I=" + index);
                if (found.Length == 0)
                {
                    return;
                }
                description = irbis.FormatRecord(found[0]);
                magazines.Add(index, description);
            }
            description = magazines[index];

            NativeField v999  = record.GetFirstField(999);
            int         count = ReferenceEquals(v999, null)
                ? 0
                : v999.Value.SafeToInt32();

            Console.WriteLine
            (
                "{0}: {1}",
                irbis.FormatRecord(mfn),
                count
            );

            counter.Augment(description, count);
        }
Ejemplo n.º 5
0
        static void Main()
        {
            Console.CancelKeyPress += Console_CancelKeyPress;

            try
            {
                using (connection = new IrbisConnection())
                {
                    connection.ParseConnectionString(ConnectionString);
                    connection.Connect();
                    connection.Database = DatabaseName;
                    Console.WriteLine("Подключились");

                    IEnumerable <MarcRecord> records
                        = BatchRecordReader.WholeDatabase
                          (
                              connection,
                              DatabaseName,
                              500
                              //, rdr =>
                              //{
                              //    Console.WriteLine
                              //        (
                              //            "{0} из {1}",
                              //            rdr.RecordsRead,
                              //            rdr.TotalRecords
                              //        );
                              //}
                          );

                    foreach (MarcRecord record in records)
                    {
                        if (Cancel)
                        {
                            break;
                        }

                        if (record.Deleted)
                        {
                            continue;
                        }

                        ReaderInfo reader = ReaderInfo.Parse(record);
                        if (reader.WorkPlace.SafeContains("ИОГУНБ"))
                        {
                            continue;
                        }

                        int age    = reader.Age;
                        int visits = reader.Visits.Count(v => v.IsVisit);

                        if (reader.Gender.SameString("ж"))
                        {
                            FemaleCount++;
                            FemaleAge.Increment(age);
                            FemaleVisits.Augment(age, visits);
                        }
                        else
                        {
                            MaleCount++;
                            MaleAge.Increment(age);
                            MaleVisits.Augment(age, visits);
                        }
                    }
                }
                Console.WriteLine("Отключились");

                Console.WriteLine(";Муж;Жен;М пос;Ж пос");
                Console.WriteLine
                (
                    "Всего;{0};{1};{2};{3}",
                    MaleCount,
                    FemaleCount,
                    MaleVisits.Total,
                    FemaleVisits.Total
                );
                for (int age = 12; age < 100; age++)
                {
                    Console.WriteLine
                    (
                        "{0};{1};{2};{3};{4}",
                        age,
                        MaleAge.GetValue(age),
                        FemaleAge.GetValue(age),
                        MaleVisits.GetValue(age),
                        FemaleVisits.GetValue(age)
                    );
                }
            }
            catch (Exception exception)
            {
                Console.WriteLine(exception);
            }
        }