private void CaseInfoChangePriority(CasePropertySet item, bool moveUp) { var siblingItem = moveUp ? Items.FirstOrDefault( x => x.Priority <= item.Priority && x.CasePropertySetId != item.CasePropertySetId) : Items.FirstOrDefault(x => x.Priority > item.Priority); if (siblingItem != null) { var tmpPriority = item.Priority; if (item.Priority == siblingItem.Priority) { item.Priority = siblingItem.Priority + (moveUp ? 1 : -1); } else { item.Priority = siblingItem.Priority; } siblingItem.Priority = tmpPriority; using (var repository = _repositoryFactory.GetRepositoryInstance()) { var it1 = repository.CasePropertySets.Where(x => x.CasePropertySetId == item.CasePropertySetId).SingleOrDefault(); var it2 = repository.CasePropertySets.Where(x => x.CasePropertySetId == siblingItem.CasePropertySetId).SingleOrDefault(); it1.Priority = item.Priority; it2.Priority = siblingItem.Priority; repository.UnitOfWork.Commit(); } OnUIThread(() => ItemsView.Refresh()); ItemMoveUpCommand.RaiseCanExecuteChanged(); ItemMoveDownCommand.RaiseCanExecuteChanged(); } }
public override void RaiseCanExecuteChanged() { base.RaiseCanExecuteChanged(); if (ItemMoveUpCommand != null) { ItemMoveUpCommand.RaiseCanExecuteChanged(); } if (ItemMoveDownCommand != null) { ItemMoveDownCommand.RaiseCanExecuteChanged(); } if (ItemsView != null) { ItemsView.Refresh(); } }