private async Task Updated_Bug_Properties_Get_Persisted() { // GIVEN a 'bug' var ticketRef = await CreateSampleBug(); // WHEN changing the title of the 'bug' var dto = new BugAddUpdRequest { Title = "Test Bug (Updated)", Severity = BugSeverity.Low, Priority = BugPriority.P1 }; var ticketUpdatedRef = await _commandService.Update(ticketRef.Id !, dto); await SaveChanges(); // THEN // The returned ID of the updated ticket hasn't changed Assert.True(ticketUpdatedRef.IsSuccess); Assert.Equal(ticketRef.Id, ticketUpdatedRef.Value.Id); // the new ticket's properties appear in the DB var ticket = await _queryService.GetById(ticketRef.Id !); Assert.True(ticket.IsSuccess); var bug = ticket.Value as BugGetResponse; Assert.NotNull(bug); Assert.Equal(dto.Title, bug !.Title); Assert.Equal(dto.Severity, bug.Severity); Assert.Equal(dto.Priority, bug.Priority); }
public async Task <IDomainResult <BacklogItemReference> > Update <T>(string id, T dto) where T : BacklogItemAddUpdRequestBase { var entity = await DbSession.LoadAsync <BacklogItem>(GetFullId(id)); if (entity == null) { return(DomainResult.NotFound <BacklogItemReference>()); } var(_, status) = dto switch { BugAddUpdRequest bug => await _dtoToEntityConversion.ConvertToEntity(bug, entity as BacklogItemBug), UserStoryAddUpdRequest story => await _dtoToEntityConversion.ConvertToEntity(story, entity as BacklogItemUserStory), TaskAddUpdRequest task => await _dtoToEntityConversion.ConvertToEntity(task, entity as BacklogItemTask), FeatureAddUpdRequest feature => await _dtoToEntityConversion.ConvertToEntity(feature, entity as BacklogItemFeature), _ => throw new ArgumentException($"Unsupported type ${typeof(T)}", nameof(dto)) }; if (!status.IsSuccess) { return(status.To <BacklogItemReference>()); } var ticketRef = entity.ToReference().RemoveEntityPrefixFromId(); await UpdateRelatedItems(dto, ticketRef); return(DomainResult.Success(ticketRef)); }
private async Task <BacklogItemReference> CreateBacklogItem() { var dto = new BugAddUpdRequest { Title = "Test_" + GetRandomString() }; var addedRef = await _commandService.Create(dto); if (!addedRef.IsSuccess) { throw new Exception("Failed to create a backlog item"); } await SaveChanges(); return(addedRef.Value); }
private async Task <BacklogItemReference> CreateSampleBug() { var dto = new BugAddUpdRequest { Title = "Test Bug", Severity = BugSeverity.Critical, Priority = BugPriority.P1 }; var ticketAddedRef = await _commandService.Create(dto); if (!ticketAddedRef.IsSuccess) { throw new Exception("Failed to create a backlog item"); } await SaveChanges(); return(ticketAddedRef.Value); }
private async Task <string> CreateBacklogItem <T>(string customFieldId, T customFieldValue) { var dto = new BugAddUpdRequest { Title = "Test_" + GetRandomString(), CustomFields = new Dictionary <string, object?> { { customFieldId, customFieldValue } } }; var addedRef = await _commandService.Create(dto); if (!addedRef.IsSuccess) { throw new Exception("Failed to create a backlog item"); } await SaveChanges(); return(addedRef.Value.Id !); }
public async Task <IDomainResult <BacklogItemReference> > Create <T>(T dto) where T : BacklogItemAddUpdRequestBase { BacklogItem?ticket = dto switch { BugAddUpdRequest bug => await ConvertDtoToEntity <BacklogItemBug, BugAddUpdRequest>(bug), UserStoryAddUpdRequest story => await ConvertDtoToEntity <BacklogItemUserStory, UserStoryAddUpdRequest>(story), _ => null, }; if (ticket == null) { return(DomainResult.Failed <BacklogItemReference>("Incorrect Backlog structure")); } await DbSession.StoreAsync(ticket); return(DomainResult.Success( ticket.ToReference().RemoveEntityPrefixFromId() )); }
private async Task <BacklogItemReference> CreateSampleBug(params string[] customFieldId) { var dto = new BugAddUpdRequest { Title = "Test Bug", Severity = BugSeverity.Critical, Priority = BugPriority.P1, ChangedCustomFields = customFieldId.Select(id => new BacklogCustomFieldAction { CustomFieldId = id, ObjValue = "Test", ActionType = ListActionType.Add }).ToList() }; var ticketAddedRef = await _commandTicketService.Create(dto); if (!ticketAddedRef.IsSuccess) { throw new Exception("Failed to create a backlog item"); } await SaveChanges(); return(ticketAddedRef.Value); }
public async Task <IDomainResult <BacklogItemReference> > Create <T>(T dto) where T : BacklogItemAddUpdRequestBase { var(ticket, status) = dto switch { BugAddUpdRequest bug => await _dtoToEntityConversion.ConvertToEntity <BacklogItemBug, BugAddUpdRequest>(bug), UserStoryAddUpdRequest story => await _dtoToEntityConversion.ConvertToEntity <BacklogItemUserStory, UserStoryAddUpdRequest>(story), TaskAddUpdRequest task => await _dtoToEntityConversion.ConvertToEntity <BacklogItemTask, TaskAddUpdRequest>(task), FeatureAddUpdRequest feature => await _dtoToEntityConversion.ConvertToEntity <BacklogItemFeature, FeatureAddUpdRequest>(feature), _ => throw new ArgumentException($"Unsupported type ${typeof(T)}", nameof(dto)) }; if (!status.IsSuccess) { return(status.To <BacklogItemReference>()); } await DbSession.StoreAsync(ticket); var ticketRef = ticket.ToReference().RemoveEntityPrefixFromId(); await UpdateRelatedItems(dto, ticketRef); return(DomainResult.Success(ticketRef)); }
public async Task <IDomainResult <BacklogItemReference> > Update <T>(string id, T dto) where T : BacklogItemAddUpdRequestBase { var entity = await DbSession.LoadAsync <BacklogItem>(GetFullId(id)); if (entity == null) { return(DomainResult.NotFound <BacklogItemReference>()); } entity = dto switch { BugAddUpdRequest bug => await ConvertDtoToEntity(bug, entity as BacklogItemBug), UserStoryAddUpdRequest story => await ConvertDtoToEntity(story, entity as BacklogItemUserStory), _ => null }; if (entity == null) { return(DomainResult.Failed <BacklogItemReference>("Incorrect Backlog structure")); } return(DomainResult.Success( entity.ToReference().RemoveEntityPrefixFromId() )); }
public Task <ActionResult <BacklogItemReference> > Update([FromServices] IBacklogItemCommandService service, [FromRoute] string id, BugAddUpdRequest dto) => service.Update(id, dto).ToActionResultOfT();
public Task <ActionResult <BacklogItemReference> > Create([FromServices] IBacklogItemCommandService service, BugAddUpdRequest dto) => service.Create(dto).ToActionResultOfT();