void TasksTree_RemoteRename(object sender, RemoteRenameEventArgs e) { try { int nodeId = int.Parse(e.NodeID); var ctx = this.DBContext; Category category = (from tl in ctx.Categories where tl.ID == nodeId select tl).First(); var query = from tl in ctx.Categories where (tl.IsFolder == category.IsFolder && tl.ParentID == category.ParentID && tl.ID != category.ID && tl.Name == e.NewText) select tl; if (query.Count() > 0) { e.Accept = false; e.RefusalMessage = "Such {0} is existing in the parent folder".FormatWith(category.IsFolder ? "folder" : "category"); return; } category.Name = e.NewText; ctx.SubmitChanges(); e.Accept = true; } catch (Exception exception) { e.Accept = false; e.RefusalMessage = exception.Message; } }