コード例 #1
0
ファイル: MainWindow.xaml.cs プロジェクト: skyclub66/EntityDB
        private void MenuItem_创建数据库_Click_1(object sender, RoutedEventArgs e)
        {
            MenuItem    item        = (MenuItem)sender;
            ContextMenu menu        = (ContextMenu)item.Parent;
            var         obj         = (StackPanel)menu.PlacementTarget;
            ProjectNode projectNode = (ProjectNode)obj.Tag;

            Forms.DatabaseEditor form = new Forms.DatabaseEditor(projectNode.Project.id.Value);
            form.Title = "新建数据库";
            form.Owner = this;
            if (form.ShowDialog() == true)
            {
                DatabaseNode dbnode = (DatabaseNode)projectNode.Children.Where(m => m is TreeNode.DatabaseNode).FirstOrDefault();
                dbnode.ReBindItems();
            }
        }
コード例 #2
0
        private async void MenuItem_cs文件还原设计模型_Click_1(object sender, RoutedEventArgs e)
        {
            MenuItem    item        = (MenuItem)sender;
            ContextMenu menu        = (ContextMenu)item.Parent;
            var         obj         = (StackPanel)menu.PlacementTarget;
            ProjectNode projectNode = (ProjectNode)obj.Tag;


            using (System.Windows.Forms.OpenFileDialog f = new System.Windows.Forms.OpenFileDialog())
            {
                f.Filter = "*.cs|*.cs";
                if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    this.Cursor = Cursors.Wait;
                    try
                    {
                        var    bs  = System.IO.File.ReadAllBytes(f.FileName);
                        string url = $"POST /ImportCSFileHandler.aspx?projectid={projectNode.Project.id}";

                        var host = $"{Helper.WebSite}/";
                        host = host.Substring(host.IndexOf("://") + 3);
                        host = host.Substring(0, host.IndexOf("/"));
                        int port = 80;
                        if (host.Contains(":"))
                        {
                            port = Convert.ToInt32(host.Split(':')[1]);
                            host = host.Split(':')[0];
                        }

                        string result = null;
                        await Task.Run(() => {
                            Way.Lib.NetStream client = new Way.Lib.NetStream(host, port);
                            client.AsSSLClient(System.Security.Authentication.SslProtocols.None);


                            System.IO.StreamWriter stream = new System.IO.StreamWriter(client);
                            stream.WriteLine(url);
                            stream.WriteLine($"Cookie: WayScriptRemoting={Net.RemotingClient.SessionID}");
                            stream.WriteLine($"Content-Type: import");
                            stream.WriteLine($"Content-Length: {bs.Length}");
                            stream.WriteLine("");
                            stream.Flush();

                            client.Write(bs, 0, bs.Length);


                            while (true)
                            {
                                if (client.ReadLine().Length == 0)
                                {
                                    break;
                                }
                            }
                            result = client.ReadLine();
                            client.Close();
                        });


                        if (result != "ok")
                        {
                            Helper.ShowError(this, result);
                            return;
                        }

                        DatabaseNode dbnode = (DatabaseNode)projectNode.Children.Where(m => m is TreeNode.DatabaseNode).FirstOrDefault();
                        dbnode.ReBindItems();
                        MessageBox.Show(this, "成功导入!");
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(this, ex.GetBaseException().Message);
                    }
                    finally
                    {
                        this.Cursor = null;
                    }
                }
            }
        }