Exemplo n.º 1
0
        public static IDGGraphExporter[] GetExporters()
        {
            List <IDGGraphExporter> exporters = new List <IDGGraphExporter>();
            string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            string[] files = Directory.GetFiles(path, "*.dll");

            if (files != null)
            {
                foreach (string dll in files)
                {
                    Assembly a = Assembly.LoadFile(dll);
                    foreach (Type t in a.GetTypes())
                    {
                        if (t.GetInterface("IDGGraphExporter") != null)
                        {
                            try
                            {
                                IDGGraphExporter ge = Activator.CreateInstance(t) as IDGGraphExporter;
                                exporters.Add(ge);
                            }
                            catch
                            {
                                // nothing to do here :(
                            }
                        }
                    }
                }
            }

            return(exporters.ToArray());
        }
        private void buttonOK_Click(object sender, EventArgs e)
        {
            IDGGraphExporter exporter = null;

            foreach (IDGGraphExporter ex in exporters)
            {
                if (ex.GetName() == listBoxExporters.SelectedItem.ToString())
                {
                    exporter = ex;
                    break;
                }
            }
            if (exporter == null)
            {
                MessageBox.Show("Error getting exporter", "Error");
                return;
            }

            SaveFileDialog sfd = new SaveFileDialog();

            sfd.DefaultExt = exporter.GetExtension();
            DialogResult result = sfd.ShowDialog();

            if (result == DialogResult.OK)
            {
                if (exporter.ExportGraph(fileInfos, sfd.FileName) != 0)
                {
                    MessageBox.Show("Could not export the file", "Error");
                }
                else
                {
                    MessageBox.Show("File successfully exported");
                }
            }
            this.Close();
        }