Exemple #1
0
 protected void btnToCDataXml_Click(object sender, EventArgs e)
 {
     string       szFileSaveTo = AppDomain.CurrentDomain.BaseDirectory + "/Magazine_CData.xml";
     MagazineInfo oInfo        = new MagazineInfo
     {
         MagazineName = "三联生活周刊",
         Year         = 2014,
         Issue        = 6
     };
     string szReturn = SerializationHelper.ToXML(oInfo, szFileSaveTo);
 }
Exemple #2
0
    /// <summary>
    /// 1.将对象序列化为byte数组
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnToBinary_Click(object sender, EventArgs e)
    {
        string       szFileSaveTo = AppDomain.CurrentDomain.BaseDirectory + "/Magazine.txt";
        MagazineInfo oInfo        = new MagazineInfo
        {
            MagazineName = "三联生活周刊",
            Year         = 2014,
            Issue        = 5
        };

        byte[] byteReturn = SerializationHelper.ToBinary(oInfo, szFileSaveTo);
        //或者
        //byte[] byteReturn = oInfo.ToBinary(szFileSaveTo);
    }
Exemple #3
0
        private static void ProcessMagazine
        (
            [NotNull] MagazineInfo magazine
        )
        {
            Console.WriteLine(magazine);
            MagazineIssueInfo[] issues = _manager.GetIssues(magazine, _year);

            List <string> registered = new List <string>(issues.Length);

            foreach (MagazineIssueInfo issue in issues)
            {
                ExemplarInfo[] exemplars = issue.Exemplars;
                if (!ReferenceEquals(exemplars, null))
                {
                    foreach (ExemplarInfo exemplar in exemplars)
                    {
                        string number = issue.Number;
                        if (!ReferenceEquals(number, null) &&
                            exemplar.KsuNumber1.SameString(_period))
                        {
                            registered.Add(issue.Number);
                            break;
                        }
                    }
                }
            }

            registered = NumberText.Sort(registered).Distinct().ToList();

            if (registered.Count == 0)
            {
                Console.WriteLine(Resources.T0, string.Empty);
            }
            else
            {
                PeriodInfo info = new PeriodInfo
                {
                    Title      = magazine.ExtendedTitle,
                    Registered = CompressIfPossible(registered)
                };
                _list.Add(info);
                Console.WriteLine(Resources.T0, info.Registered);
            }
        }
Exemple #4
0
    protected override void Parse(string text)
    {
        string[] row = text.Split('\n');

        List <string> rowlist = new List <string>();

        for (int i = 0; i < row.Length; ++i)
        {
            if (!string.IsNullOrEmpty(row[i]))
            {
                string s = row[i].Replace('\r', ' ');
                rowlist.Add(s.Trim());
            }
        }

        string[] subject = rowlist[0].Split(',');

        for (int j = 1; j < rowlist.Count; ++j)
        {
            string[] val = rowlist[j].Split(',');

            MagazineInfo magazineInfo = new MagazineInfo();

            for (int i = 0; i < subject.Length; ++i)
            {
                switch (subject[i])
                {
                case "IDX":
                    int.TryParse(val[i], out magazineInfo.IDX);
                    break;

                case "NAME":
                    magazineInfo.NAME = val[i];
                    break;

                case "UINAME":
                    magazineInfo.UINAME = val[i];
                    break;
                }
            }
            AddInfo(magazineInfo.IDX, magazineInfo);
        }
    }
Exemple #5
0
 public void SetInfo(MagazineInfo info)
 {
     _name   = info.NAME;
     _idx    = info.IDX;
     _uiName = info.UINAME;
 }
        private void GoButton_Click(object sender, RoutedEventArgs e)
        {
            _index     = IndexBox.Text.Trim();
            _year      = YearBox.Text.Trim();
            _issues    = IssueBox.Text.Trim();
            _month     = MonthBox.Text.Trim();
            _number    = NumberBox.Text.Trim();
            _inventory = InventoryBox.Text.Trim();
            _fond      = FondBox.Text.Trim();
            _complect  = ComplectBox.Text.Trim();
            if (string.IsNullOrEmpty(_index) ||
                string.IsNullOrEmpty(_year) ||
                string.IsNullOrEmpty(_issues) ||
                string.IsNullOrEmpty(_month) ||
                string.IsNullOrEmpty(_number) ||
                string.IsNullOrEmpty(_inventory) ||
                string.IsNullOrEmpty(_fond) ||
                string.IsNullOrEmpty(_complect))
            {
                WriteLog("Empty data");
                return;
            }

            var collection = NumberRangeCollection.Parse(_issues);

            _description = $"Подшивка N{_number} {_month} ({_issues})";
            _reference   = $"{_index}/{_year}/{_description}";

            string connectionString = CM.AppSettings["connectionString"];

            using (_connection = new IrbisConnection(connectionString))
            {
                WriteLog("Connected");

                _mainRecord = _connection.SearchReadOneRecord("\"I={0}\"", _index);
                if (_mainRecord == null)
                {
                    WriteLog("Main record not found");
                    return;
                }

                MagazineInfo magazine = MagazineInfo.Parse(_mainRecord);
                WriteLog("Main: {0}", magazine.ExtendedTitle);

                foreach (NumberText number in collection)
                {
                    MarcRecord issue = new MarcRecord
                    {
                        Database = _connection.Database
                    };

                    string issueIndex = $"{_index}/{_year}/{number}";
                    issue
                    .AddField(933, _index)
                    .AddField(903, issueIndex)
                    .AddField(934, _year)
                    .AddField(936, number)
                    .AddField(920, "NJP")
                    .AddField
                    (
                        new RecordField(910)
                        .AddSubField('a', "0")
                        .AddSubField('b', _complect)
                        .AddSubField('c', "?")
                        .AddSubField('d', _fond)
                        .AddSubField('p', _reference)
                        .AddSubField('i', _inventory)
                    )
                    .AddField
                    (
                        new RecordField(463)
                        .AddSubField('w', _reference)
                    );

                    _connection.WriteRecord(issue);
                    WriteLog("Issue record created: N={0}, MFN={1}", number, issue.Mfn);
                }

                MarcRecord binding = new MarcRecord
                {
                    Database = _connection.Database
                };
                binding
                .AddField(933, _index)
                .AddField(903, _reference)
                .AddField(904, _year)
                .AddField(936, _description)
                .AddField(931, _issues)
                .AddField(920, "NJK")
                .AddField
                (
                    new RecordField(910)
                    .AddSubField('a', "0")
                    .AddSubField('b', _inventory)
                    .AddSubField('c', "?")
                    .AddSubField('d', _fond)
                );

                _connection.WriteRecord(binding);
                WriteLog("Binding record created: MFN={0}", binding.Mfn);

                _mainRecord.AddField
                (
                    new RecordField(909)
                    .AddSubField('q', _year)
                    .AddSubField('d', _fond)
                    .AddSubField('k', _complect)
                    .AddSubField('h', _issues)
                );
                _connection.WriteRecord(_mainRecord);
                WriteLog("Cumulation updated");
            }

            WriteLog("Disconnected");
            WriteLog("==========================================");
        }
Exemple #7
0
        private static void ProcessMagazine
        (
            [NotNull] MagazineInfo magazine
        )
        {
            Console.WriteLine(magazine);
            if (ReferenceEquals(magazine.QuarterlyOrders, null))
            {
                Console.WriteLine(Resources.HaventOrders);
                return;
            }
            QuarterlyOrderInfo order = magazine.QuarterlyOrders.FirstOrDefault
                                       (
                o => o.Period.SameString(_period)
                                       );

            if (ReferenceEquals(order, null) ||
                string.IsNullOrEmpty(order.FirstIssue) ||
                string.IsNullOrEmpty(order.LastIssue))
            {
                Console.WriteLine(Resources.NoOrderInfoFor, _period);
                return;
            }

            MagazineIssueInfo[] issues = _manager.GetIssues(magazine, _year);

            string[] registered = issues.Select(i => i.Number).ToArray();
            registered = NumberText.Sort(registered).ToArray();

            NumberText first   = order.FirstIssue;
            NumberText current = first.Clone();
            NumberText last    = order.LastIssue;

            PeriodInfo info = new PeriodInfo
            {
                Title      = magazine.ExtendedTitle,
                Expected   = first + "-" + last,
                Registered = CompressIfPossible(registered)
            };

            _list.Add(info);

            List <string> missingIssues = new List <string>();

            while (current <= last)
            {
                MagazineIssueInfo found = issues.FirstOrDefault
                                          (
                    i => Match(i.Number, current)
                                          );
                if (ReferenceEquals(found, null))
                {
                    missingIssues.Add(current.ToString());
                }

                current = current.Increment();
            }

            info.Missing = CompressIfPossible(missingIssues);

            Console.WriteLine(Resources.Present, info.Registered);
            Console.WriteLine(Resources.Missing, info.Missing);
        }
Exemple #8
0
 /// <summary>
 /// 6.将Josn格式字符串反序列化为对象
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 protected void btnJsonToObject_Click(object sender, EventArgs e)
 {
     string       szFileSaveTo = AppDomain.CurrentDomain.BaseDirectory + "/Magazine.json";
     MagazineInfo oInfo        = SerializationHelper.JSONToObject <MagazineInfo>(new FileInfo(szFileSaveTo));
 }