protected override void ExecuteCmdlet() { if (Id.Id == Guid.Empty) { Id = new GuidPipeBind(Guid.NewGuid()); } if (List != null) { var list = List.GetList(SelectedWeb); Field f; if (ParameterSetName != "FieldRef") { var fieldCI = new FieldCreationInformation(Type) { Id = Id.Id, InternalName = InternalName, DisplayName = DisplayName, Group = Group, AddToDefaultView = AddToDefaultView }; if (Type == FieldType.Choice || Type == FieldType.MultiChoice) { f = list.CreateField<FieldChoice>(fieldCI); ((FieldChoice)f).Choices = _context.Choices; f.Update(); ClientContext.ExecuteQueryRetry(); } else { f = list.CreateField(fieldCI); } if (Required) { f.Required = true; f.Update(); ClientContext.Load(f); ClientContext.ExecuteQueryRetry(); } WriteObject(f); } else { Field field = Field.Field; if (field == null) { if (Field.Id != Guid.Empty) { field = SelectedWeb.Fields.GetById(Field.Id); ClientContext.Load(field); ClientContext.ExecuteQueryRetry(); } else if (!string.IsNullOrEmpty(Field.Name)) { try { field = SelectedWeb.Fields.GetByInternalNameOrTitle(Field.Name); ClientContext.Load(field); ClientContext.ExecuteQueryRetry(); } catch { // Field might be sitecolumn, swallow exception } if (field != null) { var rootWeb = ClientContext.Site.RootWeb; field = rootWeb.Fields.GetByInternalNameOrTitle(Field.Name); ClientContext.Load(field); ClientContext.ExecuteQueryRetry(); } } } if (field != null) { list.Fields.Add(field); list.Update(); ClientContext.ExecuteQueryRetry(); } } } else { Field f; var fieldCI = new FieldCreationInformation(Type) { Id = Id.Id, InternalName = InternalName, DisplayName = DisplayName, Group = Group, AddToDefaultView = AddToDefaultView }; if (Type == FieldType.Choice || Type == FieldType.MultiChoice) { f = SelectedWeb.CreateField<FieldChoice>(fieldCI); ((FieldChoice)f).Choices = _context.Choices; f.Update(); ClientContext.ExecuteQueryRetry(); } else { f = SelectedWeb.CreateField(fieldCI); } if (Required) { f.Required = true; f.Update(); ClientContext.Load(f); ClientContext.ExecuteQueryRetry(); } switch (f.FieldTypeKind) { case FieldType.DateTime: { WriteObject(ClientContext.CastTo<FieldDateTime>(f)); break; } case FieldType.Choice: { WriteObject(ClientContext.CastTo<FieldChoice>(f)); break; } case FieldType.Calculated: { WriteObject(ClientContext.CastTo<FieldCalculated>(f)); break; } case FieldType.Computed: { WriteObject(ClientContext.CastTo<FieldComputed>(f)); break; } case FieldType.Geolocation: { WriteObject(ClientContext.CastTo<FieldGeolocation>(f)); break; } case FieldType.User: { WriteObject(ClientContext.CastTo<FieldUser>(f)); break; } case FieldType.Currency: { WriteObject(ClientContext.CastTo<FieldCurrency>(f)); break; } case FieldType.Guid: { WriteObject(ClientContext.CastTo<FieldGuid>(f)); break; } case FieldType.URL: { WriteObject(ClientContext.CastTo<FieldUrl>(f)); break; } case FieldType.Lookup: { WriteObject(ClientContext.CastTo<FieldLookup>(f)); break; } case FieldType.MultiChoice: { WriteObject(ClientContext.CastTo<FieldMultiChoice>(f)); break; } case FieldType.Number: { WriteObject(ClientContext.CastTo<FieldNumber>(f)); break; } default: { WriteObject(f); break; } } } }
protected override void ExecuteCmdlet() { if (Id.Id == Guid.Empty) { Id = new GuidPipeBind(Guid.NewGuid()); } if (List != null) { var list = List.GetList(SelectedWeb); Field f; if (ParameterSetName != "FieldRef") { var fieldCI = new FieldCreationInformation(Type) { Id = Id.Id, InternalName = InternalName, DisplayName = DisplayName, Group = Group, AddToDefaultView = AddToDefaultView }; if (Type == FieldType.Choice || Type == FieldType.MultiChoice) { f = list.CreateField<FieldChoice>(fieldCI); ((FieldChoice)f).Choices = _context.Choices; f.Update(); ClientContext.ExecuteQueryRetry(); } else { f = list.CreateField(fieldCI); } if (Required) { f.Required = true; f.Update(); ClientContext.Load(f); ClientContext.ExecuteQueryRetry(); } WriteObject(f); } else { Field field = Field.Field; if (field == null) { if (Field.Id != Guid.Empty) { field = SelectedWeb.Fields.GetById(Field.Id); ClientContext.Load(field); ClientContext.ExecuteQueryRetry(); } else if (!string.IsNullOrEmpty(Field.Name)) { try { field = SelectedWeb.Fields.GetByInternalNameOrTitle(Field.Name); ClientContext.Load(field); ClientContext.ExecuteQueryRetry(); } catch { // Field might be sitecolumn, swallow exception } if (field != null) { var rootWeb = ClientContext.Site.RootWeb; field = rootWeb.Fields.GetByInternalNameOrTitle(Field.Name); ClientContext.Load(field); ClientContext.ExecuteQueryRetry(); } } } if (field != null) { list.Fields.Add(field); list.Update(); ClientContext.ExecuteQueryRetry(); } } } else { Field f; var fieldCI = new FieldCreationInformation(Type) { Id = Id.Id, InternalName = InternalName, DisplayName = DisplayName, Group = Group, AddToDefaultView = AddToDefaultView }; if (Type == FieldType.Choice || Type == FieldType.MultiChoice) { f = SelectedWeb.CreateField<FieldChoice>(fieldCI); ((FieldChoice)f).Choices = _context.Choices; f.Update(); ClientContext.ExecuteQueryRetry(); } else { f = SelectedWeb.CreateField(fieldCI); } if (Required) { f.Required = true; f.Update(); ClientContext.Load(f); ClientContext.ExecuteQueryRetry(); } WriteObject(f); } }