/// <summary>
        /// Run the code example.
        /// </summary>
        public void Run(DfpUser user)
        {
            using (CustomFieldService customFieldService =
                       (CustomFieldService)user.GetService(DfpService.v201802.CustomFieldService))
            {
                // Set the ID of the drop-down custom field to create options for.
                long customFieldId = long.Parse(_T("INSERT_DROP_DOWN_CUSTOM_FIELD_ID_HERE"));

                // Create custom field options.
                CustomFieldOption customFieldOption1 = new CustomFieldOption();
                customFieldOption1.displayName   = "Approved";
                customFieldOption1.customFieldId = customFieldId;

                CustomFieldOption customFieldOption2 = new CustomFieldOption();
                customFieldOption2.displayName   = "Unapproved";
                customFieldOption2.customFieldId = customFieldId;

                try
                {
                    // Add custom field options.
                    CustomFieldOption[] customFieldOptions =
                        customFieldService.createCustomFieldOptions(new CustomFieldOption[]
                    {
                        customFieldOption1,
                        customFieldOption2
                    });

                    // Display results.
                    if (customFieldOptions != null)
                    {
                        foreach (CustomFieldOption customFieldOption in customFieldOptions)
                        {
                            Console.WriteLine(
                                "Custom field option with ID \"{0}\" and name \"{1}\" was " +
                                "created.", customFieldOption.id, customFieldOption.displayName);
                        }
                    }
                    else
                    {
                        Console.WriteLine("No custom field options created.");
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(
                        "Failed to create custom field options. Exception says \"{0}\"", e.Message);
                }
            }
        }
    /// <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.v201511.CustomFieldService);

      // Set the ID of the drop-down custom field to create options for.
      long customFieldId = long.Parse(_T("INSERT_DROP_DOWN_CUSTOM_FIELD_ID_HERE"));

      // Create custom field options.
      CustomFieldOption customFieldOption1 = new CustomFieldOption();
      customFieldOption1.displayName = "Approved";
      customFieldOption1.customFieldId = customFieldId;

      CustomFieldOption customFieldOption2 = new CustomFieldOption();
      customFieldOption2.displayName = "Unapproved";
      customFieldOption2.customFieldId = customFieldId;

      try {
        // Add custom field options.
        CustomFieldOption[] customFieldOptions =
            customFieldService.createCustomFieldOptions(new CustomFieldOption[] {customFieldOption1,
              customFieldOption2});

        // Display results.
        if (customFieldOptions != null) {
          foreach (CustomFieldOption customFieldOption in customFieldOptions) {
            Console.WriteLine("Custom field option with ID \"{0}\" and name \"{1}\" was created.",
                customFieldOption.id, customFieldOption.displayName);
          }
        } else {
          Console.WriteLine("No custom field options created.");
        }
      } catch (Exception e) {
        Console.WriteLine("Failed to create custom field options. Exception says \"{0}\"",
            e.Message);
      }
    }
Exemplo n.º 3
0
        private void BuildProductMediaXml(
            XmlDocument doc,
            XmlElement root)
        {
            string imageFolderPath          = ProductHelper.MediaFolderPath(CacheHelper.GetCurrentSiteSettings().SiteId, product.ProductId);
            string thumbnailImageFolderPath = imageFolderPath + "thumbs/";
            string siteRoot = WebUtils.GetSiteRoot();

            Regex youtubeVideoRegex       = new Regex("youtu(?:\\.be|be\\.com)/(?:.*v(?:/|=)|(?:.*/)?)([a-zA-Z0-9-_]+)");
            List <ContentMedia> listMedia = ContentMedia.GetByContentDesc(product.ProductGuid);

            List <int> mediaTypes = new List <int>();
            List <CustomFieldOption> listOptions = new List <CustomFieldOption>();

            foreach (ContentMedia media in listMedia)
            {
                if (media.MediaType > 0 && !mediaTypes.Contains(media.MediaType))
                {
                    mediaTypes.Add(media.MediaType);
                }
            }
            if (mediaTypes.Count > 0)
            {
                listOptions = CustomFieldOption.GetByOptionIds(product.SiteId, string.Join(";", mediaTypes.ToArray()));
            }

            if (listOptions.Count > 0)
            {
                foreach (CustomFieldOption option in listOptions)
                {
                    XmlElement element = doc.CreateElement("ProductColors");
                    root.AppendChild(element);
                    XmlHelper.AddNode(doc, element, "Title", option.Name);
                    XmlHelper.AddNode(doc, element, "Color", option.OptionColor);
                    XmlHelper.AddNode(doc, element, "ColorId", option.CustomFieldOptionId.ToString());

                    foreach (ContentMedia media in listMedia)
                    {
                        if (
                            (option.CustomFieldOptionId == media.MediaType) &&
                            (media.LanguageId == -1 || media.LanguageId == languageId) &&
                            (media.MediaType != (int)ProductMediaType.Video)
                            )
                        {
                            BuildProductImagesXml(doc, element, media, imageFolderPath, thumbnailImageFolderPath);
                        }
                    }
                }
            }

            foreach (ContentMedia media in listMedia)
            {
                if (media.LanguageId == -1 || media.LanguageId == languageId)
                {
                    if (media.MediaType != (int)ProductMediaType.Video)
                    {
                        BuildProductImagesXml(doc, root, media, imageFolderPath, thumbnailImageFolderPath);

                        if (media.MediaType != (int)ProductMediaType.Image)
                        {
                            string relativePath = siteRoot + ProductHelper.GetMediaFilePath(imageFolderPath, media.MediaFile);
                            basePage.AdditionalMetaMarkup += "\n<meta property=\"og:image\" content=\"" + relativePath + "\" />";
                            basePage.AdditionalMetaMarkup += "\n<meta itemprop=\"image\" content=\"" + relativePath + "\" />";
                        }
                    }
                    else
                    {
                        XmlElement element = doc.CreateElement("ProductVideos");
                        root.AppendChild(element);

                        XmlHelper.AddNode(doc, element, "Title", media.Title);
                        XmlHelper.AddNode(doc, element, "DisplayOrder", media.DisplayOrder.ToString());
                        XmlHelper.AddNode(doc, element, "Type", media.MediaType.ToString());
                        XmlHelper.AddNode(doc, element, "VideoUrl", ProductHelper.GetMediaFilePath(imageFolderPath, media.MediaFile));

                        string thumbnailPath = ProductHelper.GetMediaFilePath(thumbnailImageFolderPath, media.ThumbnailFile);
                        if (media.ThumbnailFile.Length == 0 && media.MediaFile.ContainsCaseInsensitive("youtu"))
                        {
                            Match  youtubeMatch = youtubeVideoRegex.Match(media.MediaFile);
                            string videoId      = string.Empty;
                            if (youtubeMatch.Success)
                            {
                                videoId = youtubeMatch.Groups[1].Value;
                            }

                            thumbnailPath = "http://img.youtube.com/vi/" + videoId + "/0.jpg";
                        }

                        XmlHelper.AddNode(doc, element, "ThumbnailUrl", thumbnailPath);
                    }

                    if (displaySettings.ShowVideo)
                    {
                        XmlElement element = doc.CreateElement("ProductMedia");
                        root.AppendChild(element);

                        XmlHelper.AddNode(doc, element, "Title", media.Title);
                        XmlHelper.AddNode(doc, element, "DisplayOrder", media.DisplayOrder.ToString());
                        XmlHelper.AddNode(doc, element, "Type", media.MediaType.ToString());
                        XmlHelper.AddNode(doc, element, "MediaUrl", ProductHelper.GetMediaFilePath(imageFolderPath, media.MediaFile));
                        XmlHelper.AddNode(doc, element, "ThumbnailUrl", ProductHelper.GetMediaFilePath(thumbnailImageFolderPath, media.ThumbnailFile));
                    }
                }
            }
        }
 public void Update(CustomFieldOption entity)
 {
     Context.Entry(entity).State = EntityState.Modified;
 }
 public void Save(CustomFieldOption entity)
 {
     Context.CustomFieldOptions.Add(entity);
 }