예제 #1
0
        public void Delete(string entity, Guid id)
        {
            DeleteHandler.Execute(entity, id);
            var workflowInput = new WorkflowInputParameter();

            workflowInput.Values.Add("Id", id);
            foreach (var item in DeleteWorkflows
                     .Where(k => k.EntityLogicalName == entity)
                     .OrderBy(k => k.Order))
            {
                if (item.Action != null)
                {
                    item.Action.Execute(this, workflowInput);
                }
            }
        }
예제 #2
0
        public void Update(string entity, Guid id, Dictionary <string, object> values)
        {
            UpdateHandler.Execute(entity, id, values);
            var workflowInput = new WorkflowInputParameter();

            workflowInput.Values.Add("Id", id);
            workflowInput.Values.Add("Values", values);
            foreach (var item in UpdateWorkflows
                     .Where(k => k.EntityLogicalName == entity)
                     .OrderBy(k => k.Order))
            {
                if (item.Action != null)
                {
                    item.Action.Execute(this, workflowInput);
                }
            }
        }
예제 #3
0
        public Guid Associate(string firstEntity, Guid firstId, string intersectionEntity, string secondEntity, Guid secondId)
        {
            var id            = AssociateHandler.Execute(firstEntity, firstId, intersectionEntity, secondEntity, secondId);
            var workflowInput = new WorkflowInputParameter();

            workflowInput.Values.Add("Id", id);
            workflowInput.Values.Add("FirstEntity", firstEntity);
            workflowInput.Values.Add("FirstId", firstId);
            workflowInput.Values.Add("SecondEntity", secondEntity);
            workflowInput.Values.Add("SecondId", secondId);

            foreach (var item in AssociateWorkflow
                     .Where(k => k.EntityLogicalName == intersectionEntity)
                     .OrderBy(k => k.Order))
            {
                if (item.Action != null)
                {
                    item.Action.Execute(this, workflowInput);
                }
            }
            return(id);
        }
예제 #4
0
        public void Execute(GenericManager manager, WorkflowInputParameter inputParameter)
        {
            var id           = (Guid)inputParameter.Values["Id"];
            var record       = manager.Retrieve("Schema", id);
            var schemaObject = Entity.DictionartyToEntity <Schema>(record.Values);
            var schemaName   = schemaObject.Name;

            SchemaEntityReference = new EntityReferenceValue(id, Schema.LogicalName, schemaName);


            var repositoryName = $"I{schemaObject.Name}MainRepository";
            var repositoryId   = CreateMainRepository(manager, repositoryName);

            RepositoryEntityReference = new EntityReferenceValue(repositoryId, Repository.LogicalName, repositoryName);

            CreateIdAttribute(manager);
            CreateNameAttribute(manager);
            CreateDateAttributes(manager);

            if (schemaObject.HasState)
            {
                CreateStateAttributes(manager);
            }

            if (schemaObject.HasOwner)
            {
                CreateOwnerAttribute(manager);
            }

            if (schemaObject.HasUserRelationship)
            {
                CreateUserAttributes(manager);
            }

            CreateMainModel(manager, schemaName);

            CreateCrudServices(manager);
        }