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