Esempio n. 1
0
        private void cmiExport_Click(object sender, EventArgs e)
        {
            if (lvDataviews.SelectedItems.Count > 0)
            {
                sfdExport.FileName = DateTime.Now.ToString("yyyy_MM_dd_");
                if (lvDataviews.SelectedItems.Count == 1)
                {
                    sfdExport.FileName += lvDataviews.SelectedItems[0].Text;
                }
                else
                {
                    sfdExport.FileName += lvDataviews.SelectedItems.Count;
                }
                sfdExport.OverwritePrompt = true;
                sfdExport.SupportMultiDottedExtensions = true;

                if (DialogResult.OK == sfdExport.ShowDialog(this))
                {
                    var dvs    = new List <string>();
                    var splash = new frmSplash();
                    foreach (ListViewItem lvi in lvDataviews.SelectedItems)
                    {
                        dvs.Add(lvi.Tag.ToString());
                    }

                    splash.Show("Exporting " + dvs.Count + " dataview(s)...", false, this);

                    processInBackground(
                        (worker) => {
                        var ds = AdminProxy.ExportDataViewDefinitions(dvs);

                        BinaryFormatter bin = new BinaryFormatter();
                        using (StreamWriter sw = new StreamWriter(sfdExport.FileName)) {
                            ds.RemotingFormat = SerializationFormat.Binary;
                            bin.Serialize(sw.BaseStream, ds);
                        }
                    },
                        (worker2, e2) => {
                        splash.ChangeText(getDisplayMember("export{working}", "Still working..."));
                    },
                        (worker3, e3) => {
                        splash.Close();
                        MainFormUpdateStatus(getDisplayMember("export{exported}", "Exported {0} dataview(s)", dvs.Count.ToString("###,##0")), true);
                    });
                }
            }
        }