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