public void Update(Category entityModel) { var entity = Repository.Get(entityModel.Id); if (entity == null) { throw new Exception(string.Format("{0} is not found", entityModel.Name)); } if (Repository.GetAll(a => a.Name.Equals(entityModel.Name) && a.Id != entity.Id).Any()) { throw new Exception(string.Format("Category {0} is exist", entity.Name)); } var ancestor = UtilString.GenTempName(entityModel.Name); var parent = Repository.Get(entityModel.ParentId); if (parent != null) { entity.ParentId = parent.Id; ancestor = parent.Ancestor + "|" + ancestor; } entity.Name = entityModel.Name; var children = Repository.GetAll(a => a.Ancestor.StartsWith(entity.Ancestor)); foreach (var child in children) { child.Ancestor = child.Ancestor.Replace(entity.Ancestor, ancestor); } entity.Ancestor = ancestor; Repository.Update(entity); UnitOfWork.Save(); }
public void Insert(Category entityModel) { if (Repository.GetAll(a => a.Name.Equals(entityModel.Name)).Any()) { throw new Exception(string.Format("Category {0} is exist", entityModel.Name)); } var ancestor = UtilString.GenTempName(entityModel.Name); var parent = Repository.Get(entityModel.ParentId); if (parent != null) { entityModel.ParentId = parent.Id; ancestor = parent.Ancestor + "|" + ancestor; } entityModel.Ancestor = ancestor; Repository.Insert(entityModel); UnitOfWork.Save(); }