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