예제 #1
0
        public bool CreateCifPo(List <QuoteDetail> listOfQuoteDetail, string testEnvironment, bool removeInternalVendorNumber = false)
        {
            B2BHomePage.SelectEnvironment(RunEnvironment.ToString());
            var orderId = OrderIdBase + DateTime.Today.ToString("yyMMdd") + DateTime.Now.ToString("HHmmss");

            string poXml;

            poXml = PoXmlGenerator.GeneratePoCblForAsn(PoXmlFormat, orderId, IdentityName, listOfQuoteDetail, removeInternalVendorNumber);

            var parentWindow = webDriver.CurrentWindowHandle;

            B2BHomePage.ClickQaTools3();

            if (!poOperations.SubmitXmlForPoCreation(poXml, RunEnvironment.ToString(), TargetUrl, testEnvironment, out poNumber))
            {
                return(false);
            }

            if (!webDriver.CurrentWindowHandle.Equals(parentWindow))
            {
                webDriver.Close();
            }

            webDriver.SwitchTo().Window(parentWindow);
            return(true);
        }
        /// <summary>
        /// Verifies Po Posting with CBL1.
        /// </summary>
        /// <param name="qatoolsTargetUrl"></param>
        /// <param name="fileName"></param>
        /// <param name="poRefNum"></param>
        /// <param name="identityName"></param>
        /// <param name="supplierPartIdExt"></param>
        /// <param name="unitPrice"></param>
        /// <param name="quantity"></param>
        public string VerifyPoPosting(string qatoolsTargetUrl, string fileName, string poRefNum,
                                      string identityName, string supplierPartIdExt, string unitPrice, string quantity)
        {
            //uniquePoRefNum = poRefNum + DateTime.Today.ToString("yyMMdd") + DateTime.Now.ToString("HHmmss");
            uniquePoRefNum = poRefNum + DateTime.Now.ToString("ffffff");
            B2BQaToolsPage = new B2BQaToolsPage(webDriver);
            B2BQaToolsPage.PasteTargetUrl(qatoolsTargetUrl);
            var file = PoXmlGenerator.GeneratePoCblwithoutCrt(fileName, uniquePoRefNum, identityName, supplierPartIdExt,
                                                              unitPrice, quantity);

            B2BQaToolsPage.PasteInputXml(file);
            webDriver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromMinutes(2));
            B2BQaToolsPage.ClickSubmitMessage();
            if (B2BQaToolsPage.GetSubmissionResult().Equals("XML Response received from server Code: 200. Message: PO = " + uniquePoRefNum))
            {
                Console.WriteLine("Success: PO Number: " + uniquePoRefNum);
                return(uniquePoRefNum);
            }
            else
            {
                Console.WriteLine("Error while posting PO: " + B2BQaToolsPage.GetSubmissionResult());
                Console.WriteLine("Fail: PO Number: " + uniquePoRefNum);
                throw new Exception("Error while posting PO: " + uniquePoRefNum);
            }
        }
예제 #3
0
        public bool CreateDomsPo(List <QuoteDetail> listOfQuoteDetail, string testEnvironment)
        {
            B2BHomePage.SelectEnvironment(RunEnvironment.ToString());
            var orderId = OrderIdBase + DateTime.Today.ToString("yyMMdd") + DateTime.Now.ToString("HHmmss");

            crtId = listOfQuoteDetail.FirstOrDefault().CrtId;
            price = listOfQuoteDetail.FirstOrDefault().Price;
            string poXml;

            if (Workflow == Workflow.Eudc)
            {
                poXml = PoXmlGenerator.GeneratePoCxmlCblForEudc(
                    PoXmlFormat,
                    IdentityName,
                    DeploymentMode,
                    orderId,
                    price,
                    listOfQuoteDetail.FirstOrDefault().SupplierPartId,
                    crtId);
            }
            else
            {
                poXml = PoXmlGenerator.GeneratePoCblForAsn(PoXmlFormat, orderId, IdentityName, listOfQuoteDetail);
            }

            var parentWindow = webDriver.CurrentWindowHandle;

            B2BHomePage.ClickQaTools3();

            if (!poOperations.SubmitXmlForPoCreation(poXml, RunEnvironment.ToString(), TargetUrl, testEnvironment, out poNumber))
            {
                return(false);
            }

            if (!webDriver.CurrentWindowHandle.Equals(parentWindow))
            {
                webDriver.Close();
            }

            webDriver.SwitchTo().Window(parentWindow);
            return(true);
        }
        /// <summary>
        /// Verifies Po Posting with CBL3.
        /// </summary>
        /// <param name="qatoolsTargetUrl"></param>
        /// <param name="fileName"></param>
        /// <param name="poRefNum"></param>
        /// <param name="identityName"></param>
        /// <param name="supplierPartIdExt"></param>
        /// <param name="unitPrice"></param>
        /// <param name="quantity"></param>
        public string VerifyDownloadAndPoPostingwithCxml(B2BEnvironment environment, CatalogItemType itemType, CatalogType type, CatalogStatus status, Region region, CRTStatus crtStatus,
                                                         string fileName, string poRefNum, string profileName, string identityName, string quantity)
        {
            //uniquePoRefNum = poRefNum + DateTime.Today.ToString("yyMMdd") + DateTime.Now.ToString("HHmmss");
            uniquePoRefNum = poRefNum + DateTime.Now.ToString("ffffff");
            ChannelCatalogWorkflow uxWorkFlow = new ChannelCatalogWorkflow(webDriver);
            CatalogItem            item       = uxWorkFlow.GetCatalogItem(environment, itemType, type, status, region, profileName, identityName);

            webDriver = webDriver.SwitchBrowser(BrowserName.InternetExplorer);
            webDriver.Navigate().GoToUrl(Convert.ToString(ConfigurationManager.AppSettings["BasePOURL"]));
            B2BQaToolsPage = new B2BQaToolsPage(webDriver);

            B2BQaToolsPage.PasteTargetUrl((environment == B2BEnvironment.Production) ? Convert.ToString(ConfigurationManager.AppSettings["QAToolsTargetUrlProd"])
                : Convert.ToString(ConfigurationManager.AppSettings["QAToolsTargetUrlPrev"]));

            string supplierPartIdExt = string.Empty;

            supplierPartIdExt = (crtStatus == CRTStatus.OFF) ? item.PartId : item.ManufacturerPartNumber;
            var unitPrice = Convert.ToString(item.UnitPrice);
            var file      = PoXmlGenerator.GeneratePoCxmll(fileName, uniquePoRefNum, profileName, identityName, supplierPartIdExt, unitPrice, quantity);

            B2BQaToolsPage.PasteInputXml(file);
            webDriver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromMinutes(2));
            B2BQaToolsPage.ClickSubmitMessage();
            if (B2BQaToolsPage.GetSubmissionResult().Equals("XML Response received from server Code: 200. Message: PO = " + uniquePoRefNum))
            {
                webDriver.Quit();
                Console.WriteLine("Success: PO Number: " + uniquePoRefNum);
                return(uniquePoRefNum);
            }
            else
            {
                Console.WriteLine("Error while posting PO: " + B2BQaToolsPage.GetSubmissionResult());
                Console.WriteLine("Fail: PO Number: " + uniquePoRefNum);
                throw new Exception("Error while posting PO: " + uniquePoRefNum);
            }
        }
예제 #5
0
        /* How to create 'E-Quote' or 'OrQuote'
         * Call CompleteEQuoteGeneration() with 5 arguments -
         * i) quoteType(equote/OrQuote)     <-- Note pass only "equote" for E-Quote and "OrQuote" for OR-Quote
         * ii) environment - "Preview" or "Prod"
         * iii) profileId - In String
         * iv) name - any name      <- will be used in equote
         * v) email - any email     <- will be used in equote
         */

        public bool CompleteQuoteGeneration(
            string profileId,
            string name,
            string email,
            RunEnvironment environment,
            Workflow workflow,
            PoXmlFormat format,
            string deploymentMode,
            string orderIdBase,
            string poTargetUrl,
            string configFilterVal,
            string testEnvironment,
            List <QuoteDetail> listOfQuoteDetail,
            out string poNumber,
            out List <QuoteDetail> quoteDetail)
        {
            string responseCode = "0";
            var    parentWindow = webDriver.CurrentWindowHandle;

            B2BHomePage.SelectEnvironment(environment.ToString());

            // Quote Details are not available - Quote creation steps will be Executed else directly executes PO submission
            if (listOfQuoteDetail == null || !listOfQuoteDetail.Any() ||
                string.IsNullOrEmpty(listOfQuoteDetail.FirstOrDefault().SupplierPartId))
            {
                B2BHomePage.ClickQaTools3();
                webDriver.WaitForPageLoad(TimeSpan.FromSeconds(40));
                webDriver.SwitchTo().Window(webDriver.WindowHandles.Last());
                var QaToolsWindow = webDriver.CurrentWindowHandle;
                B2BQaToolsPage.SelectLocationAndEnvironment(environment.ToString(), testEnvironment);
                B2BQaToolsPage.ClickPunchoutCreate();
                B2BQaToolsPage.ClickCxml();
                B2BQaToolsPage.ClickCxmlMainCreate();
                B2BQaToolsPage.IdentityForProfileCorrelator(profileId);
                B2BQaToolsPage.IdentityForUserId(profileId);
                B2BQaToolsPage.ClickApplyParameter();
                B2BQaToolsPage.ClickSubmitMessage();
                responseCode = B2BQaToolsPage.GetSubmissionResult();
                Console.WriteLine("Response Code is :- " + responseCode);

                if (responseCode.Contains("200"))
                {
                    string temp = B2BQaToolsPage.GetStoreLinkText();
                    Console.WriteLine("Link value is " + temp);
                    B2BQaToolsPage.ClickStoreLink();
                    webDriver.WaitForPageLoad(TimeSpan.FromSeconds(40));
                    webDriver.Close();
                    string newwindow = webDriver.WindowHandles.LastOrDefault();
                    webDriver.SwitchTo().Window(newwindow);
                    //webDriver.SwitchTo().Window(webDriver.WindowHandles.Last());
                    var premierWindow = webDriver.CurrentWindowHandle;

                    webDriver.Manage().Window.Maximize();
                    B2BPremierDashboardPage.WaitForTitle();
                    B2BPremierDashboardPage.OpenShop();
                    B2BPremierDashboardPage.ClickStandardConfiguration();
                    if (workflow == Workflow.Asn)
                    {
                        B2BStandardConfigurationPage.SelectSpecificConfiguration(configFilterVal, listOfQuoteDetail.FirstOrDefault().ItemDescription);
                    }
                    else
                    {
                        B2BStandardConfigurationPage.SelectFirstConfiguration();
                    }
                    webDriver.WaitForPageLoad(new TimeSpan(0, 0, 20));
                    B2BStandardConfigurationPage.ClickAddSelectedToCartButton();
                    Console.WriteLine("Shoping Cart Page Title is :- " + ShopingCartPage.ReturnShopingCartTitle());
                    ShopingCartPage.ClickSaveQuote(listOfQuoteDetail.FirstOrDefault().QuoteType);

                    // Starting EQuote Generation
                    if (listOfQuoteDetail.FirstOrDefault().QuoteType == QuoteType.EQuote)
                    {
                        Console.WriteLine("EQuote Page Details Page Title is :-" + eQuoteDetailsPage.ReturnTitle());
                        eQuoteDetailsPage.EquoteNameSetting(name);
                        eQuoteDetailsPage.SavedBySetting(email);
                        eQuoteDetailsPage.ClickContinueButton();
                        webDriver.WaitForPageLoad(TimeSpan.FromSeconds(40));
                        eQuoteSummaryPage.ClickContinueButton();
                        webDriver.WaitForPageLoad(TimeSpan.FromSeconds(40));
                        finalEquoteSummaryPage.ClickSaveButton();
                        webDriver.WaitForPageLoad(TimeSpan.FromSeconds(40));
                        listOfQuoteDetail.FirstOrDefault().SupplierPartId = "EQ:" + eQuoteGenerationPage.ReturnNumber();
                        listOfQuoteDetail.FirstOrDefault().Price          = eQuoteGenerationPage.ReturnPrice().Replace("$", "");
                        Console.WriteLine("Your Equote Number is :- " + listOfQuoteDetail.FirstOrDefault().SupplierPartId);
                        Console.WriteLine("Price is :- " + listOfQuoteDetail.FirstOrDefault().Price);
                        webDriver.SwitchTo().Window(parentWindow);
                    }

                    // Starting OrQuote Generation
                    else if (listOfQuoteDetail.FirstOrDefault().QuoteType == QuoteType.OrQuote)
                    {
                        B2BSecureCheckoutPage.EnterContactAndBillingInfo();
                        webDriver.WaitForPageLoad(TimeSpan.FromSeconds(40));
                        listOfQuoteDetail.FirstOrDefault().Price = B2BTermsOfSalesPage.FindPrice().Replace("$", "");
                        B2BTermsOfSalesPage.ClickSubmitButton();
                        webDriver.WaitForPageLoad(TimeSpan.FromSeconds(40));
                        Console.WriteLine("Price is :- " + listOfQuoteDetail.FirstOrDefault().Price);
                        listOfQuoteDetail.FirstOrDefault().SupplierPartId = B2BOrQuoteGenerationPage.FindOrQuote();
                        webDriver.SwitchTo().Window(parentWindow);
                    }

                    else
                    {
                        Console.WriteLine("Quote Type is not Specified");
                        poNumber    = string.Empty;
                        quoteDetail = listOfQuoteDetail;
                        return(false);
                    }
                }
            }

            // Generates PO Template
            var    orderId = orderIdBase + DateTime.Today.ToString("yyMMdd") + DateTime.Now.ToString("HHmmss");
            string poXml;

            if (workflow == Workflow.Eudc)
            {
                poXml = PoXmlGenerator.GeneratePoCxmlCblForEudc(
                    format,
                    profileId,
                    deploymentMode,
                    orderId,
                    listOfQuoteDetail.FirstOrDefault().Price,
                    listOfQuoteDetail.FirstOrDefault().SupplierPartId,
                    listOfQuoteDetail.FirstOrDefault().CrtId);
            }
            else
            {
                poXml = PoXmlGenerator.GeneratePoCblForAsn(format, orderId, profileId, listOfQuoteDetail);
            }

            // Submits PO
            B2BHomePage.ClickQaTools3();
            if (!poOperations.SubmitXmlForPoCreation(poXml, environment.ToString(), poTargetUrl, testEnvironment, out poNumber))
            {
                quoteDetail = listOfQuoteDetail;
                return(false);
            }

            // verifies all validation after submiting PO
            webDriver.Close();
            webDriver.SwitchTo().Window(parentWindow);
            webDriver.WaitForPageLoad(TimeSpan.FromSeconds(40));
            quoteDetail = listOfQuoteDetail;
            return(true);
        }
예제 #6
0
        /// <summary>
        /// Creates Buyer Catalog and processes PO
        /// </summary>
        public void CreateBhcPo()
        {
            B2BHomePage.SelectEnvironment(RunEnvironment.ToString());
            if (ListOfQuoteDetail == null || !ListOfQuoteDetail.Any() ||
                string.IsNullOrEmpty(ListOfQuoteDetail.FirstOrDefault().SupplierPartId))
            {
                const int NumberOfRetries = 10;
                B2BHomePage.ClickOnBuyerCatalogLink();
                var threadId = B2BCreateBuyerCatalogPage.GenerateCatalog(
                    Workflow,
                    ProfileName,
                    IdentityName,
                    ValidityEnd,
                    NotificationEmail,
                    ConfigurationType);
                B2BCreateBuyerCatalogPage.GoToBuyerCatalogListPage();
                B2BBuyerCatalogListPage.SearchForBuyerCatalog(ProfileName);
                if (!B2BBuyerCatalogListPage.CheckCatalogAvailabilityAndAct(threadId))
                {
                    Console.WriteLine("The catalog status is not = 'Available'. Retrying....");
                    for (var i = 0; i < NumberOfRetries; i++)
                    {
                        System.Threading.Thread.Sleep(20000);
                        Console.WriteLine("Retry No. {0}", i + 1);
                        B2BBuyerCatalogListPage.SearchForBuyerCatalog(ProfileName);
                        if (B2BBuyerCatalogListPage.CheckCatalogAvailabilityAndAct(threadId))
                        {
                            break;
                        }

                        if (i != (NumberOfRetries - 1))
                        {
                            continue;
                        }

                        Console.WriteLine("The catalog status is still not 'Available'. No. of retries {0}", i + 1);
                        return;
                    }
                }

                if (Workflow == Workflow.Eudc)
                {
                    ListOfQuoteDetail = B2BCatalogViewer.GetQuoteDetails(CrtId, Quantity, QuoteType);
                }
                else
                {
                    ListOfQuoteDetail = B2BCatalogViewer.GetQuoteDetails(CrtId, Quantity, QuoteType, ConfigTitles);
                }
            }

            var orderId = OrderIdBase + DateTime.Today.ToString("yyMMdd") + DateTime.Now.ToString("HHmmss");

            string poXml;

            if (Workflow == Workflow.Eudc)
            {
                poXml = PoXmlGenerator.GeneratePoCxmlCblForEudc(
                    PoXmlFormat,
                    IdentityName,
                    DeploymentMode,
                    orderId,
                    ListOfQuoteDetail.FirstOrDefault().Price,
                    ListOfQuoteDetail.FirstOrDefault().SupplierPartId,
                    ListOfQuoteDetail.FirstOrDefault().CrtId);
            }
            else
            {
                poXml = PoXmlGenerator.GeneratePoCblForAsn(PoXmlFormat, orderId, IdentityName, ListOfQuoteDetail);
            }

            var parentWindow = webDriver.CurrentWindowHandle;

            B2BCatalogViewer.ClickQaTools3();

            if (!poOperations.SubmitXmlForPoCreation(poXml, RunEnvironment.ToString(), TargetUrl, TestEnvironment, out poNumber))
            {
                return;
            }

            if (!webDriver.CurrentWindowHandle.Equals(parentWindow))
            {
                webDriver.Close();
            }

            webDriver.SwitchTo().Window(parentWindow);
            B2BCatalogViewer.GoToHomePage();
        }