public Placement updatePlacement(Placement placement) {
   object[] results = this.Invoke("updatePlacement", new object[] { placement });
   return ((Placement) (results[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 InventoryService.
      InventoryService inventoryService =
          (InventoryService) user.GetService(DfpService.v201208.InventoryService);

      // Get the PlacementService.
      PlacementService placementService =
          (PlacementService) user.GetService(DfpService.v201208.PlacementService);

      // Create local placement object to store skyscraper ad units.
      Placement skyscraperAdUnitPlacement = new Placement();
      skyscraperAdUnitPlacement.name = string.Format("Skyscraper AdUnit Placement #{0}",
          this.GetTimeStamp());
      skyscraperAdUnitPlacement.description = "Contains ad units that can hold creatives " +
          "of size 120x600";

      // Create local placement object to store medium square ad units.
      Placement mediumSquareAdUnitPlacement = new Placement();
      mediumSquareAdUnitPlacement.name = string.Format("Medium Square AdUnit Placement #{0}",
          this.GetTimeStamp());
      mediumSquareAdUnitPlacement.description = "Contains ad units that can hold creatives " +
          "of size 300x250";

      // Create local placement object to store banner ad units.
      Placement bannerAdUnitPlacement = new Placement();
      bannerAdUnitPlacement.name = string.Format("Banner AdUnit Placement #{0}",
          this.GetTimeStamp());
      bannerAdUnitPlacement.description = "Contains ad units that can hold creatives " +
          "of size 468x60";

      List<Placement> placementList = new List<Placement>();

      // Get the first 500 ad units.
      Statement statement = new Statement();
      statement.query = "LIMIT 500";

      List<string> mediumSquareTargetedUnitIds = new List<string>();
      List<string> skyscraperTargetedUnitIds = new List<string>();
      List<string> bannerTargetedUnitIds = new List<string>();

      try {
        AdUnitPage page = inventoryService.getAdUnitsByStatement(statement);

        // Separate the ad units by size.
        if (page.results != null) {
          foreach (AdUnit adUnit in page.results) {
            if (adUnit.parentId != null && adUnit.adUnitSizes != null) {
              foreach (AdUnitSize adUnitSize in adUnit.adUnitSizes) {
                Size size = adUnitSize.size;
                if (size.width == 300 && size.height == 250) {
                  if (!mediumSquareTargetedUnitIds.Contains(adUnit.id)) {
                    mediumSquareTargetedUnitIds.Add(adUnit.id);
                  }
                } else if (size.width == 120 && size.height == 600) {
                  if (!skyscraperTargetedUnitIds.Contains(adUnit.id)) {
                    skyscraperTargetedUnitIds.Add(adUnit.id);
                  }
                } else if (size.width == 468 && size.height == 60) {
                  if (!bannerTargetedUnitIds.Contains(adUnit.id)) {
                    bannerTargetedUnitIds.Add(adUnit.id);
                  }
                }
              }
            }
          }
        }
        mediumSquareAdUnitPlacement.targetedAdUnitIds = mediumSquareTargetedUnitIds.ToArray();
        skyscraperAdUnitPlacement.targetedAdUnitIds = skyscraperTargetedUnitIds.ToArray();
        bannerAdUnitPlacement.targetedAdUnitIds = bannerTargetedUnitIds.ToArray();


        // Only create placements with one or more ad unit.
        if (mediumSquareAdUnitPlacement.targetedAdUnitIds.Length != 0) {
          placementList.Add(mediumSquareAdUnitPlacement);
        }

        if (skyscraperAdUnitPlacement.targetedAdUnitIds.Length != 0) {
          placementList.Add(skyscraperAdUnitPlacement);
        }

        if (bannerAdUnitPlacement.targetedAdUnitIds.Length != 0) {
          placementList.Add(bannerAdUnitPlacement);
        }

        Placement[] placements =
          placementService.createPlacements(placementList.ToArray());

        // Display results.
        if (placements != null) {
          foreach (Placement placement in placements) {
            Console.Write("A placement with ID = '{0}', name ='{1}', and containing " +
                "ad units {{", placement.id, placement.name);

            foreach (string adUnitId in placement.targetedAdUnitIds) {
              Console.Write("{0}, ", adUnitId);
            }
            Console.WriteLine("} was created.");
          }
        } else {
          Console.WriteLine("No placements created.");
        }

      } catch (Exception ex) {
        Console.WriteLine("Failed to create placements. Exception says \"{0}\"",
            ex.Message);
      }
    }
        public Placement CreatePlacement(DfpUser user, string[] targetedAdUnitIds)
        {
            // Get InventoryService.
              PlacementService placementService =
              (PlacementService) user.GetService(DfpService.v201208.PlacementService);

              Placement placement = new Placement();
              placement.name = string.Format("Test placement #{0}", this.GetTimeStamp());
              placement.description = "Test placement";
              placement.targetedAdUnitIds = targetedAdUnitIds;

              return placementService.createPlacement(placement);
        }
        public void TestCreatePlacement()
        {
            Placement placement = new Placement();
              placement.name = string.Format("Medium Square AdUnit Placement #{0}",
              new TestUtils().GetTimeStamp());
              placement.description = "Contains ad units that can hold creatives of size 300x250";
              placement.targetedAdUnitIds = new string[] {adUnit1.id, adUnit2.id};

              Placement newPlacement = null;

              Assert.DoesNotThrow(delegate() {
            newPlacement = placementService.createPlacement(placement);
              });

              Assert.NotNull(newPlacement);
              Assert.AreEqual(newPlacement.name, placement.name);
              Assert.AreEqual(newPlacement.description, placement.description);
              Assert.Contains(adUnit1.id, newPlacement.targetedAdUnitIds);
              Assert.Contains(adUnit2.id, newPlacement.targetedAdUnitIds);
        }
 public void Init()
 {
     TestUtils utils = new TestUtils();
       placementService = (PlacementService) user.GetService(DfpService.v201208.PlacementService);
       adUnit1 = utils.CreateAdUnit(user);
       adUnit2 = utils.CreateAdUnit(user);
       placement = utils.CreatePlacement(user, new string[] {adUnit1.id, adUnit2.id});
 }
        public void TestCreatePlacements()
        {
            TestUtils utils = new TestUtils();
              Placement placement1 = new Placement();
              placement1.name = string.Format("Medium Square AdUnit Placement #{0}", utils.GetTimeStamp());
              placement1.description = "Contains ad units that can hold creatives of size 300x250";
              placement1.targetedAdUnitIds = new string[] {adUnit1.id, adUnit2.id};

              Placement placement2 = new Placement();
              placement2.name = string.Format("Medium Square AdUnit Placement #{0}", utils.GetTimeStamp());
              placement2.description = "Contains ad units that can hold creatives of size 300x250";
              placement2.targetedAdUnitIds = new string[] {adUnit1.id, adUnit2.id};

              Placement[] newPlacements = null;

              Assert.DoesNotThrow(delegate() {
            newPlacements = placementService.createPlacements(new Placement[] {placement1, placement2});
              });

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

              Assert.NotNull(newPlacements[0]);
              Assert.AreEqual(newPlacements[0].name, placement1.name);
              Assert.AreEqual(newPlacements[0].description, placement1.description);
              Assert.Contains(adUnit1.id, newPlacements[0].targetedAdUnitIds);
              Assert.Contains(adUnit2.id, newPlacements[0].targetedAdUnitIds);

              Assert.NotNull(newPlacements[1]);
              Assert.AreEqual(newPlacements[1].name, placement2.name);
              Assert.AreEqual(newPlacements[1].description, placement2.description);
              Assert.Contains(adUnit1.id, newPlacements[1].targetedAdUnitIds);
              Assert.Contains(adUnit2.id, newPlacements[1].targetedAdUnitIds);
        }