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