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)); }
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() )); }
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> > Create([FromServices] IBacklogItemCommandService service, UserStoryAddUpdRequest dto) => service.Create(dto).ToActionResultOfT();
public Task <ActionResult <BacklogItemReference> > Update([FromServices] IBacklogItemCommandService service, [FromRoute] string id, UserStoryAddUpdRequest dto) => service.Update(id, dto).ToActionResultOfT();