public bool AddOrUpdateAutodeskFile(AutodeskFile file, bool overwrite, BXCModelEntities context = null) { context = context ?? new BXCModelEntities(); var fileRepo = new AutodeskFileRepository(context); var existingFile = fileRepo.GetByNameAndOwner(file.Name, file.MC_OwnerId); if (existingFile == null) { fileRepo.InsertFile(file); } else { existingFile.TypeCatalogHeader = file.TypeCatalogHeader; fileRepo.UpdateFile(existingFile); } return true; }
public void AddItem(Item item, AutodeskFile file) { var newItem = new Item { Name = item.Name, TypeCatalogEntry = item.TypeCatalogEntry, AutodeskFile = file }; _context.AddObject("Items", newItem); _context.SaveChanges(); foreach (var param in item.Parameters) { GetParameter(param.SearchName.Name, param.SearchValue.Value, newItem.Id); } _context.SaveChanges(); }
public void CreateTreeNodes(AutodeskFile file, string treePath) { //add tree nodes var nodes = treePath.Split('/'); var libraryName = nodes[0]; var root = GetOrCreateTreeNode(null, libraryName, libraryName); var fileTreeNode = new AutodeskFileTreeNode {AutodeskFile = file, TreeNode = root}; _context.AddObject("AutodeskFileTreeNodes", fileTreeNode); _context.SaveChanges(); var parent = root; for (var i = 1; i < nodes.Count(); i++) { var treeNode = GetOrCreateTreeNode(parent, nodes[i], libraryName); fileTreeNode = new AutodeskFileTreeNode {AutodeskFile = file, TreeNode = parent}; _context.AddObject("AutodeskFileTreeNodes", fileTreeNode); _context.SaveChanges(); parent = treeNode; } }
public void DeleteFile(AutodeskFile file) { //delete all item parameters foreach (var item in file.Items) { foreach (var param in item.Parameters) { _context.DeleteObject(param); } _context.SaveChanges(); _context.DeleteObject(item); _context.SaveChanges(); } foreach (var node in file.AutodeskFileTreeNodes) { _context.DeleteObject(node); } _context.DeleteObject(file); _context.SaveChanges(); }
public void UpdateFile(AutodeskFile file) { RemoveAllItems(file); _context.SaveChanges(); }
public void RemoveAllItems(AutodeskFile file) { Expression<Func<Item, bool>> expr = i => i.AutodeskFile.Id == file.Id; var items = _context.Items.Where(expr).ToList(); foreach (var item in items) { Expression<Func<Parameter, bool>> paramExpr = p => p.Item.Id == item.Id; var parameters = _context.Parameters.Where(paramExpr); foreach (var p in parameters) { _context.DeleteObject(p); } _context.DeleteObject(item); _context.SaveChanges(); } }
public void InsertFile(AutodeskFile file) { Expression<Func<AutodeskFile, bool>> expr = a => a.Name == file.Name && a.MC_OwnerId == file.MC_OwnerId; var existingFile = _context.AutodeskFiles.Where(expr).FirstOrDefault(); if (existingFile == null) { _context.AddObject("AutodeskFiles", file); _context.SaveChanges(); } }