Ejemplo n.º 1
0
        private void buttonCreate_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(docName))
            {
                try
                {
                    Assembly assembly = typeof(IPageInstance).Module.Assembly;
                    AssemblyRefCreator.AssemblyRefCreateator(assembly, docName);

                    #region nodes cration

                    foreach (DataGridViewRow row in dataGridNodesTable.Rows)
                    {
                        DataRowComponents rowData      = (DataRowComponents)row.Cells["DataSource"].Value;
                        XmlNode           insertedNode = rowData.Tag as XmlNode;
                        Uri        uri     = new Uri(docName);
                        XmlElement newNode = insertedNode.OwnerDocument.CreateElement("Compile", insertedNode.NamespaceURI);

                        string insertedNodeName       = insertedNode.Attributes.GetNamedItem("Include").Value;
                        string parsedInsertedNodeName = insertedNodeName;

                        parsedInsertedNodeName = Path.GetFileName(insertedNodeName);

                        newNode.SetAttribute("Include", insertedNodeName.Replace("aspx.cs", "aspx.jaz.cs"));

                        XmlElement dependentUponNode =
                            insertedNode.OwnerDocument.CreateElement("DependentUpon", insertedNode.NamespaceURI);
                        dependentUponNode.InnerText = parsedInsertedNodeName.Replace(".aspx.cs", ".aspx");
                        newNode.AppendChild(dependentUponNode);

                        if ((bool)row.Cells["Existing jaz files"].Value)
                        {
                            if (insertedNode.ParentNode.SelectNodes("*[@Include='" +
                                                                    insertedNodeName.Replace(OldFileExtension, NewFileExtension) + "']").Count == 0)
                            {
                                insertedNode.ParentNode.InsertAfter(newNode, insertedNode);
                                insertedNode.OwnerDocument.Save(docName);
                                string fileFullPath = docName.Replace(uri.Segments[uri.Segments.Length - 1].ToString(), "") +
                                                      insertedNode.Attributes.GetNamedItem("Include").Value
                                                      .Replace(OldFileExtension, NewFileExtension);
                                progectSettings.AddNewJazFile(fileFullPath);
                                FileInfo   newFile = new FileInfo(fileFullPath);
                                FileStream fs      = newFile.Create();
                                fs.Dispose();
                                CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp");
                                string          ns       = row.Cells["Guessed namespace"].Value.ToString();
                                string          cn       = row.Cells["Guessed class name"].Value.ToString();
                                FileGenerator.GenerateCode
                                (
                                    provider,
                                    FileGenerator.BuildJAZContent(ns, cn, insertedNodeName),
                                    fileFullPath
                                );
                                string           exportFilePath = Path.Combine(Path.GetDirectoryName(docName), "ExportSetting.xml");
                                PageSettings     pageSet        = new PageSettings(exportFilePath, insertedNodeName, ns, cn);
                                XmlStoreProvider storeProvider  = new XmlStoreProvider(exportFilePath);
                                progectSettings.SelectedPage = pageSet;
                                storeProvider.SaveSettings(progectSettings);
                            }
                        }
                        else
                        {
                            XmlNode removedNode = insertedNode.ParentNode.SelectSingleNode("*[@Include='" +
                                                                                           insertedNodeName.Replace(OldFileExtension, NewFileExtension) + "']");
                            if (removedNode != null)
                            {
                                insertedNode.ParentNode.RemoveChild(removedNode);
                                insertedNode.OwnerDocument.Save(docName);
                                string unselectedFileName = docName.Replace(uri.Segments[uri.Segments.Length - 1].ToString(), "") +
                                                            insertedNode.Attributes.GetNamedItem("Include").Value
                                                            .Replace(OldFileExtension, NewFileExtension);
                                FileInfo newFile = new FileInfo(unselectedFileName);
                                newFile.Delete();

                                if (progectSettings.GetJazFileCollection().Contains(unselectedFileName))
                                {
                                    progectSettings.RemoveJazFileFromCollection(unselectedFileName);
                                }
                            }
                        }
                    }
                    MessageBox.Show("Modify proccess successed", "executed", MessageBoxButtons.OK);
                    #endregion
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                finally
                {
                    dataGridNodesTable.Rows.Clear();
                    dataGridNodesTable.Columns.Clear();
                }
            }
        }