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); } } }
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); } } }
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); }
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); }