Exemplo n.º 1
0
        private NodeType activate_node_type(Guid applicationId, Guid currentUserId, string id, Guid?parentNodeTypeId = null)
        {
            TemplateNodeType tempNodeType = !NodeTypes.ContainsKey(id) ? null : NodeTypes[id];

            if (tempNodeType == null)
            {
                return(null);
            }

            NodeType nodeType = new NodeType()
            {
                NodeTypeID     = IDs.new_id(tempNodeType.ID),
                TemplateTypeID = IDs.get_id_from_template(tempNodeType.ID),
                Name           = Base64.decode(tempNodeType.Name),
                ParentID       = parentNodeTypeId,
                CreatorUserID  = currentUserId
            };

            if (!CNController.add_node_type(applicationId, nodeType))
            {
                return(null);
            }

            if (tempNodeType.Extensions != null && tempNodeType.Extensions.Count > 0)
            {
                CNController.initialize_extensions(applicationId, nodeType.NodeTypeID.Value, currentUserId, ignoreDefault: true);
                CNController.save_extensions(applicationId, nodeType.NodeTypeID.Value, tempNodeType.Extensions, currentUserId);
            }

            CNController.initialize_service(applicationId, nodeType.NodeTypeID.Value);

            if (!string.IsNullOrEmpty(tempNodeType.ServiceTitle))
            {
                CNController.set_service_title(applicationId, nodeType.NodeTypeID.Value, Base64.decode(tempNodeType.ServiceTitle));
            }

            if (!string.IsNullOrEmpty(tempNodeType.ServiceDescription))
            {
                CNController.set_service_description(applicationId, nodeType.NodeTypeID.Value, Base64.decode(tempNodeType.ServiceDescription));
            }

            if (tempNodeType.NoContent.HasValue && tempNodeType.NoContent.Value)
            {
                CNController.no_content_service(applicationId, nodeType.NodeTypeID.Value, true);
            }

            if (tempNodeType.IsTree.HasValue && tempNodeType.IsTree.Value)
            {
                CNController.is_tree(applicationId, nodeType.NodeTypeID.Value, true);
            }

            if (tempNodeType.EnableContribution.HasValue && tempNodeType.EnableContribution.Value)
            {
                CNController.enable_contribution(applicationId, nodeType.NodeTypeID.Value, true);
            }

            if (tempNodeType.EnablePreviousVersionSelect.HasValue && tempNodeType.EnablePreviousVersionSelect.Value)
            {
                CNController.enable_previous_version_select(applicationId, nodeType.NodeTypeID.Value, true);
            }

            if (tempNodeType.DisableAbstractAndKeywords.HasValue && tempNodeType.DisableAbstractAndKeywords.Value)
            {
                CNController.abstract_and_keywords_disabled(applicationId, nodeType.NodeTypeID.Value, true);
            }

            if (tempNodeType.DisableFileUpload.HasValue && tempNodeType.DisableFileUpload.Value)
            {
                CNController.file_upload_disabled(applicationId, nodeType.NodeTypeID.Value, true);
            }

            if (tempNodeType.DisableRelatedNodesSelect.HasValue && tempNodeType.DisableRelatedNodesSelect.Value)
            {
                CNController.related_nodes_select_disabled(applicationId, nodeType.NodeTypeID.Value, true);
            }

            if (!string.IsNullOrEmpty(tempNodeType.FormID) && tempNodeType.Extensions.Any(e => e.ExtensionType == ExtensionType.Form))
            {
                FormType form = activate_form(applicationId, currentUserId, tempNodeType.FormID);
                if (form != null)
                {
                    FGController.set_form_owner(applicationId, nodeType.NodeTypeID.Value, form.FormID.Value, currentUserId);
                }
            }

            if (tempNodeType.ChildrenIDs != null && tempNodeType.ChildrenIDs.Count > 0)
            {
                tempNodeType.ChildrenIDs
                .ForEach(cId => activate_node_type(applicationId, currentUserId, cId, parentNodeTypeId: nodeType.NodeTypeID));
            }

            activate_node_type_icon(applicationId, id);

            return(nodeType);
        }
Exemplo n.º 2
0
        private void add_node_type(Guid?nodeTypeId)
        {
            if (!RefAppID.HasValue || !nodeTypeId.HasValue || !RaaiVanSettings.SAASBasedMultiTenancy)
            {
                return;
            }

            //get new id
            string newNtId = IDs.resolve(nodeTypeId);

            if (NodeTypes.ContainsKey(newNtId))
            {
                return;
            }
            //end of get new id

            Guid appId = RefAppID.Value;
            Guid ntId  = nodeTypeId.Value;

            NodeType nodeType = CNController.get_node_type(appId, ntId);

            if (nodeType == null || string.IsNullOrEmpty(nodeType.Name))
            {
                return;
            }

            Service service = CNController.get_service(appId, ntId);

            if (service == null)
            {
                service = new Service();
            }

            List <Extension> extensions = CNController.get_extensions(appId, ntId)
                                          .Where(ex => !ex.Disabled.HasValue || !ex.Disabled.Value).ToList();
            FormType           form         = FGController.get_owner_form(appId, ntId);
            List <FormElement> formElements = form == null || !form.FormID.HasValue ? new List <FormElement>() :
                                              FGController.get_form_elements(appId, form.FormID.Value);

            TemplateNodeType newNodeType = new TemplateNodeType()
            {
                ID                          = newNtId,
                Name                        = Base64.encode(nodeType.Name),
                ServiceTitle                = Base64.encode(service.Title),
                ServiceDescription          = Base64.encode(service.Description),
                Extensions                  = extensions,
                FormID                      = form == null ? null : IDs.resolve(form.FormID),
                NoContent                   = service.NoContent,
                IsTree                      = service.IsTree,
                EnableContribution          = service.EnableContribution,
                EnablePreviousVersionSelect = service.EnablePreviousVersionSelect,
                DisableAbstractAndKeywords  = service.DisableAbstractAndKeywords,
                DisableFileUpload           = service.DisableFileUpload,
                DisableRelatedNodesSelect   = service.DisableRelatedNodesSelect
            };

            NodeTypes[newNtId] = newNodeType;

            if (form != null && form.FormID.HasValue)
            {
                add_dependency(ntId, form.FormID);
                add_form(form, formElements);
            }

            List <NodeType> children = CNController.get_child_node_types(appId, nodeTypeId.Value);

            if (children != null && children.Count > 0)
            {
                newNodeType.ChildrenIDs = children.Select(c => IDs.resolve(c.NodeTypeID)).ToList();
                children.ForEach(c => add_node_type(c.NodeTypeID));
            }
        }