public IEnumerable <Actor> Handle(ActorsByDiagramQuery query) { var actors = _context.Actors .Include(a => a.Contents) .Where(a => a.UseCaseDiagram.Id == query.DiagramId && (!query.Version.HasValue || a.Version == query.Version.Value)) .ToList(); return(actors); }
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); }