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