Exemplo n.º 1
0
        public void ProcessModel(string input, string name)
        {
            string         txtFile     = "";
            string         output      = "";
            string         err         = "";
            EAPModelReader modelReader = new EAPModelReader(ref txtFile, name, output);
            EAPModels      eapModels   = modelReader.CollectClasses(input, ref err);

            if (eapModels == null)
            {
                t1.Abort();
                LogTB = "Invalid file format!";
                return;
            }
            FileWritter fw = new FileWritter();

            EAPModel[] eapObjModels = eapModels.Models.ToArray();


            GenerateCode(eapObjModels[0]);
            fw.WriteFiles("1.0.0", FilesComplete, DestPath, false);
            fw.WriteFiles("1.0.0", FilesForDb, DestPath, true);
            t1.Abort();
            var path = DestPath + "\\classes";

            Process.Start(@path);
            LogTB = "\nFINISHED!";
        }
        public EAPModels CollectClasses(string input, ref string err)
        {
            m_Repository = new EA.Repository();
            try
            {
                m_Repository.OpenFile(input);
            }
            catch
            {
                err = err + "\nIt is not able to open EAP file. Check the instalation of EAP";

                return(null);
            }

            eapModels = new EAPModels();
            EAPModel model = null;

            EA.Package MyModel      = (EA.Package)m_Repository.Models.GetAt(0);
            string     packageAlias = MyModel.Packages.Count > 0 ? ((EA.Package)(MyModel.Packages.GetAt(0))).Alias : null;

            if (packageAlias == null || packageAlias == "")
            {
                model = new EAPModel(nameModel);
                eapModels.Models.Add(model);
            }

            for (short iPackage = 0; iPackage < MyModel.Packages.Count; iPackage++)
            {
                EA.Package package = (EA.Package)MyModel.Packages.GetAt(iPackage);
                MyModelCopy = package;
                DoPackage(package, false, model, true);
            }


            for (short iPackage = 0; iPackage < MyModel.Packages.Count; iPackage++)
            {
                EA.Package package = (EA.Package)MyModel.Packages.GetAt(iPackage);
                MyModelCopy = package;
                DoPackage(package, false, model, false);
            }

            FindAttributeEnumCode();
            FixGroupClass();

            m_Repository.CloseFile();

            if (Validate)
            {
                //FindModelCodeIsNotEAP();
                tw.Close();
            }

            return(eapModels);
        }