/// <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 InventoryService.
      InventoryService inventoryService =
          (InventoryService) user.GetService(DfpService.v201211.InventoryService);

      // Get the NetworkService.
      NetworkService networkService =
          (NetworkService) user.GetService(DfpService.v201211.NetworkService);

      string effectiveRootAdUnitId = networkService.getCurrentNetwork().effectiveRootAdUnitId;

      // Create an array to store local ad unit objects.
      AdUnit[] adUnits = new AdUnit[5];

      for (int i = 0; i < 5; i++) {
        AdUnit adUnit = new AdUnit();
        adUnit.name = string.Format("Ad_Unit_{0}", i);
        adUnit.parentId = effectiveRootAdUnitId;

        adUnit.description = "Ad unit description.";
        adUnit.targetWindow = AdUnitTargetWindow.BLANK;

        // Set the size of possible creatives that can match this ad unit.
        Size size = new Size();
        size.width = 300;
        size.height = 250;

        // Create ad unit size.
        AdUnitSize adUnitSize = new AdUnitSize();
        adUnitSize.size = size;
        adUnitSize.environmentType = EnvironmentType.BROWSER;

        adUnit.adUnitSizes = new AdUnitSize[] {adUnitSize};
        adUnits[i] = adUnit;
      }

      try {
        // Create the ad units on the server.
        adUnits = inventoryService.createAdUnits(adUnits);

        if (adUnits != null) {
          foreach (AdUnit adUnit in adUnits) {
            Console.WriteLine("An ad unit with ID = '{0}' was created under parent with " +
                "ID = '{1}'.", adUnit.id, adUnit.parentId);
          }
        } else {
          Console.WriteLine("No ad units created.");
        }
      } catch (Exception ex) {
        Console.WriteLine("Failed to create ad units. Exception says \"{0}\"", ex.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 InventoryService.
      InventoryService inventoryService =
          (InventoryService) user.GetService(DfpService.v201211.InventoryService);

      // Get the NetworkService.
      NetworkService networkService =
          (NetworkService) user.GetService(DfpService.v201211.NetworkService);

      // Set the parent ad unit's ID for all ad units to be created under.
      String effectiveRootAdUnitId = networkService.getCurrentNetwork().effectiveRootAdUnitId;

      // Create local ad unit object.
      AdUnit adUnit = new AdUnit();
      adUnit.name = "Mobile_Ad_Unit";
      adUnit.parentId = effectiveRootAdUnitId;
      adUnit.description = "Ad unit description.";
      adUnit.targetWindow = AdUnitTargetWindow.BLANK;
      adUnit.targetPlatform = TargetPlatform.MOBILE;

      // Create ad unit size.
      AdUnitSize adUnitSize = new AdUnitSize();
      Size size = new Size();
      size.width = 400;
      size.height = 300;
      size.isAspectRatio = false;
      adUnitSize.size = size;
      adUnitSize.environmentType = EnvironmentType.BROWSER;

      // Set the size of possible creatives that can match this ad unit.
      adUnit.adUnitSizes = new AdUnitSize[] {adUnitSize};

      try {
        // Create the ad unit on the server.
        adUnit = inventoryService.createAdUnit(adUnit);

        if (adUnit != null) {
          Console.WriteLine("An ad unit with ID \"{0}\" was created under parent with ID \"{1}\".",
              adUnit.id, adUnit.parentId);
        } else {
          Console.WriteLine("No ad units created.");
        }
      } catch (Exception ex) {
        Console.WriteLine("Failed to create ad units. Exception says \"{0}\"", ex.Message);
      }
    }
        public AdUnit CreateAdUnit(DfpUser user)
        {
            InventoryService inventoryService =
              (InventoryService) user.GetService(DfpService.v201211.InventoryService);

              AdUnit adUnit = new AdUnit();
              adUnit.name = string.Format("Ad_Unit_{0}", GetTimeStamp());
              adUnit.parentId = FindRootAdUnit(user).id;

              // Set the size of possible creatives that can match this ad unit.
              Size size = new Size();
              size.width = 300;
              size.height = 250;

              // Create ad unit size.
              AdUnitSize adUnitSize = new AdUnitSize();
              adUnitSize.size = size;
              adUnitSize.environmentType = EnvironmentType.BROWSER;

              adUnit.adUnitSizes = new AdUnitSize[] {adUnitSize};
              return inventoryService.createAdUnit(adUnit);
        }
        public void TestCreateAdUnit()
        {
            AdUnit localAdUnit = new AdUnit();
              localAdUnit.name = string.Format("Ad_Unit_{0}", new TestUtils().GetTimeStamp());
              localAdUnit.parentId = adUnit1.id;

              Size size = new Size();
              size.width = 300;
              size.height = 250;

              // Create ad unit size.
              AdUnitSize adUnitSize = new AdUnitSize();
              adUnitSize.size = size;
              adUnitSize.environmentType = EnvironmentType.BROWSER;

              localAdUnit.adUnitSizes = new AdUnitSize[] {adUnitSize};

              AdUnit newAdUnit = null;

              Assert.DoesNotThrow(delegate() {
            newAdUnit = inventoryService.createAdUnit(localAdUnit);
              });

              Assert.NotNull(newAdUnit);
              Assert.AreEqual(newAdUnit.name, localAdUnit.name);
              Assert.AreEqual(newAdUnit.parentId, localAdUnit.parentId);
              Assert.AreEqual(newAdUnit.parentId, adUnit1.id);
              Assert.AreEqual(newAdUnit.status, localAdUnit.status);
              Assert.AreEqual(newAdUnit.targetWindow, localAdUnit.targetWindow);
        }
        public void TestUpdateAdUnits()
        {
            List<AdUnitSize> adUnitSizes = null;
              Size size = null;

              // Modify ad unit 1.
              adUnitSizes = new List<AdUnitSize>(adUnit1.adUnitSizes);
              size = new Size();
              size.width = 728;
              size.height = 90;

              // Create ad unit size.
              AdUnitSize adUnitSize = new AdUnitSize();
              adUnitSize.size = size;
              adUnitSize.environmentType = EnvironmentType.BROWSER;

              adUnitSizes.Add(adUnitSize);
              adUnit1.adUnitSizes = adUnitSizes.ToArray();

              // Modify ad unit 2.
              adUnitSizes = new List<AdUnitSize>(adUnit2.adUnitSizes);
              size = new Size();
              size.width = 728;
              size.height = 90;

              // Create ad unit size.
              adUnitSize = new AdUnitSize();
              adUnitSize.size = size;
              adUnitSize.environmentType = EnvironmentType.BROWSER;

              adUnitSizes.Add(adUnitSize);
              adUnit2.adUnitSizes = adUnitSizes.ToArray();

              AdUnit[] newAdUnits = null;
              Assert.DoesNotThrow(delegate() {
            newAdUnits = inventoryService.updateAdUnits(new AdUnit[] {adUnit1, adUnit2});
              });

              Assert.NotNull(newAdUnits);
              Assert.AreEqual(newAdUnits.Length, 2);

              Assert.AreEqual(newAdUnits[0].name, adUnit1.name);
              Assert.AreEqual(newAdUnits[0].parentId, adUnit1.parentId);
              Assert.AreEqual(newAdUnits[0].id, adUnit1.id);
              Assert.AreEqual(newAdUnits[0].status, adUnit1.status);
              Assert.AreEqual(newAdUnits[0].targetWindow, adUnit1.targetWindow);
              Assert.AreEqual(newAdUnits[0].adUnitSizes.Length, adUnit1.adUnitSizes.Length);

              Assert.AreEqual(newAdUnits[1].name, adUnit2.name);
              Assert.AreEqual(newAdUnits[1].parentId, adUnit2.parentId);
              Assert.AreEqual(newAdUnits[1].id, adUnit2.id);
              Assert.AreEqual(newAdUnits[1].status, adUnit2.status);
              Assert.AreEqual(newAdUnits[1].targetWindow, adUnit2.targetWindow);
              Assert.AreEqual(newAdUnits[1].adUnitSizes.Length, adUnit2.adUnitSizes.Length);
        }
        public void TestCreateAdUnits()
        {
            // Create ad unit 1.
              AdUnit localAdUnit1 = new AdUnit();
              localAdUnit1.name = string.Format("Ad_Unit_{0}", new TestUtils().GetTimeStamp());
              localAdUnit1.parentId = adUnit1.id;

              Size size1 = new Size();
              size1.width = 300;
              size1.height = 250;

              AdUnitSize adUnitSize1 = new AdUnitSize();
              adUnitSize1.size = size1;
              adUnitSize1.environmentType = EnvironmentType.BROWSER;

              localAdUnit1.adUnitSizes = new AdUnitSize[] {adUnitSize1};

              // Create ad unit 2.
              AdUnit localAdUnit2 = new AdUnit();
              localAdUnit2.name = string.Format("Ad_Unit_{0}", new TestUtils().GetTimeStamp());
              localAdUnit2.parentId = adUnit1.id;

              Size size2 = new Size();
              size2.width = 300;
              size2.height = 250;

              AdUnitSize adUnitSize2 = new AdUnitSize();
              adUnitSize2.size = size2;
              adUnitSize2.environmentType = EnvironmentType.BROWSER;

              localAdUnit2.adUnitSizes = new AdUnitSize[] {adUnitSize2};

              AdUnit[] newAdUnits = null;

              Assert.DoesNotThrow(delegate() {
            newAdUnits = inventoryService.createAdUnits(new AdUnit[] {localAdUnit1, localAdUnit2});
              });

              Assert.NotNull(newAdUnits);
              Assert.AreEqual(newAdUnits.Length, 2);

              Assert.AreEqual(newAdUnits[0].name, localAdUnit1.name);
              Assert.AreEqual(newAdUnits[0].parentId, localAdUnit1.parentId);
              Assert.AreEqual(newAdUnits[0].parentId, adUnit1.id);
              Assert.AreEqual(newAdUnits[0].status, localAdUnit1.status);
              Assert.AreEqual(newAdUnits[0].targetWindow, localAdUnit1.targetWindow);

              Assert.AreEqual(newAdUnits[1].name, localAdUnit2.name);
              Assert.AreEqual(newAdUnits[1].parentId, localAdUnit2.parentId);
              Assert.AreEqual(newAdUnits[1].parentId, adUnit1.id);
              Assert.AreEqual(newAdUnits[1].status, localAdUnit2.status);
              Assert.AreEqual(newAdUnits[1].targetWindow, localAdUnit2.targetWindow);
        }
    /// <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 InventoryService.
      InventoryService inventoryService =
          (InventoryService) user.GetService(DfpService.v201211.InventoryService);

      // Get the NetworkService.
      NetworkService networkService =
          (NetworkService) user.GetService(DfpService.v201211.NetworkService);

      // Set the parent ad unit's ID for all ad units to be created under.
      String effectiveRootAdUnitId = networkService.getCurrentNetwork().effectiveRootAdUnitId;

      // Create local ad unit object.
      AdUnit adUnit = new AdUnit();
      adUnit.name = "Video_Ad_Unit";
      adUnit.parentId = effectiveRootAdUnitId;
      adUnit.description = "Ad unit description.";
      adUnit.targetWindow = AdUnitTargetWindow.BLANK;
      adUnit.explicitlyTargeted = true;
      adUnit.targetPlatform = TargetPlatform.WEB;

      // Create master ad unit size.
      AdUnitSize masterAdUnitSize = new AdUnitSize();
      Size size1 = new Size();
      size1.width = 400;
      size1.height = 300;
      size1.isAspectRatio = false;
      masterAdUnitSize.size = size1;
      masterAdUnitSize.environmentType = EnvironmentType.VIDEO_PLAYER;

      // Create companion sizes.
      AdUnitSize companionAdUnitSize1 = new AdUnitSize();
      Size size2 = new Size();
      size2.width = 300;
      size2.height = 250;
      size2.isAspectRatio = false;
      companionAdUnitSize1.size = size2;
      companionAdUnitSize1.environmentType = EnvironmentType.BROWSER;

      AdUnitSize companionAdUnitSize2 = new AdUnitSize();
      Size size3 = new Size();
      size3.width = 728;
      size3.height = 90;
      size3.isAspectRatio = false;
      companionAdUnitSize2.size = size3;
      companionAdUnitSize2.environmentType = EnvironmentType.BROWSER;

      // Add companions to master ad unit size.
      masterAdUnitSize.companions = new AdUnitSize[] {companionAdUnitSize1, companionAdUnitSize2};

      // Set the size of possible creatives that can match this ad unit.
      adUnit.adUnitSizes = new AdUnitSize[] {masterAdUnitSize};

      try {
        // Create the ad unit on the server.
        adUnit = inventoryService.createAdUnit(adUnit);

        if (adUnit != null) {
          Console.WriteLine("A video ad unit with ID \"{0}\" was created under parent with ID " +
              "\"{1}\".", adUnit.id, adUnit.parentId);
        } else {
          Console.WriteLine("No video ad units created.");
        }
      } catch (Exception ex) {
        Console.WriteLine("Failed to create video ad units. Exception says \"{0}\"", ex.Message);
      }
    }