/// <summary>
        /// Run the code example.
        /// </summary>
        /// <param name="user">The DFP user object running the code example.</param>
        public override void Run(DfpUser user)
        {
            // Get the CustomFieldService.
            CustomFieldService customFieldService = (CustomFieldService)user.GetService(
                DfpService.v201311.CustomFieldService);

            // Set the ID of the custom field to update.
            long customFieldId = long.Parse(_T("INSERT_CUSTOM_FIELD_ID_HERE"));

            try {
                // Get the custom field.
                CustomField customField = customFieldService.getCustomField(customFieldId);

                if (customField != null)
                {
                    customField.description =
                        (customField.description == null ? "" : customField.description + " Updated");

                    // Update the custom field on the server.
                    CustomField[] customFields =
                        customFieldService.updateCustomFields(new CustomField[] { customField });

                    // Display results
                    if (customFields != null)
                    {
                        foreach (CustomField updatedCustomField in customFields)
                        {
                            Console.WriteLine("Custom field with ID \"{0}\", name \"{1}\", and description " +
                                              "\"{2}\" was updated.", updatedCustomField.id, updatedCustomField.name,
                                              updatedCustomField.description);
                        }
                    }
                    else
                    {
                        Console.WriteLine("No custom fields were updated.");
                    }
                }
                else
                {
                    Console.WriteLine("No custom fields found to update.");
                }
            } catch (Exception ex) {
                Console.WriteLine("Failed to update custom fields. Exception says \"{0}\"", ex.Message);
            }
        }
示例#2
0
        /// <summary>
        /// Run the code example.
        /// </summary>
        /// <param name="user">The DFP user object running the code example.</param>
        public override void Run(DfpUser user)
        {
            // Get the CustomFieldService.
            CustomFieldService customFieldService = (CustomFieldService)user.GetService(
                DfpService.v201311.CustomFieldService);

            // Get the LineItemService.
            LineItemService lineItemService = (LineItemService)user.GetService(
                DfpService.v201311.LineItemService);

            // Set the IDs of the custom fields, custom field option, and line item.
            long customFieldId         = long.Parse(_T("INSERT_STRING_CUSTOM_FIELD_ID_HERE"));
            long dropDownCustomFieldId = long.Parse(_T("INSERT_DROP_DOWN_CUSTOM_FIELD_ID_HERE"));
            long customFieldOptionId   = long.Parse(_T("INSERT_CUSTOM_FIELD_OPTION_ID_HERE"));
            long lineItemId            = long.Parse(_T("INSERT_LINE_ITEM_ID_HERE"));

            try {
                // Get the custom field.
                CustomField customField = customFieldService.getCustomField(customFieldId);

                // Get the drop-down custom field.
                DropDownCustomField dropDownCustomField =
                    (DropDownCustomField)customFieldService.getCustomField(dropDownCustomFieldId);

                // Get the line item.
                LineItem lineItem = lineItemService.getLineItem(lineItemId);

                // Create custom field values.
                List <BaseCustomFieldValue> customFieldValues = new List <BaseCustomFieldValue>();
                TextValue textValue = new TextValue();
                textValue.value = "Custom field value";

                CustomFieldValue customFieldValue = new CustomFieldValue();
                customFieldValue.customFieldId = customFieldId;
                customFieldValue.value         = textValue;
                customFieldValues.Add(customFieldValue);

                DropDownCustomFieldValue dropDownCustomFieldValue = new DropDownCustomFieldValue();
                dropDownCustomFieldValue.customFieldId       = dropDownCustomFieldId;
                dropDownCustomFieldValue.customFieldOptionId = customFieldOptionId;
                customFieldValues.Add(dropDownCustomFieldValue);

                // Only add existing custom field values for different custom fields than
                // the ones you are setting.
                if (lineItem.customFieldValues != null)
                {
                    foreach (BaseCustomFieldValue oldCustomFieldValue in lineItem.customFieldValues)
                    {
                        if (!(oldCustomFieldValue.customFieldId == customFieldId) &&
                            !(oldCustomFieldValue.customFieldId == dropDownCustomFieldId))
                        {
                            customFieldValues.Add(oldCustomFieldValue);
                        }
                    }
                }

                lineItem.customFieldValues = customFieldValues.ToArray();

                // Update the line item on the server.
                LineItem[] lineItems = lineItemService.updateLineItems(new LineItem[] { lineItem });

                if (lineItems != null)
                {
                    foreach (LineItem updatedLineItem in lineItems)
                    {
                        List <String> customFieldValueStrings = new List <String>();
                        foreach (BaseCustomFieldValue baseCustomFieldValue in lineItem.customFieldValues)
                        {
                            if (baseCustomFieldValue is CustomFieldValue &&
                                ((CustomFieldValue)baseCustomFieldValue).value is TextValue)
                            {
                                customFieldValueStrings.Add("{ID: '" + baseCustomFieldValue.customFieldId
                                                            + "', value: '"
                                                            + ((TextValue)((CustomFieldValue)baseCustomFieldValue).value).value
                                                            + "'}");
                            }
                            else if (baseCustomFieldValue is DropDownCustomFieldValue)
                            {
                                customFieldValueStrings.Add("{ID: '" + baseCustomFieldValue.customFieldId
                                                            + "', custom field option ID: '"
                                                            + ((DropDownCustomFieldValue)baseCustomFieldValue).customFieldOptionId
                                                            + "'}");
                            }
                        }
                        Console.WriteLine("A line item with ID \"{0}\" set with custom field values \"{1}\".",
                                          updatedLineItem.id, string.Join(", ", customFieldValueStrings.ToArray()));
                    }
                }
                else
                {
                    Console.WriteLine("No line items were updated.");
                }
            } catch (Exception ex) {
                Console.WriteLine("Failed to update line items. Exception says \"{0}\"", ex.Message);
            }
        }