public void CreatePerformancePackage(PerformancePackage performancePackage)
        {
            WaitForLoaderSpinnerToDisappear();
            if (performancePackage.IsAutomatedGuaranteedItem)
            {
                EnsureMandatoryValueForAGPackage(performancePackage);
                SetDetailTabDataForAg(performancePackage.DetailTabData);
            }
            else
            {
                EnsureMandatoryValuesAreProvided(performancePackage);
                SetDetailTabData(performancePackage.DetailTabData);
            }
            SetPlacementsTabData(performancePackage.PlacementsTabData);
            SetClassificationTabData(performancePackage.ClassificationsTabData);
            SetFlightingTabData(performancePackage.FlightingTabData);
            SetTrafficTabData(performancePackage.TrafficTabData);
            SetCostTabData(performancePackage.CostsTabData);
            SetForecastTabData(performancePackage.ForecastTabData);
            SetMoreTabData(performancePackage.MoreTabData);

            var purchaseType = ConvertToPurchaseTypeEnum(performancePackage.DetailTabData.PurchaseType);

            AddItem(performancePackage.IsAutomatedGuaranteedItem, purchaseType);

            WaitUntilAlertContains("All Done!");
        }
        private void EnsureMandatoryValuesAreProvided(PerformancePackage data)
        {
            var dataErrorFound = false;
            var dataErrors     = new StringBuilder();

            dataErrors.Append("The feature file " + FeatureContext.FeatureInfo.Title + " has the following data issues:");

            if (string.IsNullOrWhiteSpace(data.DetailTabData.Name) && !data.DetailTabData.AutoGenerateName)
            {
                dataErrorFound = true;
                dataErrors.Append("\n- Performance package name not set and IsAutoGenerateName was false");
            }

            if (string.IsNullOrWhiteSpace(data.DetailTabData.Publisher))
            {
                dataErrorFound = true;
                dataErrors.Append("\n- Performance package publisher not set");
            }

            if (string.IsNullOrWhiteSpace(data.DetailTabData.Site))
            {
                dataErrorFound = true;
                dataErrors.Append("\n- Performance package site not set");
            }

            foreach (var placement in data.PlacementsTabData.Placements)
            {
                if (string.IsNullOrWhiteSpace(placement.Location))
                {
                    dataErrorFound = true;
                    dataErrors.Append("\n- Performance Placement location was not set");
                }

                if (string.IsNullOrWhiteSpace(placement.Format))
                {
                    dataErrorFound = true;
                    dataErrors.Append("\n- Performance Placement format was not set");
                }
            }

            if (dataErrorFound)
            {
                throw new ArgumentException(dataErrors.ToString());
            }
        }
 private void EnsureMandatoryValueForAGPackage(PerformancePackage performancePackage)
 {
 }