public bool ShouldChangeCharacters(UITextView textView, NSRange range, string text) { if (!isPressingBackspace(range, text)) { return(true); } var cursorPosition = range.Location; var attrs = textView.AttributedText.GetAttributes(cursorPosition, out var attrRange); var isDeletingProject = attrs.ObjectForKey(TimeEntryTagsTextView.RoundedBackground) != null; if (isDeletingProject) { ProjectDeleted.Raise(this); return(false); } var isDeletingTag = attrs.ObjectForKey(TimeEntryTagsTextView.RoundedBorders) != null; if (isDeletingTag) { TagDeleted?.Invoke(this, new TagDeletedEventArgs(cursorPosition)); return(false); } return(true); }
public override bool ShouldChangeText(UITextView textView, NSRange range, string text) { if (isTypingMultistageCharacter(range, text)) { IsWritingMultistageCharacter.Raise(this); return(true); } if (!isPressingBackspace(range, text)) { return(true); } var cursorPosition = range.Location; var attrs = textView.AttributedText.GetAttributes(cursorPosition, out var attrRange); var isDeletingProject = attrs.ObjectForKey(TokenExtensions.Project) != null; if (isDeletingProject) { ProjectDeleted.Raise(this); return(false); } var tagIndex = attrs.ObjectForKey(TokenExtensions.TagIndex) as NSNumber; var isDeletingTag = tagIndex != null; if (isDeletingTag) { TagDeleted?.Invoke(this, new TagDeletedEventArgs((int)cursorPosition, tagIndex.Int32Value)); return(false); } return(true); }
public void BeforeTextChanged(ICharSequence sequence, int start, int count, int after) { var isDeleting = count > after; if (!isDeleting) return; var spannable = sequence as SpannableStringBuilder; var deletedSpan = spannable.GetSpans(start, start, Class.FromType(typeof(TokenSpan))).LastOrDefault(); if (deletedSpan == null) return; if (deletedSpan is ProjectTokenSpan) { ProjectDeleted?.Raise(this); } else if (deletedSpan is TagsTokenSpan tagSpan) { TagDeleted?.Invoke(this, new TagDeletedEventArgs(start, tagSpan.TagIndex)); } }
public async Task <IActionResult> DeleteByIdAsync(int id) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!_entityIndex.Exists(ResourceType.Tag, id)) { return(NotFound()); } var status = _entityIndex.Status(ResourceType.Tag, id).GetValueOrDefault(); if (!UserPermissions.IsAllowedToDelete(User.Identity, status, _entityIndex.Owner(ResourceType.Tag, id))) { return(Forbid()); } if (status == ContentStatus.Published) { return(BadRequest(ErrorMessages.CannotBeDeleted(ResourceType.Route, id))); } if (_referencesIndex.IsUsed(ResourceType.Tag, id)) { return(BadRequest(ErrorMessages.ResourceInUse)); } var ev = new TagDeleted { Id = id, UserId = User.Identity.GetUserIdentity(), Timestamp = DateTimeOffset.Now }; await _eventStore.AppendEventAsync(ev); return(NoContent()); }
/// <summary> /// /// </summary> /// <param name="TagId"></param> public void DeleteTag(Guid TagId) { Tag Tag = GetTagById(TagId); if (Tag == null) { return; } Tags.Remove(Tag); foreach (Tag SubTag in Tags) { if (SubTag.DecayTagId == Tag.Id) { SubTag.DecayTagId = Guid.Empty; } } TagDeleted?.Invoke(TagId); TagsUpdated?.Invoke(); }
private void InvokeTagDeleted(RemoteRepositoryTag tag) => TagDeleted?.Invoke(this, new RemoteReferenceEventArgs(tag));
public void RaiseTagDeleted(int tagIndex) { TagDeleted?.Invoke(this, new TagDeletedEventArgs(0, tagIndex)); }
protected virtual void OnTagDeleted() { TagDeleted?.Invoke(this, EventArgs.Empty); }