コード例 #1
0
        private object ConvertFieldValue(Model.Field field, string value)
        {
            if (field.Type == Model.FieldType.Lookup)
            {
                if (((Model.FieldLookup)field).AllowMultivalue)
                {
                    return(Converter.ToLookupCollectionValue(value));
                }
                else
                {
                    return(Converter.ToLookupValue(value));
                }
            }
            if (field.Type == Model.FieldType.Url)
            {
                return(Converter.ToUrlValue(value));
            }
            if (field.Type == Model.FieldType.MultiChoice)
            {
                return(Converter.ToMultiChoiceValue(value));
            }
            if (field.Type == Model.FieldType.User)
            {
                if (((Model.FieldLookup)field).AllowMultivalue)
                {
                    return(Converter.ToUserCollectionValue(value));
                }
                else
                {
                    return(Converter.ToUserValue(value));
                }
            }
            if (field.Type == Model.FieldType.DateTime)
            {
                return(DateTime.Parse(value).ToUniversalTime());
            }
            if (field.Type == Model.FieldType.Taxonomy)
            {
                if (((Model.FieldTaxonomy)field).AllowMultivalue)
                {
                    return(Converter.ToTaxonomyCollectionValue(value));
                }
                else
                {
                    return(Converter.ToTaxonomyValue(value));
                }
            }

            return(value);
        }
コード例 #2
0
        private Model.Field CreateField(Field listField)
        {
            Model.Field field;

            switch (listField.FieldTypeKind)
            {
                case FieldType.Choice:
                    field = new Model.FieldChoice
                    {
                        Choices = ((Client.FieldChoice)listField).Choices
                    };
                    break;
                case FieldType.MultiChoice:
                    field = new Model.FieldChoice
                    {
                        Choices = ((Client.FieldMultiChoice)listField).Choices
                    };
                    break;

                case FieldType.DateTime:
                    field = new Model.FieldDateTime { DateOnly = ((Client.FieldDateTime)listField).DisplayFormat == DateTimeFieldFormatType.DateOnly };
                    break;

                case FieldType.Lookup:
                    field = new Model.FieldLookup { AllowMultivalue = ((Client.FieldLookup)listField).AllowMultipleValues };
                    break;

                case FieldType.User:
                    field = new Model.FieldLookup { AllowMultivalue = ((Client.FieldUser)listField).AllowMultipleValues };
                    break;

                case FieldType.Invalid:
                    switch (listField.TypeAsString)
                    {
                        case "TaxonomyFieldType":
                            field = new Model.FieldTaxonomy {AllowMultivalue = false, Type = Model.FieldType.Taxonomy, IsReadonly = true};
                            break;
                        case "TaxonomyFieldTypeMulti":
                            field = new Model.FieldTaxonomy { AllowMultivalue = true, Type = Model.FieldType.Taxonomy, IsReadonly = true};
                            break;
                        default:
                            field = new Model.Field();
                            break;
                    }
                    break;

                default:
                    field = new Model.Field();
                    break;
            }

            field.Id = listField.Id;
            field.IsHidden = listField.Hidden;
            field.IsReadonly |= listField.ReadOnlyField;
            field.Title = listField.Title;
            field.InternalName = listField.InternalName;
            field.Group = listField.Group;
            if( field.Type == 0 ) field.Type = (Model.FieldType)listField.FieldTypeKind;

            return field;
        }
コード例 #3
0
        private Model.Field CreateField(Field listField)
        {
            Model.Field field;

            switch (listField.FieldTypeKind)
            {
            case FieldType.Choice:
                field = new Model.FieldChoice
                {
                    Choices = ((Client.FieldChoice)listField).Choices
                };
                break;

            case FieldType.MultiChoice:
                field = new Model.FieldChoice
                {
                    Choices = ((Client.FieldMultiChoice)listField).Choices
                };
                break;

            case FieldType.DateTime:
                field = new Model.FieldDateTime {
                    DateOnly = ((Client.FieldDateTime)listField).DisplayFormat == DateTimeFieldFormatType.DateOnly
                };
                break;

            case FieldType.Lookup:
                field = new Model.FieldLookup {
                    AllowMultivalue = ((Client.FieldLookup)listField).AllowMultipleValues,
                    LookupField     = ((Client.FieldLookup)listField).LookupField,
                    LookupList      = ((Client.FieldLookup)listField).LookupList,
                    LookupWebId     = ((Client.FieldLookup)listField).LookupWebId
                };
                break;

            case FieldType.User:
                field = new Model.FieldLookup {
                    AllowMultivalue = ((Client.FieldUser)listField).AllowMultipleValues,
                    LookupField     = ((Client.FieldLookup)listField).LookupField,
                    LookupList      = ((Client.FieldUser)listField).LookupList,
                    LookupWebId     = ((Client.FieldUser)listField).LookupWebId
                };
                break;

            case FieldType.Invalid:
                switch (listField.TypeAsString)
                {
                case "TaxonomyFieldType":
                    field = new Model.FieldTaxonomy {
                        AllowMultivalue = false, Type = Model.FieldType.Taxonomy, IsReadonly = true
                    };
                    break;

                case "TaxonomyFieldTypeMulti":
                    field = new Model.FieldTaxonomy {
                        AllowMultivalue = true, Type = Model.FieldType.Taxonomy, IsReadonly = true
                    };
                    break;

                default:
                    field = new Model.Field();
                    break;
                }
                break;

            default:
                field = new Model.Field();
                break;
            }

            field.Id           = listField.Id;
            field.IsHidden     = listField.Hidden;
            field.IsReadonly  |= listField.ReadOnlyField;
            field.Title        = listField.Title;
            field.InternalName = listField.InternalName;
            field.Group        = listField.Group;
            if (field.Type == 0)
            {
                field.Type = (Model.FieldType)listField.FieldTypeKind;
            }

            return(field);
        }
コード例 #4
0
        private string ElementSelector(Model.Field field, ListItem item)
        {
            if (!item.FieldValues.ContainsKey(field.InternalName))
            {
                return(null);
            }

            var value = item.FieldValues[field.InternalName];

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

            switch (field.Type)
            {
            case Model.FieldType.Lookup:
                if (value is FieldLookupValue)
                {
                    return(Converter.LookupValueToString((FieldLookupValue)value));
                }
                if (value is FieldLookupValue[])
                {
                    return(Converter.LookupCollectionValueToString((FieldLookupValue[])value));
                }
                return(value.ToString());

            case Model.FieldType.User:
                if (value is FieldUserValue)
                {
                    return(Converter.LookupValueToString((FieldUserValue)value));
                }
                if (value is FieldUserValue[])
                {
                    return(Converter.LookupCollectionValueToString((FieldUserValue[])value));
                }
                return(value.ToString());

            case Model.FieldType.Url:
                if (value is FieldUrlValue)
                {
                    return(Converter.UrlValueToString((FieldUrlValue)value));
                }
                return(value.ToString());

            case Model.FieldType.MultiChoice:
                if (value is string[])
                {
                    return(Converter.ChoiceMultiValueToString((string[])value));
                }
                return(value.ToString());

            case Model.FieldType.DateTime:
                return(((DateTime)value).ToLocalTime().ToString(CultureInfo.CurrentCulture));

            case Model.FieldType.Taxonomy:
                if (value is TaxonomyFieldValue)
                {
                    return(Converter.TaxonomyValueToString((TaxonomyFieldValue)value));
                }
                if (value is TaxonomyFieldValueCollection)
                {
                    return(Converter.TaxonomyCollectionValueToString((TaxonomyFieldValueCollection)value));
                }
                return(value.ToString());

            default:
                return(value.ToString());
            }
        }