예제 #1
0
        public CreateFieldDefinitionStatus AddReferenceField(int id, string name, bool required, int targetFieldDefinitionID)
        {
            FormDefinition form = Get(id);

            if (form == null)
            {
                return(CreateFieldDefinitionStatus.NoSuchFormDefinition);
            }

            if (String.IsNullOrEmpty(name))
            {
                return(CreateFieldDefinitionStatus.InvalidName);
            }

            FieldDefinition targetField = FieldRepository.Get(targetFieldDefinitionID);

            if (targetField == null)
            {
                return(CreateFieldDefinitionStatus.NoSuchTargetFieldDefinition);
            }

            FormDefinition targetForm = Get(targetField.FormDefinitionID);

            if (targetForm == null)
            {
                return(CreateFieldDefinitionStatus.NoSuchTargetFormDefinition);
            }

            if (!ProjectService.CanUserManage(form.ProjectID))
            {
                return(CreateFieldDefinitionStatus.PermissionDenied);
            }

            form.Fields.Add(new FieldDefinition
            {
                Name                    = name,
                PublicIdentifier        = HashHelper.ComputePublicIdentifier(typeof(FieldDefinition).Name, name),
                FieldType               = FieldType.ReferenceField,
                Required                = required,
                FormDefinitionID        = id,
                ReferenceFormID         = targetForm.ID,
                ReferenceDisplayFieldID = targetFieldDefinitionID
            });
            FormRepository.Update(form);
            ActivityService.FieldDefinitionCreated(form.Fields.Max(f => f.ID));
            return(CreateFieldDefinitionStatus.Created);
        }
예제 #2
0
        public CreateFieldDefinitionStatus AddField(int id, string name, int fieldType, bool required)
        {
            FormDefinition form = Get(id);

            if (form == null)
            {
                return(CreateFieldDefinitionStatus.NoSuchFormDefinition);
            }

            if (!Validator.CheckFieldType(fieldType, form.FormType) && fieldType != FieldType.ReferenceField)
            {
                return(CreateFieldDefinitionStatus.InvalidFieldType);
            }

            if (String.IsNullOrEmpty(name))
            {
                return(CreateFieldDefinitionStatus.InvalidName);
            }

            if (!ProjectService.CanUserManage(form.ProjectID))
            {
                return(CreateFieldDefinitionStatus.PermissionDenied);
            }

            form.Fields.Add(new FieldDefinition
            {
                Name             = name,
                PublicIdentifier = HashHelper.ComputePublicIdentifier(typeof(FieldDefinition).Name, name),
                FieldType        = fieldType,
                Required         = required,
                FormDefinitionID = id
            });
            FormRepository.Update(form);
            ActivityService.FieldDefinitionCreated(form.Fields.Max(f => f.ID));
            return(CreateFieldDefinitionStatus.Created);
        }