Exemplo n.º 1
0
        public static DiagramEditModel Create(DataModel db, DataDiagram diagram, bool isNew)
        {
            var model = new DiagramEditModel();

            model.Diagram = diagram;
            model.IsNew   = isNew;

            List <EntityType> otherEntityTypes;

            if (diagram == null)
            {
                otherEntityTypes = db.EntityTypes.ToList();
            }
            else
            {
                var diagramEntityTypes = diagram.DataDiagramEntityTypes.Select(de => de.EntityTypeID);
                otherEntityTypes = db.EntityTypes.Where(e => !diagramEntityTypes.Contains(e.ID)).ToList();
            }

            model.OtherEntityTypes = new List <SelectListItem>();
            model.OtherEntityTypes.AddRange(otherEntityTypes.Select(t => new SelectListItem()
            {
                Text = t.Name, Value = t.ID.ToString()
            }));
            return(model);
        }
Exemplo n.º 2
0
        public ActionResult DeleteDiagramConfirmed(int id)
        {
            DataDiagram datadiagram = db.DataDiagrams.Find(id);

            db.DataDiagrams.Remove(datadiagram);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemplo n.º 3
0
        // GET: /Data/Diagrams/Delete/5
        public ActionResult DeleteDiagram(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DataDiagram datadiagram = db.DataDiagrams.Find(id);

            if (datadiagram == null)
            {
                return(HttpNotFound());
            }
            return(View(datadiagram));
        }
Exemplo n.º 4
0
        // GET: /Data/Diagrams/View/5
        public ActionResult View(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DataDiagram diagram = db.DataDiagrams.Find(id);

            if (diagram == null)
            {
                return(HttpNotFound());
            }

            var model = DiagramEditModel.Create(db, diagram, false);

            return(View(model));
        }
Exemplo n.º 5
0
        public ActionResult Edit([Bind(Include = "ID,Name,SortOrder")] DataDiagram diagram, string layout)
        {
            if (ModelState.IsValid)
            {
                string name      = diagram.Name;
                int    sortOrder = diagram.SortOrder;
                diagram           = db.DataDiagrams.First(d => d.ID == diagram.ID); // it seems this is required to populate the DataDiagramEntityTypes list - Attach then Reload doesn't work.
                diagram.Name      = name;
                diagram.SortOrder = sortOrder;

                SaveDiagramEntities(diagram, layout, true);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            var model = DiagramEditModel.Create(db, diagram, false);

            return(View("View", model));
        }
Exemplo n.º 6
0
        private void SaveDiagramEntities(DataDiagram diagram, string layoutJson, bool hasExisting)
        {
            if (hasExisting)
            {
                db.DataDiagramEntityTypes.RemoveRange(diagram.DataDiagramEntityTypes); // TODO: don't delete records we will just recreate
            }

            JavaScriptSerializer js = new JavaScriptSerializer();
            var entities            = js.Deserialize <DiagramEntityModel[]>(layoutJson);

            foreach (var entity in entities.Where(e => e.ID.HasValue))
            {
                var diagramEntity = new DataDiagramEntityType()
                {
                    EntityTypeID = entity.ID.Value, // TODO: verify that this exists
                    PositionX    = entity.X,
                    PositionY    = entity.Y,
                    Color        = entity.Color,
                    DataDiagram  = diagram
                };
                db.DataDiagramEntityTypes.Add(diagramEntity);
            }

            foreach (var entity in entities.Where(e => !e.ID.HasValue))
            {
                EntityType entityType = new EntityType()
                {
                    Name = entity.Name // TODO: verify that this isn't already used
                };

                db.EntityTypes.Add(entityType);

                var diagramEntity = new DataDiagramEntityType()
                {
                    EntityType  = entityType,
                    PositionX   = entity.X,
                    PositionY   = entity.Y,
                    Color       = entity.Color,
                    DataDiagram = diagram
                };
                db.DataDiagramEntityTypes.Add(diagramEntity);
            }
        }
Exemplo n.º 7
0
        public ActionResult Create([Bind(Include = "Name")] DataDiagram diagram, string layout)
        {
            if (ModelState.IsValid)
            {
                if (db.DataDiagrams.Count() == 0)
                {
                    diagram.SortOrder = 1;
                }
                else
                {
                    diagram.SortOrder = db.DataDiagrams.Max(d => d.SortOrder) + 1;
                }

                db.DataDiagrams.Add(diagram);
                SaveDiagramEntities(diagram, layout, false);
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }

            var model = DiagramEditModel.Create(db, diagram, true);

            return(View("View", model));
        }