コード例 #1
0
        private void CreateCreateMethod(GenericManager manager)
        {
            var createMethodInputParameter = new MethodParameter()
            {
                Name = "Entity",
                Type = MethodParameter.ParameterInputType.Entity,
            };
            var createMethodOutputParameter = new MethodParameter()
            {
                Name = "Id",
                Type = MethodParameter.ParameterInputType.Guid,
            };
            var createMehtodId = CreateRepositoryMethod(manager, "Create",
                                                        RepositoryMethod.RepositoryMethodType.Create,
                                                        new MethodParameter[] { createMethodInputParameter },
                                                        createMethodOutputParameter);

            var repositoryMethod = Entity.DictionartyToEntity <RepositoryMethod>(manager.Retrieve(RepositoryMethod.LogicalName, createMehtodId).Values);

            var content = new UseCaseContent();

            content.Parameters.Add(createMethodInputParameter);
            content.Parameters.Add(createMethodOutputParameter);
            content.SentenceCollection.Sentences.Add(new ExecuteRepositoryMethodSentence(SchemaEntityReference.DisplayName, RepositoryEntityReference.DisplayName, repositoryMethod));
            _ = CreateUseCase(manager, "CreateService", "Create record", "Create record", UseCaseType.Create, content);
        }
コード例 #2
0
        private void PersistUseCase(UseCaseDiagram useCaseDiagram, UseCaseItem useCaseData, int identifier, IEnumerable <UseCase> oldVersionUseCases = null)
        {
            var useCaseEntity = new UseCase();

            useCaseEntity.Id            = useCaseData.Cell.Id;
            useCaseEntity.X             = useCaseData.Cell.Position.X;
            useCaseEntity.Y             = useCaseData.Cell.Position.Y;
            useCaseEntity.Identifier    = identifier;
            useCaseEntity.Version       = useCaseDiagram.Version;
            useCaseEntity.IsLastVersion = true;

            foreach (var contentData in useCaseData.Contents)
            {
                var useCaseContent = new UseCaseContent();
                useCaseContent.Id          = Guid.NewGuid();
                useCaseContent.Name        = contentData.Name;
                useCaseContent.Description = contentData.Description;
                useCaseContent.Path        = contentData.Path;
                useCaseContent.Locale      = contentData.Locale;

                useCaseEntity.Contents.Add(useCaseContent);
                _useCaseContentRepository.Add(useCaseContent);
            }

            foreach (var postCondition in useCaseData.PostConditions)
            {
                PersistPostCondition(useCaseEntity, postCondition);
            }

            foreach (var preCondition in useCaseData.PreConditions)
            {
                PersistPreCondition(useCaseEntity, preCondition);
            }

            if (oldVersionUseCases == null || !oldVersionUseCases.Any(o => o.Id == useCaseEntity.Id))
            {
                var specificationItem = new SpecificationItem();
                specificationItem.Id        = useCaseEntity.Id;
                specificationItem.Label     = $"{UseCase.PREFIX}{useCaseEntity.Identifier}";
                specificationItem.Active    = true;
                specificationItem.Type      = SpecificationItemType.UseCase;
                specificationItem.PackageId = useCaseDiagram.SpecificationItem.PackageId;
                _specificationItemRepository.Add(specificationItem);
                useCaseEntity.SpecificationItem = specificationItem;
            }
            else
            {
                var oldUseCase = oldVersionUseCases.FirstOrDefault(o => o.Id == useCaseEntity.Id);
                useCaseEntity.SpecificationItem           = oldUseCase.SpecificationItem;
                useCaseEntity.SpecificationItem.PackageId = useCaseDiagram.SpecificationItem.PackageId;
            }

            useCaseEntity.UseCaseDiagram = useCaseDiagram;
            useCaseEntity.ProjectId      = useCaseDiagram.ProjectId;

            useCaseDiagram.Entities.Add(useCaseEntity);
            _useCaseRepository.Add(useCaseEntity);

            _useCaseEntityRepository.Add(useCaseEntity);
        }
コード例 #3
0
 public static UseCaseContentViewModel FromModel(UseCaseContent model)
 {
     return(new UseCaseContentViewModel
     {
         Locale = model.Locale,
         Name = model.Name,
         Description = model.Description,
         Path = model.Path
     });
 }
コード例 #4
0
        private Guid CreateUseCase(GenericManager manager, string name, string displayName, string description, UseCaseType type, UseCaseContent content)
        {
            var usecase = new UseCase()
            {
                SchemaId    = SchemaEntityReference,
                Name        = name,
                Description = description,
                DisplayName = displayName,
                Type        = new OptionSetValue((int)type),
                Content     = JsonParserService.StringfyWithTypes(content),
            };

            return(manager.Create(UseCase.LogicalName, Entity.EntityToDictionary(usecase)));
        }