public async Task <string> Delete(string json) { foreach (int vsoId in JArray.Parse(json)) { VisioMap visiomap = await db.VisioMaps .Include(e => e.Diagrams) .ThenInclude(e => e.Notations) .Include(e => e.Shapes) .Include(e => e.Relations) .FirstOrDefaultAsync(e => e.Id == vsoId); // Diagram에 있는 지 확인 if (visiomap.Diagrams.Count() > 0) { foreach (Diagram diagram in visiomap.Diagrams.Reverse()) { foreach (Diagram notation in diagram.Notations.Reverse()) { db.Remove(notation); } db.Remove(diagram); } } // Visiomap 하위 Shape 삭제 foreach (Shape shape in visiomap.Shapes.Reverse()) { db.Remove(shape); } foreach (RelationVisiomap relation in visiomap.Relations.Reverse()) { db.Remove(relation); } // log Log log = new Log { ActionType = "Delete", DataType = "VisioMap", RefId = visiomap.Id, Date = DateTime.Now, User = User.Identity.Name, ChangeData = new JObject { { "EnableLayer", visiomap.EnableLayer } }.ToString() }; db.Add(log); db.Remove(visiomap); } db.SaveChanges(); return("Success"); }
public void SubmitDelete(string json) { foreach (int id in JArray.Parse(json)) { WordMap wordmap = db.WordMaps.Find(id); Log log = new Log { ActionType = "Delete", DataType = "WordMap", RefId = wordmap.Id, Date = DateTime.Now, User = User.Identity.Name, ChangeData = new JObject { { "ElementName", wordmap.ElementName } }.ToString() }; db.Add(log); db.Remove(wordmap); } db.SaveChanges(); }
// Delete public async Task <string> DeleteProduct(string json) { JArray arrItems = JArray.Parse(json); foreach (int id in arrItems) { Product product = await db.Products .Include(e => e.WordMaps) .Include(e => e.Children) .Include(e => e.VisioMaps) .ThenInclude(e => e.Shapes) .ThenInclude(e => e.RelationShapes) .Include(e => e.VisioMaps) .ThenInclude(e => e.Relations) .FirstOrDefaultAsync(e => e.Id == id); if (product.Completion == "GOODS") { foreach (VisioMap visiomap in product.VisioMaps.Reverse()) { foreach (Shape shape in visiomap.Shapes.Reverse()) { foreach (RelationShape reShape in shape.RelationShapes.Reverse()) { db.Remove(reShape); } db.Remove(shape); } foreach (RelationVisiomap reVisiomap in visiomap.Relations.Reverse()) { db.Remove(reVisiomap); } db.Remove(visiomap); } foreach (var wdmap in product.WordMaps.Reverse()) { db.Remove(wdmap); } foreach (Variant variant in product.Children.Reverse()) { db.Remove(variant); } } else { IEnumerable <Variant> variants = db.Variants.Where(e => e.ProductId == product.Id); foreach (Variant variant in variants.Reverse()) { var reVisios = db.RelationVisiomaps.Where(e => e.VariantIds.Contains(variant.Id.ToString())); foreach (RelationVisiomap reVisio in reVisios.Reverse()) { if (reVisio.VariantIds.Contains(',')) { string[] oIds = reVisio.VariantIds.Split(','); string nIds = null; for (int i = 0; i < oIds.Length; i++) { if (oIds[i] != variant.Id.ToString()) { if (i == 0) { nIds = oIds[i]; } else { nIds += "," + oIds[i]; } } } reVisio.VariantIds = nIds; db.Update(reVisio); } else { //VisioMap visiomap = reVisio.VisioMap; VisioMap visiomap = await db.VisioMaps .Include(e => e.Shapes) .Include(e => e.Relations) .FirstOrDefaultAsync(e => e.Id == reVisio.VisiomapId); foreach (Diagram diagram in db.Diagrams.Where(e => e.VisioMapId == visiomap.Id).Reverse()) { db.Remove(diagram); } foreach (Shape shape in visiomap.Shapes.Reverse()) { db.Remove(shape); } db.Remove(reVisio); if (visiomap.Relations.Count() == 0) { db.Remove(visiomap); } } } db.Remove(variant); } } db.SaveChanges(); Log log = new Log { RefId = id, DataType = "Product", Date = DateTime.Now, User = User.Identity.Name, ActionType = "DeleteProduct" }; db.Add(log); // Product 삭제 db.Remove(product); db.SaveChanges(); } return("Success"); }