Example #1
0
        public IEnumerable <UseCaseArtifactViewModel> Get([FromUri] UseCasesByDiagramQuery query)
        {
            var result = _useCasesByDiagramQueryHandler.Handle(query);

            return(result.Select(i => UseCaseArtifactViewModel.FromModel(i, i.SpecificationItem))
                   .ToList());
        }
        public IEnumerable <UseCase> Handle(UseCasesByDiagramQuery query)
        {
            var useCases = _context.UseCases
                           .Include(uc => uc.SpecificationItem)
                           .Include(uc => uc.Contents)
                           .Include(uc => uc.PreConditions.Select(pc => pc.Contents))
                           .Include(uc => uc.PostConditions.Select(pc => pc.Contents))
                           .Where(uc => uc.UseCaseDiagram.Id == query.DiagramId &&
                                  (!query.Version.HasValue ||
                                   uc.Version == query.Version.Value))
                           .ToList();

            return(useCases);
        }
        public CreateUseCaseDiagramNewVersionCommand Convert(UseCaseDiagram input)
        {
            var result = new CreateUseCaseDiagramNewVersionCommand();

            var actorsQuery = new ActorsByDiagramQuery {
                DiagramId = input.Id, Version = input.Version
            };
            var actors = _actorsByDiagramQueryHandler.Handle(actorsQuery);

            var useCasesQuery = new UseCasesByDiagramQuery {
                DiagramId = input.Id, Version = input.Version
            };
            var useCases = _useCasesByDiagramQueryHandler.Handle(useCasesQuery);

            result.Actors   = actors.Select(FromModel);
            result.UseCases = useCases.Select(FromModel);
            result.Contents = input.Contents.Select(c => new UseCaseDiagramContentItem
            {
                Locale = c.Locale,
                Name   = c.Name
            });
            result.PackageId         = input.SpecificationItem.PackageId;
            result.EntitiesRelations = input.EntitiesRelations.Select(r => new UseCaseEntitiesRelationItem
            {
                Contents = r.Contents.Select(c => new UseCaseEntitiesRelationContent
                {
                    Description = c.Description,
                    Locale      = c.Locale
                }),
                SourceId = r.SourceId,
                TargetId = r.TargetId
            });
            result.Id = input.Id;
            result.UseCasesRelations = input.UseCasesRelations.Select(r => new UseCasesRelationItem
            {
                SourceId = r.SourceId,
                TargetId = r.TargetId,
                Type     = r.Type
            });

            result.PackageId = input.SpecificationItem.PackageId;

            return(result);
        }