示例#1
0
        void menu_modifyServer(object sender, System.EventArgs e)
        {
            if (listView1.SelectedIndices.Count == 0)
            {
                MessageBox.Show(this, "尚未选择要修改的事项 ...");
                return;
            }


            int nActiveLine = listView1.SelectedIndices[0];
            // ListViewItem item = listView1.Items[nActiveLine];

            ServerDlg dlg = new ServerDlg();

            // GuiUtil.AutoSetDefaultFont(dlg);
            GuiUtil.SetControlFont(dlg, this.Font);

            dlg.Text = "修改缺省帐户参数";

            dlg.ServerName   = ((dp2Server)Servers[nActiveLine]).Name;
            dlg.Password     = ((dp2Server)Servers[nActiveLine]).DefaultPassword;
            dlg.ServerUrl    = ((dp2Server)Servers[nActiveLine]).Url;
            dlg.UserName     = ((dp2Server)Servers[nActiveLine]).DefaultUserName;
            dlg.SavePassword = ((dp2Server)Servers[nActiveLine]).SavePassword;

            dlg.ShowDialog(this);

            if (dlg.DialogResult != DialogResult.OK)
            {
                return;
            }

            ((dp2Server)Servers[nActiveLine]).Name            = dlg.ServerName;
            ((dp2Server)Servers[nActiveLine]).DefaultPassword = dlg.Password;
            ((dp2Server)Servers[nActiveLine]).Url             = dlg.ServerUrl;
            ((dp2Server)Servers[nActiveLine]).DefaultUserName = dlg.UserName;
            ((dp2Server)Servers[nActiveLine]).SavePassword    = dlg.SavePassword;

            Servers.Changed = true;

            FillList();

            // 选择一行
            // parameters:
            //		nIndex	要设置选择标记的行。如果==-1,表示清除全部选择标记但不选择。
            //		bMoveFocus	是否同时移动focus标志到所选择行
            ListViewUtil.SelectLine(listView1,
                                    nActiveLine,
                                    true);

            m_bChanged = true;
        }
示例#2
0
        ServerDlg SetDefaultAccount(
    string strServerUrl,
    string strTitle,
    string strComment,
    IWin32Window owner)
        {
            dp2Server server = this.MainForm.Servers[strServerUrl];

            ServerDlg dlg = new ServerDlg();
            GuiUtil.SetControlFont(dlg, this.Font);

            if (String.IsNullOrEmpty(strServerUrl) == true)
            {
            }
            else
            {
                dlg.ServerUrl = strServerUrl;
            }

            if (owner == null)
                owner = this;

            if (String.IsNullOrEmpty(strTitle) == false)
                dlg.Text = strTitle;

            dlg.Comment = strComment;
            dlg.UserName = server.DefaultUserName;

            this.MainForm.AppInfo.LinkFormState(dlg,
                "dp2_logindlg_state");

            dlg.ShowDialog(owner);

            this.MainForm.AppInfo.UnlinkFormState(dlg);


            if (dlg.DialogResult == DialogResult.Cancel)
            {
                return null;
            }

            server.DefaultUserName = dlg.UserName;
            server.DefaultPassword =
                (dlg.SavePassword == true) ?
                dlg.Password : "";

            server.SavePassword = dlg.SavePassword;

            server.Url = dlg.ServerUrl;
            return dlg;
        }
示例#3
0
        async void menu_newServer(object sender, System.EventArgs e)
        {
            List <string> errors = new List <string>();

            int nActiveLine = -1;

            if (listView1.SelectedIndices.Count != 0)
            {
                nActiveLine = listView1.SelectedIndices[0];
            }

            ServerDlg dlg = new ServerDlg();

            // GuiUtil.AutoSetDefaultFont(dlg);
            GuiUtil.SetControlFont(dlg, this.Font);

            dlg.Text = "新增服务器地址和默认帐户";

            if (nActiveLine == -1)
            {
                // 无参考事项情形的新增
#if NO
                dlg.ServerName = "社科院联合编目中心";
                dlg.ServerUrl  = "http://ssucs.org/dp2library";
                dlg.UserName   = "******";
#endif
                dlg.ServerName = "单机版服务器";
                dlg.ServerUrl  = "net.pipe://localhost/dp2library/xe";
                dlg.UserName   = "******";
            }
            else
            {
                dp2Server server = (dp2Server)Servers[nActiveLine];
                dlg.ServerName   = server.Name;
                dlg.Password     = server.DefaultPassword;
                dlg.ServerUrl    = server.Url;
                dlg.UserName     = server.DefaultUserName;
                dlg.SavePassword = server.SavePassword;
            }

            dlg.ShowDialog(this);

            if (dlg.DialogResult != DialogResult.OK)
            {
                return;
            }

            List <string> urls = new List <string>();
            if (dlg.ServerUrl.IndexOf("\r\n") == -1)
            {
                urls.Add(dlg.ServerUrl);
            }
            else
            {
                urls = StringUtil.SplitList(dlg.ServerUrl.Replace("\r\n", "\r"), '\r');
                StringUtil.RemoveBlank(ref urls);
                StringUtil.RemoveDupNoSort(ref urls);
            }

            using (MessageBar bar = MessageBar.Create(this, "正在添加服务器节点"))
            {
                // 允许一次创建多个服务器节点
                int i = 0;
                foreach (string url in urls)
                {
                    // 获得服务器 UID
                    string uid = "";
                    bar.SetMessageText($"正在获取服务器 {url} 的 UID ...");
                    var result = await ServerDlg.GetServerUID(url);

                    if (result.Value == -1)
                    {
                        errors.Add($"针对服务器 {url} 获取服务器 UID 时出错: {result.ErrorInfo}");
                    }
                    else
                    {
                        uid = result.ErrorCode;
                    }

                    // 对 UID 进行查重
                    if (string.IsNullOrEmpty(uid) == false)
                    {
                        var dup_list = Servers.FindServerByUID(uid);
                        if (dup_list.Count > 0)
                        {
                            errors.Add($"拟添加的新服务器节点 '{url}' 因其 UID '{uid}' 和已有的服务器节点({dup_list[0].Name})重复,无法添加");
                            continue;
                        }
                    }

                    dp2Server server = Servers.NewServer(nActiveLine);
                    // TODO: 建议用 public 账户尝试从 dp2library 服务器获得服务器名字符串
                    string name = dlg.ServerName;
                    if (i > 0)
                    {
                        name = dlg.ServerName + (i + 1).ToString();
                    }
                    server.Name            = name;
                    server.DefaultPassword = dlg.Password;
                    server.Url             = url;
                    server.DefaultUserName = dlg.UserName;
                    server.SavePassword    = dlg.SavePassword;
                    server.UID             = uid;

                    i++;
                }
            }

            Servers.Changed = true;

            FillList();

            // 选择一行
            // parameters:
            //		nIndex	要设置选择标记的行。如果==-1,表示清除全部选择标记但不选择。
            //		bMoveFocus	是否同时移动focus标志到所选择行
            ListViewUtil.SelectLine(listView1,
                                    Servers.Count - 1,
                                    true);
            listView1.EnsureVisible(Servers.Count - 1);

            m_bChanged = true;

            if (errors.Count > 0)
            {
                MessageDlg.Show(this, $"新增服务器节点时出错:\r\n{StringUtil.MakePathList(errors, "\r\n")}", "ServersDlg");
            }
        }
示例#4
0
        async void menu_modifyServer(object sender, System.EventArgs e)
        {
            string strError;

            if (listView1.SelectedIndices.Count == 0)
            {
                strError = "尚未选择要修改的事项 ...";
                goto ERROR1;
            }

            int nActiveLine = listView1.SelectedIndices[0];
            // ListViewItem item = listView1.Items[nActiveLine];

            ServerDlg dlg = new ServerDlg();

            // GuiUtil.AutoSetDefaultFont(dlg);
            GuiUtil.SetControlFont(dlg, this.Font);

            dlg.Text = "修改缺省帐户参数";

            dlg.ServerName   = ((dp2Server)Servers[nActiveLine]).Name;
            dlg.Password     = ((dp2Server)Servers[nActiveLine]).DefaultPassword;
            dlg.ServerUrl    = ((dp2Server)Servers[nActiveLine]).Url;
            dlg.UserName     = ((dp2Server)Servers[nActiveLine]).DefaultUserName;
            dlg.SavePassword = ((dp2Server)Servers[nActiveLine]).SavePassword;

            dlg.ShowDialog(this);

            if (dlg.DialogResult != DialogResult.OK)
            {
                return;
            }

            dp2Server server = ((dp2Server)Servers[nActiveLine]);

            server.Name            = dlg.ServerName;
            server.DefaultPassword = dlg.Password;
            server.Url             = dlg.ServerUrl;
            server.DefaultUserName = dlg.UserName;
            server.SavePassword    = dlg.SavePassword;

            // 获取 UID
            using (MessageBar bar = MessageBar.Create(this,
                                                      "获取 UID",
                                                      $"正在获取服务器 {server.Url} 的 UID ..."))
            {
                var result = await ServerDlg.GetServerUID(server.Url);

                if (result.Value == -1)
                {
                    strError = result.ErrorInfo;
                    goto ERROR1;
                }
                server.UID = result.ErrorCode;
            }

            Servers.Changed = true;

            FillList();

            // 选择一行
            // parameters:
            //		nIndex	要设置选择标记的行。如果==-1,表示清除全部选择标记但不选择。
            //		bMoveFocus	是否同时移动focus标志到所选择行
            ListViewUtil.SelectLine(listView1,
                                    nActiveLine,
                                    true);

            m_bChanged = true;
            return;

ERROR1:
            MessageBox.Show(this, strError);
        }
示例#5
0
        void menu_newServer(object sender, System.EventArgs e)
        {
            int nActiveLine = -1;

            if (listView1.SelectedIndices.Count != 0)
            {
                nActiveLine = listView1.SelectedIndices[0];
            }

            ServerDlg dlg = new ServerDlg();

            // GuiUtil.AutoSetDefaultFont(dlg);
            GuiUtil.SetControlFont(dlg, this.Font);

            dlg.Text = "新增服务器地址和缺省帐户";

            if (nActiveLine == -1)
            {
                // 无参考事项情形的新增
                dlg.ServerName = "社科院联合编目中心";
                dlg.ServerUrl  = "http://ssucs.org/dp2library";
                dlg.UserName   = "******";
            }
            else
            {
                dlg.ServerName   = ((dp2Server)Servers[nActiveLine]).Name;
                dlg.Password     = ((dp2Server)Servers[nActiveLine]).DefaultPassword;
                dlg.ServerUrl    = ((dp2Server)Servers[nActiveLine]).Url;
                dlg.UserName     = ((dp2Server)Servers[nActiveLine]).DefaultUserName;
                dlg.SavePassword = ((dp2Server)Servers[nActiveLine]).SavePassword;
            }

            dlg.ShowDialog(this);

            if (dlg.DialogResult != DialogResult.OK)
            {
                return;
            }

            dp2Server server = Servers.NewServer(nActiveLine);

            server.Name            = dlg.ServerName;
            server.DefaultPassword = dlg.Password;
            server.Url             = dlg.ServerUrl;
            server.DefaultUserName = dlg.UserName;
            server.SavePassword    = dlg.SavePassword;

            Servers.Changed = true;

            FillList();

            // 选择一行
            // parameters:
            //		nIndex	要设置选择标记的行。如果==-1,表示清除全部选择标记但不选择。
            //		bMoveFocus	是否同时移动focus标志到所选择行
            ListViewUtil.SelectLine(listView1,
                                    Servers.Count - 1,
                                    true);

            m_bChanged = true;
        }
示例#6
0
		void menu_newServer(object sender, System.EventArgs e)
		{
			int nActiveLine = -1;
			if (listView1.SelectedIndices.Count != 0)
			{
				nActiveLine = listView1.SelectedIndices[0];
			}

			ServerDlg dlg = new ServerDlg();
            // GuiUtil.AutoSetDefaultFont(dlg); 
            GuiUtil.SetControlFont(dlg, this.Font);

			dlg.Text = "新增服务器地址和缺省帐户";

            if (nActiveLine == -1)
            {   
                // 无参考事项情形的新增
                dlg.ServerName = "社科院联合编目中心";
                dlg.ServerUrl = "http://ssucs.org/dp2library";
                dlg.UserName = "******";
            }
            else
			{
                dlg.ServerName = ((dp2Server)Servers[nActiveLine]).Name;
                dlg.Password = ((dp2Server)Servers[nActiveLine]).DefaultPassword;
                dlg.ServerUrl = ((dp2Server)Servers[nActiveLine]).Url;
                dlg.UserName = ((dp2Server)Servers[nActiveLine]).DefaultUserName;
                dlg.SavePassword = ((dp2Server)Servers[nActiveLine]).SavePassword;
			}

			dlg.ShowDialog(this);

			if (dlg.DialogResult != DialogResult.OK)
				return;

            dp2Server server = Servers.NewServer(nActiveLine);
            server.Name = dlg.ServerName;
			server.DefaultPassword = dlg.Password;
			server.Url = dlg.ServerUrl;
			server.DefaultUserName = dlg.UserName;
			server.SavePassword = dlg.SavePassword;

			Servers.Changed = true;

			FillList();

			// 选择一行
			// parameters:
			//		nIndex	要设置选择标记的行。如果==-1,表示清除全部选择标记但不选择。
			//		bMoveFocus	是否同时移动focus标志到所选择行
			ListViewUtil.SelectLine(listView1, 
				Servers.Count - 1,
				true);

			m_bChanged = true;

		}
示例#7
0
		void menu_modifyServer(object sender, System.EventArgs e)
		{
			if (listView1.SelectedIndices.Count == 0)
			{
				MessageBox.Show(this, "尚未选择要修改的事项 ...");
				return;
			}


			int nActiveLine = listView1.SelectedIndices[0];
			// ListViewItem item = listView1.Items[nActiveLine];

            ServerDlg dlg = new ServerDlg();
            // GuiUtil.AutoSetDefaultFont(dlg); 
            GuiUtil.SetControlFont(dlg, this.Font);

			dlg.Text = "修改缺省帐户参数";

            dlg.ServerName = ((dp2Server)Servers[nActiveLine]).Name;
            dlg.Password = ((dp2Server)Servers[nActiveLine]).DefaultPassword;
            dlg.ServerUrl = ((dp2Server)Servers[nActiveLine]).Url;
            dlg.UserName = ((dp2Server)Servers[nActiveLine]).DefaultUserName;
            dlg.SavePassword = ((dp2Server)Servers[nActiveLine]).SavePassword;

			dlg.ShowDialog(this);

			if (dlg.DialogResult != DialogResult.OK)
				return;

            ((dp2Server)Servers[nActiveLine]).Name = dlg.ServerName;
            ((dp2Server)Servers[nActiveLine]).DefaultPassword = dlg.Password;
            ((dp2Server)Servers[nActiveLine]).Url = dlg.ServerUrl;
            ((dp2Server)Servers[nActiveLine]).DefaultUserName = dlg.UserName;
            ((dp2Server)Servers[nActiveLine]).SavePassword = dlg.SavePassword;

			Servers.Changed = true;

			FillList();

		// 选择一行
		// parameters:
		//		nIndex	要设置选择标记的行。如果==-1,表示清除全部选择标记但不选择。
		//		bMoveFocus	是否同时移动focus标志到所选择行
			ListViewUtil.SelectLine(listView1, 
				nActiveLine,
				true);

			m_bChanged = true;

		}