private void button_amazonSearch_openDialog_Click(object sender, EventArgs e) { AmazonSearchForm dlg = new AmazonSearchForm(); MainForm.SetControlFont(dlg, this.Font, false); dlg.TempFileDir = this.MainForm.UserTempDir; dlg.AutoSearch = true; dlg.UiState = this.MainForm.AppInfo.GetString( "TestForm", "AmazonSearchForm_uiState", ""); //dlg.QueryWord = "7-02-003343-1"; //dlg.From = "isbn"; // TODO: 保存窗口内的尺寸状态 this.MainForm.AppInfo.LinkFormState(dlg, "TestForm_AmazonSearchForm_state"); dlg.ShowDialog(this); this.MainForm.AppInfo.UnlinkFormState(dlg); this.MainForm.AppInfo.SetString( "TestForm", "AmazonSearchForm_uiState", dlg.UiState); }
// 加入封面图像 URL void AddCoverImageUrl() { string strError = ""; string strISBN = ""; int nRet = 0; MainForm main_form = this.DetailForm.MainForm; strISBN = this.DetailForm.MarcEditor.Record.Fields.GetFirstSubfield("010", "a"); if (strISBN.Trim() == "") { strError = "记录中不存在 010$a 子字段, 因此无法加入封面图片 URL"; goto ERROR1; } nRet = main_form.LoadIsbnSplitter(true, out strError); if (nRet == -1) goto ERROR1; AmazonSearchForm dlg = new AmazonSearchForm(); string strOutputISBN = ""; Debug.Assert(main_form != null, "1"); Debug.Assert(main_form.IsbnSplitter != null, "2"); nRet = main_form.IsbnSplitter.IsbnInsertHyphen(strISBN, "force10", out strOutputISBN, out strError); if (nRet != -1) { string strHead = ""; string strOther = ""; StringUtil.ParseTwoPart(strOutputISBN, "-", out strHead, out strOther); if (strHead == "7") dlg.ServerUrl = "webservices.amazon.cn"; // 中国 else dlg.ServerUrl = "webservices.amazon.com"; // 美国 } else dlg.ServerUrl = "webservices.amazon.cn"; // 中国 MainForm.SetControlFont(dlg, this.DetailForm.Font, false); dlg.TempFileDir = main_form.DataDir; dlg.AutoSearch = true; dlg.UiState = main_form.AppInfo.GetString( "TestForm", "AmazonSearchForm_uiState", ""); dlg.QueryWord = strISBN; dlg.From = "ISBN"; main_form.AppInfo.LinkFormState(dlg, "TestForm_AmazonSearchForm_state"); dlg.ShowDialog(this.DetailForm); main_form.AppInfo.UnlinkFormState(dlg); main_form.AppInfo.SetString( "TestForm", "AmazonSearchForm_uiState", dlg.UiState); if (dlg.DialogResult == DialogResult.Cancel) return; Hashtable table = dlg.GetImageUrls(dlg.SelectedItem.Xml); foreach (string name in table.Keys) { AmazonSearch.ImageInfo info = table[name] as AmazonSearch.ImageInfo; Field field_856 = this.DetailForm.MarcEditor.Record.Fields.Add("856", "4 ", "", true); NewSubfield(field_856, "3", "Cover image"); NewSubfield(field_856, "u", info.Url); NewSubfield(field_856, "q", AmazonSearch.GetMime(info.Url)); NewSubfield(field_856, "x", "type:FrontCover." + name + ";size:" + info.Size + ";source:Amazon:" + dlg.SelectedItem.ASIN); } return; ERROR1: MessageBox.Show(this.DetailForm, strError); }