Пример #1
0
        private void Form1_Load(object sender, EventArgs e)
        {
            //C:\Projects\Sparx EA Projects\dataModelAutomation.eap
            List <List <string> > lstRows        = getFileContent();
            List <string>         lstColumnNames = lstRows.First();

            lstRows = lstRows.Skip(1).ToList();

            EA.Repository repository = new EARepositoryHandler(@"C:\Projects\Sparx EA Projects\dataModelAutomation.eap").Get();

            EA.Package rootModel = new EAPackageHandler(repository).GetByEALocalId(3);
            //Cleanup model
            rootModel.Packages.Cast <EA.Package>().ToList().ForEach(f => new EAPackageHandler(repository).Delete(f));
            List <string> lstEntitiyNames = lstRows.Select(s => s[0]).Distinct().ToList();

            lstEntitiyNames.AddRange(lstRows.Select(s => s[2]).Distinct().ToList());
            lstEntitiyNames = lstEntitiyNames.Distinct().ToList();

            EA.Package        entityPackages = new EAPackageHandler(repository).Add(rootModel, "Entities", "Package");
            List <EA.Element> lstEntities    = new List <EA.Element>();

            lstEntitiyNames.ForEach(f => lstEntities.Add(new EAElementHandler(repository)
            {
                StereoType = "Table"
            }.Add(entityPackages, f, EAElementHandler.Type.Class)));

            EA.Diagram diagramEntities = new EADiagramHandler(repository).Add(rootModel, "EntitiesDiagram", "");
            lstRows.ForEach(f => new EAConnectionHandler(repository).Add(lstEntities.Where(w => w.Name == f[0]).First(), lstEntities.Where(w => w.Name == f[2]).First(), "", EAConnectionHandler.ConnectionTypes.Association));

            lstEntities.ForEach(f => new EADiagramObjectsHandler(repository).Add(diagramEntities, f));

            repository.Exit();
        }
Пример #2
0
        private void Form1_Load(object sender, EventArgs e)
        {
            List <List <string> > lstRows        = getFileContent();
            List <string>         lstColumnNames = lstRows.First();

            lstRows = lstRows.Skip(1).ToList();

            EA.Repository repository = new EARepositoryHandler(@"C:\Projects\Sparx EA Projects\testAutomation\testAutomation.eap").Get();

            EA.Package rootModel = new EAPackageHandler(repository).GetByEALocalId(2);
            //Cleanup model
            rootModel.Packages.Cast <EA.Package>().ToList().ForEach(f => new EAPackageHandler(repository).Delete(f));

            EA.Package        actorPackage           = new EAPackageHandler(repository).Add(rootModel, "Actors", "Package");
            List <string>     lstActorsServiceOwners = lstRows.Skip(1).Select(s => s[15].Trim()).Distinct().ToList();
            List <string>     lstActorsProcessOwners = lstRows.Skip(1).Select(s => s[16].Trim()).Distinct().ToList();
            List <EA.Element> lstActors = new List <EA.Element>();

            lstActorsServiceOwners.ToList().ForEach(f => lstActors.Add(new EAElementHandler(repository)
            {
                StereoType = "Tjänsteägare", Notes = f
            }.Add(actorPackage, f, EAElementHandler.Type.Actor)));
            lstActorsProcessOwners.ToList().ForEach(f => lstActors.Add(new EAElementHandler(repository)
            {
                StereoType = "Processägare", Notes = f
            }.Add(actorPackage, f, EAElementHandler.Type.Actor)));

            int x = 10; int y = 10;

            foreach (string tjtKat in lstRows.Skip(1).Select(s => s[0].ToString()).Distinct().OrderBy(o => o))
            {
                EA.Package tjtKatPkg = new EAPackageHandler(repository).Add(rootModel, tjtKat, "Package");
                EA.Diagram dgKatPkg  = new EADiagramHandler(repository).Add(tjtKatPkg, tjtKatPkg.Name + "Diagram", "");

                foreach (string tjtGrp in lstRows.Skip(1).Where(w => w[0] == tjtKat).Select(s => s[1].ToString()).Distinct().OrderBy(o => o))
                {
                    EA.Package tjtGrpPkg = new EAPackageHandler(repository).Add(tjtKatPkg, tjtGrp, "Package");
                    EA.Diagram dgGrpPkg  = new EADiagramHandler(repository).Add(tjtGrpPkg, tjtGrpPkg.Name + "Diagram", "");
                    new EADiagramObjectsHandler(repository).Add(dgKatPkg, tjtGrpPkg);
                    foreach (string tjt in lstRows.Skip(1).Where(w => w[0] == tjtKat).Where(w => w[1] == tjtGrp).Select(s => s[2].ToString()).Distinct().OrderBy(o => o))
                    {
                        EA.Element tjtPkg       = new EAElementHandler(repository).Add(tjtGrpPkg, tjt, "Class");
                        string     tjänsteÄgare = lstRows.Skip(1).Where(w => w[0] == tjtKat).Where(w => w[1] == tjtGrp).Where(w => w[2] == tjt).Select(s => s[15].Trim()).FirstOrDefault();
                        string     processÄgare = lstRows.Skip(1).Where(w => w[0] == tjtKat).Where(w => w[1] == tjtGrp).Where(w => w[2] == tjt).Select(s => s[16].Trim()).FirstOrDefault();
                        if (tjänsteÄgare != "")
                        {
                            new EAConnectionHandler(repository).Add(tjtPkg, lstActors.Where(w => w.Name == tjänsteÄgare).First(), "Tjänsteägare", EAConnectionHandler.ConnectionTypes.Association);
                        }
                        if (processÄgare != "")
                        {
                            new EAConnectionHandler(repository).Add(tjtPkg, lstActors.Where(w => w.Name == processÄgare).First(), "ProcessÄgare", EAConnectionHandler.ConnectionTypes.Association);
                        }
                        new EADiagramObjectsHandler(repository).Add(dgGrpPkg, tjtPkg, new Point(x, y), new Size(100, 100)); y = y + 100 + 10;
                        if (tjänsteÄgare != "")
                        {
                            EA.Element actor = lstActors.Where(w => w.Name == tjänsteÄgare).FirstOrDefault();
                            if (actor != null)
                            {
                                if (dgGrpPkg.DiagramObjects.Cast <EA.DiagramObject>().Where(w => w.ElementID == actor.ElementID).Count() == 0)
                                {
                                    new EADiagramObjectsHandler(repository).Add(dgGrpPkg, actor, new Point(x, y), new Size(100, 100)); y = y + 100 + 10;
                                }
                            }
                        }
                        if (processÄgare != "")
                        {
                            EA.Element actor = lstActors.Where(w => w.Name == processÄgare).FirstOrDefault();
                            if (actor != null)
                            {
                                if (dgGrpPkg.DiagramObjects.Cast <EA.DiagramObject>().Where(w => w.ElementID == actor.ElementID).Count() == 0)
                                {
                                    new EADiagramObjectsHandler(repository).Add(dgGrpPkg, actor, new Point(x, y), new Size(100, 100)); y = y + 100 + 10;
                                }
                            }
                        }


                        EA.Diagram dgPkg = new EADiagramHandler(repository).Add(tjtPkg, tjtPkg.Name + "Diagram", "");
                        foreach (string[] prod in lstRows.Skip(1).Where(w => w[8].ToString().Trim() != "").Where(w => w[2] == tjt).Select(s => new string[] { s[8].ToString(), s[9].ToString() }).Distinct())
                        {
                            EA.Attribute prd = new EAAttributeHandler(repository)
                            {
                                Notes = prod[1].Trim()
                            }.Add(tjtPkg, prod[0].Trim(), "Method");
                            new EAElementsUpdaterHandler(prd).DoWork();
                        }
                        new EAElementsUpdaterHandler(tjtPkg).DoWork();
                    }
                    new EAElementsUpdaterHandler(tjtGrpPkg).DoWork();
                }
                new EAElementsUpdaterHandler(tjtKatPkg).DoWork();
            }
            new EAElementsUpdaterHandler(rootModel).DoWork();

            repository.RefreshModelView(0);

            repository.Exit();
        }