public async Task <IActionResult> PostAsync([FromBody] TagArgs args) { ValidateTagArgs(args); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!UserPermissions.IsAllowedToCreate(User.Identity, args.Status)) { return(Forbid()); } if (_tagIndex.IsTitleExist(args.Title)) { return(StatusCode(409)); } int id = _entityIndex.NextId(ResourceType.Tag); var ev = new TagCreated { Id = id, UserId = User.Identity.GetUserIdentity(), Properties = args, Timestamp = DateTimeOffset.Now }; await _eventStore.AppendEventAsync(ev); return(Created($"{Request.Scheme}://{Request.Host}/api/Tags/{id}", id)); }
public static (Tag, Event <TagCreated>) On(CreateTag request, Guid userId) { var tag = new Tag { Id = Guid.NewGuid(), Key = request.Key, Title = request.Title, CorrelationId = request.CorrelationId, Created = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(), Updated = 0, Deleted = 0 }; return(tag, new Event <TagCreated> { Type = "tag-created", Version = 1, CorrelationId = request.CorrelationId, UserId = userId, OccurredOn = tag.Created, Payload = new TagCreated { TagId = tag.Id } });
public void Given_three_tags_should_give_all() { var event1 = new TagCreated(Guid.NewGuid(), "Test1"); var event2 = new TagCreated(Guid.NewGuid(), "Test2"); var event3 = new TagCreated(Guid.NewGuid(), "Test3"); Given($"{StreamPrefix.Question}", event1); Given($"{StreamPrefix.Question}", event2); Given($"{StreamPrefix.Question}", event3); Then(event1.QuestionId.ToString(), new TagNameState { Name = event1.TagName }); Then(event2.QuestionId.ToString(), new TagNameState { Name = event2.TagName }); Then(event3.QuestionId.ToString(), new TagNameState { Name = event3.TagName }); }
public void Apply(TagCreated questionCreated) { Name = questionCreated.TagName; }
private Task Apply(Metadata metadata, TagCreated questionToTagAssosiated, QuestionsByTagState questionsByTagState) { questionsByTagState.Apply(questionToTagAssosiated); return(Task.CompletedTask); }
public void When(TagCreated e) { _tags.Add(e.Tag, e.TagId); }
private void InvokeTagCreated(RemoteRepositoryTag tag) => TagCreated?.Invoke(this, new RemoteReferenceEventArgs(tag));
private Task Apply(Metadata metadata, TagCreated createdTag, TagNameState state) { state.Apply(createdTag); return(Task.CompletedTask); }
private Task Apply(Metadata metadata, TagCreated tagCreated, QuestionWithAnswersState state) { state.Apply(tagCreated); return(Task.CompletedTask); }
public void Apply(TagCreated tagCreated) { Tags.Add(tagCreated.TagName); }
public void Apply(TagCreated tagCreated) { Questions.Add(tagCreated.QuestionId); }