Example #1
0
        public void Run()
        {
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;


            Ranorex.Unknown element = null;

            RanorexRepository           repo                      = new RanorexRepository();
            fnWriteToLogFile            WriteToLogFile            = new fnWriteToLogFile();
            fnWriteToErrorFile          WriteToErrorFile          = new fnWriteToErrorFile();
            fnWaitForItemSearchToFinish WaitForItemSearchToFinish = new fnWaitForItemSearchToFinish();
            fnDumpStatsQ4            DumpStatsQ4                  = new fnDumpStatsQ4();
            fnTimeMinusOverhead      TimeMinusOverhead            = new fnTimeMinusOverhead();
            fnUpdatePALStatusMonitor UpdatePALStatusMonitor       = new fnUpdatePALStatusMonitor();
            FnWriteOutStatsQ4Buffer  WriteOutStatsQ4Buffer        = new FnWriteOutStatsQ4Buffer();
            FnCheckout                 Checkout                   = new FnCheckout();
            FnStartTransaction         StartTransaction           = new FnStartTransaction();
            FnProductionIssueFunctions ProductionIssueFunctions   = new FnProductionIssueFunctions();
            FnEnterSKU                 EnterSKU                   = new FnEnterSKU();

            Global.RetechScenariosPerformed++;
            UpdatePALStatusMonitor.Run();

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();

            Stopwatch MystopwatchTotal = new Stopwatch();

            MystopwatchTotal.Reset();
            MystopwatchTotal.Start();
            Stopwatch MystopwatchQ4          = new Stopwatch();
            Stopwatch MystopwatchModuleTotal = new Stopwatch();
            Stopwatch MystopwatchF1          = new Stopwatch();
            Stopwatch MystopwatchTrade       = new Stopwatch();

            // Start
            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            Global.LogText = @"Start Transaction";
            WriteToLogFile.Run();
            StartTransaction.Run();

            if (Global.DomesticRegister)
            {
                Global.LogText = @"Enter Customer Information";
                WriteToLogFile.Run();

                // Enter customer
                MystopwatchQ4.Reset();
                MystopwatchQ4.Start();

                repo.Retech.FindCustomerTextBox.PressKeys("9727651234{Enter}");
                Thread.Sleep(100);
                while (!repo.RetechFindCustomerView.CustomerSearchCriteria.Enabled)
                {
                    Thread.Sleep(100);
                }

                TimeMinusOverhead.Run((float)MystopwatchModuleTotal.ElapsedMilliseconds);                   // Subtract overhead and store in Global.Q4StatLine
                Global.CurrentMetricDesciption = "Member Card Lookup";
                Global.Module = "Member Card Lookup";
                DumpStatsQ4.Run();
                Global.CurrentMetricDesciption = "Module Total Time";
                DumpStatsQ4.Run();
            }

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            if (Global.DomesticRegister)
            {
                while (!Host.Local.TryFindSingle(repo.RetechFindCustomerView.ListBoxItemInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                }                                            // change 1/8/17
                repo.RetechFindCustomerView.ListBoxItem.Click();

                while (Host.Local.TryFindSingle(repo.RetechFindCustomerView.ListBoxItemInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                }
            }

            int NumberSKUs = 1;

            if (Global.NumberOfTradesMinusOne == 4)
            {
                NumberSKUs = 1;
            }
            else if (Global.NumberOfTradesMinusOne == 99)
            {
                NumberSKUs = 4;
            }

            for (int x = 1; x <= NumberSKUs; x++)
            {
                Global.LogText = @"Add Item";
                WriteToLogFile.Run();

                if (Global.DomesticRegister)
                {
                    // Press F1 add item
                    Keyboard.Press("{F1}");                     // Add Item F1
                    MystopwatchF1.Reset();
                    MystopwatchF1.Start();
                    while (!Host.Local.TryFindSingle(repo.AddItemTextInfo.AbsolutePath.ToString(), out element))
                    {
                        Thread.Sleep(100);
                        if (MystopwatchF1.ElapsedMilliseconds > 1000)
                        {
                            Keyboard.Press("{F1}");
                            Thread.Sleep(100);
                            MystopwatchF1.Reset();
                            MystopwatchF1.Start();
                        }
                    }
                }

                Global.LogText = @"Enter purchase SKU";
                WriteToLogFile.Run();

                // Enter SKUs
                if (Global.DomesticRegister)
                {
                    if (NumberSKUs == 1)
                    {
                        repo.AddItemText.TextValue = "115571";
                    }
                    else
                    {
                        repo.AddItemText.TextValue = "883672";
                    }
                    repo.RetechQuickEntryView.TxtWatermark.PressKeys("{Enter}");

                    Thread.Sleep(200);

                    while (!Host.Local.TryFindSingle(repo.ContinueButtonCommandInfo.AbsolutePath.ToString(), out element))
                    {
                        if (Host.Local.TryFindSingle(repo.ShellView.AgeVerifiedCommandWPFInfo.AbsolutePath.ToString(), out element))
                        {
                            repo.ShellView.AgeVerifiedCommandWPF.Click();
                            Thread.Sleep(100);
                        }                               // 11/16/18
                    }
//					if(Host.Local.TryFindSingle(repo.ShellView.AgeVerifiedCommandWPFInfo.AbsolutePath.ToString(), out element))
//					{	repo.ShellView.AgeVerifiedCommandWPF.Click();
//						Thread.Sleep(100);
//					}

                    if (Host.Local.TryFindSingle(repo.ContinueButtonCommandInfo.AbsolutePath.ToString(), out element))
                    {
                        repo.ContinueButtonCommand.Click();
                        Thread.Sleep(100);
                    }

                    while (!repo.AddLineItemCommand.Enabled)
                    {
                        if (Host.Local.TryFindSingle(repo.ContinueButtonCommandInfo.AbsolutePath.ToString(), out element))
                        {
                            repo.ContinueButtonCommand.Click();
                        }
                        Thread.Sleep(100);
                    }
                }
                else                 // International
                {
                    EnterSKU.Run();  // Value  set in EnterSKU
                }
            }

//			TimeMinusOverhead.Run((float) MystopwatchQ4.ElapsedMilliseconds);  // Subtract overhead and store in Global.Q4StatLine
//			Global.CurrentMetricDesciption = "Enter SKUs";
//		    Global.Module = "Enter SKUs";
//		    DumpStatsQ4.Run();
//			Global.CurrentMetricDesciption = "Module Total Time";
//          DumpStatsQ4.Run();

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            if (Global.DomesticRegister)
            {
                switch (Global.RetechVersion.Substring(0, 3))
                {
                case "5.6":
                    while (!repo.Retech.TradeKey_5_6_0_103.Enabled)
                    {
                        Thread.Sleep(100);
                    }
                    break;

                case "5.7":
                    while (!repo.Retech.TradesF3_5_7_1_2.Enabled)
                    {
                        Thread.Sleep(100);
                    }
                    break;

                default:
                    while (!repo.Retech.TradesF3_5_7_1_2.Enabled)
                    {
                        Thread.Sleep(100);
                    }
                    break;
                }
            }

            // Press the Trade Key
            if (Global.DomesticRegister)
            {
                Keyboard.Press("{F3}");

                while (!Host.Local.TryFindSingle(repo.Retech.TradesTotalInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                }
            }
            else                                                    // International
            {
                repo.InternationalInsideSKUField.PressKeys("{F6}"); // Trades
                while (!repo.TradeIn.InternationalTradeSKUFIeld.Enabled)
                {
                    Thread.Sleep(100);
                }
            }

            string[] TradeInSKUList = new string[100];
            TradeInSKUList[0]  = Global.S17Trade1;
            TradeInSKUList[1]  = Global.S17Trade2;
            TradeInSKUList[2]  = Global.S17Trade3;
            TradeInSKUList[3]  = Global.S17Trade4;
            TradeInSKUList[4]  = Global.S17Trade6;     // 02-20-18
            TradeInSKUList[5]  = Global.S17Trade6;
            TradeInSKUList[6]  = Global.S17Trade7;
            TradeInSKUList[7]  = Global.S17Trade8;
            TradeInSKUList[8]  = Global.S17Trade9;
            TradeInSKUList[9]  = Global.S17Trade10;
            TradeInSKUList[10] = Global.S17Trade11;
            TradeInSKUList[11] = Global.S17Trade12;
            TradeInSKUList[12] = Global.S17Trade13;
            TradeInSKUList[13] = Global.S17Trade14;
            TradeInSKUList[14] = Global.S17Trade15;
            TradeInSKUList[15] = Global.S17Trade16;
            TradeInSKUList[16] = Global.S17Trade17;
            TradeInSKUList[17] = Global.S17Trade18;
            TradeInSKUList[18] = Global.S17Trade19;
            TradeInSKUList[19] = Global.S17Trade20;
            TradeInSKUList[20] = Global.S17Trade21;
            TradeInSKUList[21] = Global.S17Trade22;
            TradeInSKUList[22] = Global.S17Trade23;
            TradeInSKUList[23] = Global.S17Trade24;
            TradeInSKUList[24] = Global.S17Trade25;
            TradeInSKUList[25] = Global.S17Trade1;
            TradeInSKUList[26] = Global.S17Trade2;
            TradeInSKUList[27] = Global.S17Trade3;
            TradeInSKUList[28] = Global.S17Trade4;
            TradeInSKUList[29] = Global.S17Trade5;
            TradeInSKUList[30] = Global.S17Trade6;
            TradeInSKUList[31] = Global.S17Trade7;
            TradeInSKUList[32] = Global.S17Trade8;
            TradeInSKUList[33] = Global.S17Trade9;
            TradeInSKUList[34] = Global.S17Trade10;
            TradeInSKUList[35] = Global.S17Trade11;
            TradeInSKUList[36] = Global.S17Trade12;
            TradeInSKUList[37] = Global.S17Trade13;
            TradeInSKUList[38] = Global.S17Trade14;
            TradeInSKUList[39] = Global.S17Trade15;
            TradeInSKUList[40] = Global.S17Trade16;
            TradeInSKUList[41] = Global.S17Trade17;
            TradeInSKUList[42] = Global.S17Trade18;
            TradeInSKUList[43] = Global.S17Trade19;
            TradeInSKUList[44] = Global.S17Trade20;
            TradeInSKUList[45] = Global.S17Trade21;
            TradeInSKUList[46] = Global.S17Trade22;
            TradeInSKUList[47] = Global.S17Trade23;
            TradeInSKUList[48] = Global.S17Trade24;
            TradeInSKUList[49] = Global.S17Trade25;
            TradeInSKUList[50] = Global.S17Trade1;
            TradeInSKUList[51] = Global.S17Trade2;
            TradeInSKUList[52] = Global.S17Trade3;
            TradeInSKUList[53] = Global.S17Trade4;
            TradeInSKUList[54] = Global.S17Trade5;
            TradeInSKUList[55] = Global.S17Trade6;
            TradeInSKUList[56] = Global.S17Trade7;
            TradeInSKUList[57] = Global.S17Trade8;
            TradeInSKUList[58] = Global.S17Trade9;
            TradeInSKUList[59] = Global.S17Trade10;
            TradeInSKUList[60] = Global.S17Trade11;
            TradeInSKUList[61] = Global.S17Trade12;
            TradeInSKUList[62] = Global.S17Trade13;
            TradeInSKUList[63] = Global.S17Trade14;
            TradeInSKUList[64] = Global.S17Trade15;
            TradeInSKUList[65] = Global.S17Trade16;
            TradeInSKUList[66] = Global.S17Trade17;
            TradeInSKUList[67] = Global.S17Trade18;
            TradeInSKUList[68] = Global.S17Trade19;
            TradeInSKUList[69] = Global.S17Trade20;
            TradeInSKUList[70] = Global.S17Trade21;
            TradeInSKUList[71] = Global.S17Trade22;
            TradeInSKUList[72] = Global.S17Trade23;
            TradeInSKUList[73] = Global.S17Trade24;
            TradeInSKUList[74] = Global.S17Trade25;
            TradeInSKUList[75] = Global.S17Trade1;
            TradeInSKUList[76] = Global.S17Trade2;
            TradeInSKUList[77] = Global.S17Trade3;
            TradeInSKUList[78] = Global.S17Trade4;
            TradeInSKUList[79] = Global.S17Trade5;
            TradeInSKUList[80] = Global.S17Trade6;
            TradeInSKUList[81] = Global.S17Trade7;
            TradeInSKUList[82] = Global.S17Trade8;
            TradeInSKUList[83] = Global.S17Trade9;
            TradeInSKUList[84] = Global.S17Trade10;
            TradeInSKUList[85] = Global.S17Trade11;
            TradeInSKUList[86] = Global.S17Trade12;
            TradeInSKUList[87] = Global.S17Trade13;
            TradeInSKUList[88] = Global.S17Trade14;
            TradeInSKUList[89] = Global.S17Trade15;
            TradeInSKUList[90] = Global.S17Trade16;
            TradeInSKUList[91] = Global.S17Trade17;
            TradeInSKUList[92] = Global.S17Trade18;
            TradeInSKUList[93] = Global.S17Trade19;
            TradeInSKUList[94] = Global.S17Trade20;
            TradeInSKUList[95] = Global.S17Trade21;
            TradeInSKUList[96] = Global.S17Trade22;
            TradeInSKUList[97] = Global.S17Trade23;
            TradeInSKUList[98] = Global.S17Trade24;
            TradeInSKUList[99] = Global.S17Trade25;

            Global.LogText = @"Enter Trade SKUs";
            WriteToLogFile.Run();

            for (int soff = 0; soff <= Global.NumberOfTradesMinusOne; soff++)
            {
                if (Global.DomesticRegister)
                {
                    // Press F1 add item
                    Keyboard.Press("{F1}");                     // Add Item F1
                    MystopwatchF1.Reset();
                    MystopwatchF1.Start();
                    while (!Host.Local.TryFindSingle(repo.AddItemTextInfo.AbsolutePath.ToString(), out element))
                    {
                        Thread.Sleep(100);
                        if (MystopwatchF1.ElapsedMilliseconds > 1000)
                        {
                            Keyboard.Press("{F1}");                             // Add Item F1
                            Thread.Sleep(100);
                            MystopwatchF1.Reset();
                            MystopwatchF1.Start();
                        }
                    }

                    // Enter SKUs
                    repo.AddItemText.TextValue = TradeInSKUList[soff];
                    repo.RetechQuickEntryView.TxtWatermark.PressKeys("{Enter}");
                }
                else                 // International
                {
                    // for International SKU search for staring with PO in description
                    //	select * from SKU
                    //	Where Price >= 1 and description like 'PO%'
                    //	order by Price
                    repo.TradeIn.InternationalTradeSKUFIeld.PressKeys("703620{Enter}");
                }
            }

            if (!Global.DomesticRegister)
            {
                while (!repo.TradeIn.InternationalTradeSKUFIeld.Enabled)
                {
                    Thread.Sleep(100);
                }
                repo.TradeIn.InternationalTradeSKUFIeld.PressKeys("{F12}");                     // complete tradces
            }

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Enter Trades";
            Global.Module = "Enter Trades";
            DumpStatsQ4.Run();
            Global.CurrentMetricDesciption = "Module Total Time";
            DumpStatsQ4.Run();



            if (Global.DomesticRegister)
            {
                MystopwatchModuleTotal.Reset();
                MystopwatchModuleTotal.Start();

                MystopwatchQ4.Reset();
                MystopwatchQ4.Start();

                switch (Global.RetechVersion.Substring(0, 3))
                {
                case "5.6":
                    Global.LogText = @"Clicking on Purchase Mode F2";
                    WriteToLogFile.Run();
                    repo.Retech.Self.Focus();
                    Keyboard.Press("{F2}");                              // Purchase Mode F2
                    Thread.Sleep(100);

                    Global.LogText = @"Clicking Cointinue in Purchase Mode F6";
                    WriteToLogFile.Run();
                    repo.Retech.Self.Focus();
                    Keyboard.Press("{F6}");                 // Continue in Purchase Mode F6
                    //            repo.Retech.ContinueToPurchaseMode.Click(); // Continue in Purchase Mode F6
                    Thread.Sleep(100);

                    Global.LogText = @"Waiting on CustomerInfoEditProfileIcon";
                    WriteToLogFile.Run();
                    while (!Host.Local.TryFindSingle(repo.LineItemCustomerEditorView.CustomerInfoEditProfileIcon_5_6_0_103Info.AbsolutePath.ToString(), out element))
                    {
                        Thread.Sleep(100);
                    }
                    break;

                case "5.7":
                    Global.LogText = @"Clicking on Trades F3 Continue F5 button";
                    WriteToLogFile.Run();
                    repo.Retech.ContinueButtonCommandTrade_5_7_1_2.Click();
                    Global.LogText = @"Waiting on CustomerInfoEditProfileIcon";
                    WriteToLogFile.Run();
                    while (!Host.Local.TryFindSingle(repo.EditProfileCommandInfo.AbsolutePath.ToString(), out element))
                    {
                        Thread.Sleep(100);
                    }
                    break;

                default:
                    Global.LogText = @"Clicking on Trades F3 Continue F5 button";
                    WriteToLogFile.Run();
                    repo.Retech.ContinueButtonCommandTrade_5_7_1_2.Click();
//						Global.LogText = @"Waiting on CustomerInfoEditProfileIcon";
//						WriteToLogFile.Run();
//						while(!Host.Local.TryFindSingle(repo.CustomerEditorView.EditProfileCommand_5_7_1_2Info.AbsolutePath.ToString(), out element))
//						{	Thread.Sleep(100);	}
                    break;
                }
                TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);                   // Subtract overhead and store in Global.Q4StatLine
                Global.CurrentMetricDesciption = "Select Purchase Mode";
                Global.Module = "Select Purchase Mode";
                DumpStatsQ4.Run();
                Global.CurrentMetricDesciption = "Module Total Time";
                DumpStatsQ4.Run();

// Start block comment for program flow change
                MystopwatchModuleTotal.Reset();
                MystopwatchModuleTotal.Start();

                MystopwatchQ4.Reset();
                MystopwatchQ4.Start();

                // ##### Start edit customer
                Global.LogText = @"F8 edit customer info";
                WriteToLogFile.Run();

                MystopwatchQ4.Reset();
                MystopwatchQ4.Start();
                // Edit the customer information
//				Keyboard.Press("{F8}"); // edit F8
                while (!repo.EditProfileCommand.Enabled)
                {
                    Thread.Sleep(100);
                }
                repo.EditProfileCommand.Click();
                while (!repo.Gender.Enabled)
                {
                    Thread.Sleep(100);
                }
                if (repo.Gender.SelectedItemText == null)
                {
                    repo.Gender.SelectedItemText = "Female";
                }
                if (repo.EyeColor.SelectedItemText == null)
                {
                    repo.EyeColor.SelectedItemText = "Brown";
                }
                if (repo.HairColor.SelectedItemText == null)
                {
                    repo.HairColor.SelectedItemText = "Brown";
                }

                Thread.Sleep(200);
                if (repo.CustomerEditorView1.DateOfBirth.TextValue == "")
                {
                    repo.CustomerEditorView1.DateOfBirth.TextValue = "01/01/1940";
                }

                if (repo.AlternatePhoneValue.TextValue == "")
                {
                    repo.AlternatePhoneValue.TextValue = "5555555555";
                }
                if (repo.StreetTwoValue.TextValue == "")
                {
                    repo.StreetTwoValue.TextValue = "10 St";
                }
                if (repo.CustInfoEmail.TextValue == "")
                {
                    repo.CustInfoEmail.PressKeys("*****@*****.**");
                }


                // ##### End edit customer
                Global.LogText = @"Save Customer F6";
                WriteToLogFile.Run();
                Keyboard.Press("{F6}");             // Save
                Thread.Sleep(200);

                TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);                   // Subtract overhead and store in Global.Q4StatLine
                Global.CurrentMetricDesciption = "Edit Customer Information";
                Global.Module = "Edit Customer Information";
                DumpStatsQ4.Run();
                Global.CurrentMetricDesciption = "Module Total Time";
                DumpStatsQ4.Run();


// End block comment


                MystopwatchModuleTotal.Reset();
                MystopwatchModuleTotal.Start();

                MystopwatchQ4.Reset();
                MystopwatchQ4.Start();


                Global.LogText = @"F6 Continue to Purchase & Contine to pin pad";
                WriteToLogFile.Run();
                while (!Host.Local.TryFindSingle(repo.DialogShellView.WaitingForSignatureInfo.AbsolutePath.ToString(), out element))
                {
                    Keyboard.Press("{F6}");                 // Continue in Purchase Mode F6 & Continue to Pin Pad F6
                    Thread.Sleep(500);
                }

                Global.LogText = @"Sign on Pin Pad";
                WriteToLogFile.Run();

                Thread.Sleep(50);
                repo.RetechPeripheralHostWindow.SignOnPinPad.Click();

                Thread.Sleep(50);
                repo.RetechPeripheralHostWindow.AcceptOnPinPad.Click();

                Thread.Sleep(50);
                repo.RetechPeripheralHostWindow.MinimizePinPad.Click();              // minimize cause always on top!!!!

                Thread.Sleep(50);
                repo.DialogShellView.SignatureAcceptedCommand.Click();

                Thread.Sleep(100);

                if (Host.Local.TryFindSingle(repo.ContinueButtonCommandInfo.AbsolutePath.ToString(), out element))
                {
                    repo.ContinueButtonCommand.Click();
                    Thread.Sleep(100);
                }

//				Global.LogText = @"SpecialPriceOverride";
//				WriteToLogFile.Run();
//		        ProductionIssueFunctions.SpecialPriceOverride(12.00m);

                TimeMinusOverhead.Run((float)MystopwatchModuleTotal.ElapsedMilliseconds);                   // Subtract overhead and store in Global.Q4StatLine
                Global.NowCustomerLookup       = Global.AdjustedTime;
                Global.CurrentMetricDesciption = "Sign on Pin Pad";
                Global.Module = "Sign on Pin Pad";
                DumpStatsQ4.Run();
                Global.CurrentMetricDesciption = "Module Total Time";
                DumpStatsQ4.Run();
            }


            // @#@#@# C H E C K O U T #@#@#@
            Global.PayWithMethod = "Cash";
            Checkout.Run();

            TimeMinusOverhead.Run((float)MystopwatchTT.ElapsedMilliseconds);   // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Scenario 47";
            Global.Module = "Total Time";
            DumpStatsQ4.Run();

            // Write out metrics buffer
            WriteOutStatsQ4Buffer.Run();


            Thread.Sleep(2000);
        }
Example #2
0
        public void EnterGPGSKU()
        {
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            Ranorex.Unknown element = null;

            RanorexRepository   repo              = new RanorexRepository();
            fnWriteToLogFile    WriteToLogFile    = new fnWriteToLogFile();
            fnTimeMinusOverhead TimeMinusOverhead = new fnTimeMinusOverhead();
            fnDumpStatsQ4       DumpStatsQ4       = new fnDumpStatsQ4();
            fnWriteToErrorFile  WriteToErrorFile  = new fnWriteToErrorFile();

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();

            Stopwatch MystopwatchF1          = new Stopwatch();
            Stopwatch MystopwatchQ4          = new Stopwatch();
            Stopwatch MystopwatchModuleTotal = new Stopwatch();
            Stopwatch MystopwatchGPGPRP      = new Stopwatch();

            if (Global.DomesticRegister)
            {
                // Press F1 add item
                Keyboard.Press("{F1}");
                while (!Host.Local.TryFindSingle(repo.AddItemTextInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                    if (MystopwatchF1.ElapsedMilliseconds > 1000)
                    {
                        Keyboard.Press("{F1}");
                        Thread.Sleep(100);
                        MystopwatchF1.Reset();
                        MystopwatchF1.Start();
                    }
                }
            }

            // Enter SKU
            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            if (Global.DomesticRegister)
            {
                while (!repo.AddItemText.Enabled)
                {
                    Thread.Sleep(100);
                }

                if (Global.CurrentSKUOveride)                   // 12-3-18
                {
                    repo.AddItemText.TextValue = Global.CurrentSKUOverideValue;
                }
                else
                {
                    repo.AddItemText.TextValue = "919322";
                }

                repo.RetechQuickEntryView.TxtWatermark.PressKeys("{Enter}");
                Global.LogText = @"Item added";
                WriteToLogFile.Run();


                Global.LogText = "Adding GPG";
                WriteToLogFile.Run();
                MystopwatchGPGPRP.Reset();
                MystopwatchGPGPRP.Start();
                repo.Retech.AddGPGCommand.Click();
                while (!repo.Retech.GPGCheckMark.Enabled)
                {
                    Thread.Sleep(100);
                }

                if (!Global.DoingCollectible)
                {
                    while (!repo.ContinueButtonCommand.Enabled)
                    {
                        Thread.Sleep(100);
                    }
                    Thread.Sleep(100);
                    repo.Retech.ButtonContent2.Click("32;11");
                }
            }
            else
            {
                // International SKU OBS Mass Effect
                repo.IPOSScreen.InternationalOutsideSKUField.PressKeys("611547{Enter}");
                WriteToLogFile.Run();
                Thread.Sleep(100);
//				while(!repo.IPOS20167172.OBSMASSEFFECTEDGECARDInfo.Exists())
//				{	Thread.Sleep(100);	}
                if (Host.Local.TryFindSingle(repo.ReservationDeposit.RawTextESCCloseInfo.AbsolutePath.ToString(), out element))
                {
                    repo.ReservationDeposit.RawTextESCClose.Click();
                }
            }


            TimeMinusOverhead.Run((float)MystopwatchGPGPRP.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Add GPG";
            Global.Module = "Add GPG";
            DumpStatsQ4.Run();
            Global.CurrentMetricDesciption = "Module Total Time";
            DumpStatsQ4.Run();
        }
Example #3
0
        public void Run()
        {
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            RanorexRepository        repo = new RanorexRepository();
            fnUpdatePALStatusMonitor UpdatePALStatusMonitor = new fnUpdatePALStatusMonitor();
            fnWriteToLogFile         WriteToLogFile         = new fnWriteToLogFile();
            FnWriteOutStatsQ4Buffer  WriteOutStatsQ4Buffer  = new FnWriteOutStatsQ4Buffer();
            fnDumpStatsQ4            DumpStatsQ4            = new fnDumpStatsQ4();
            fnTimeMinusOverhead      TimeMinusOverhead      = new fnTimeMinusOverhead();

            Ranorex.Unknown element = null;
            Global.AbortScenario = false;

            //*****************Start  Scenario 21 - WIS Web-In-Store ******************
            Global.CurrentScenario = 21;

            if (!Global.IndirectCall)
            {
                if (!Global.DoScenarioFlag[Global.CurrentScenario])
                //			if(Global.CurrentScenario != 9999)
                {
                    return;
                }
            }

            Global.ScenarioExecuted = true;

            Global.RetechScenariosPerformed++;
            UpdatePALStatusMonitor.Run();

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();
            Stopwatch MystopwatchModuleTotal = new Stopwatch();

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            Stopwatch MystopwatchQ4 = new Stopwatch();

            Global.LogText = @"---> fnDoScenario21 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 21 IN", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            // Click on back office link
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            Global.LogText = @"Clicking on Back Office link";
            WriteToLogFile.Run();
            repo.Retech.Self.Click();
            repo.Retech.Self.PressKeys("{LShiftKey down}{F3}{LShiftKey up}");
            Global.LogText = @"Waiting for Back Office home screen";
            WriteToLogFile.Run();
            while (!repo.BackOffice275111HomeScreen.BackOffice275111HomeScreen.Enabled)
            {
                Thread.Sleep(100);
            }
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Load Back Office";
            Global.Module = "WIS:";
            DumpStatsQ4.Run();
            Thread.Sleep(1000);

            // Press Shift-F2 for WIS
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            Global.LogText = @"Pressing Shift-F2 for WIS";
            WriteToLogFile.Run();
            Keyboard.Press("{LShiftKey down}{F2}{LShiftKey up}");
            Global.LogText = @"Waiting for Browser to load";
            WriteToLogFile.Run();
            Thread.Sleep(3000);
            while (!Host.Local.TryFindSingle(repo.WebInStoreProductMozillaFirefox.FireFoxTextInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(200);
            }
            while (!repo.WebInStoreProductMozillaFirefox.FireFoxText.Enabled)
            {
                Thread.Sleep(200);
            }
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Load Browser";
            Global.Module = "WIS:";
            DumpStatsQ4.Run();
            Thread.Sleep(200);

            // Enter SKU
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            Global.LogText = @"Enter SKU";
            WriteToLogFile.Run();
            repo.WebInStoreProductMozillaFirefox.FireFoxText.PressKeys("100800{Return}");              // ##### E N T E R    S K U ###
            Thread.Sleep(100);
            Global.LogText = @"Waiting for SKU link to display";
            WriteToLogFile.Run();
            while (!repo.MozillaFirefoxGameStopEdition.ProductDetails.Enabled)
            {
                Thread.Sleep(100);
            }
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Search for SKU";
            Global.Module = "WIS:";
            DumpStatsQ4.Run();

            // Click on Product Details
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            Global.LogText = @"Click on Product Details";
            WriteToLogFile.Run();
            repo.MozillaFirefoxGameStopEdition.ProductDetails.Click();
            Thread.Sleep(100);
            Global.LogText = @"Waiting for Product Details to display";
            WriteToLogFile.Run();
            while (!repo.WebInStoreProductMozillaFirefox.ProductDetailsText.Enabled)
            {
                Thread.Sleep(100);
            }
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Get Product Details";
            Global.Module = "WIS:";
            DumpStatsQ4.Run();

            // Click on Add to Cart
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            Global.LogText = @"Click on Add to Cart";
            WriteToLogFile.Run();
            repo.WebInStoreProductMozillaFirefox.Grouping.AddToCart.Click();
            Thread.Sleep(100);
            Global.LogText = @"Waiting for Item(s) added to cart";
            WriteToLogFile.Run();
            while (!repo.WebInStoreProductMozillaFirefox.Grouping.TextItemSAddedToCart.Enabled)
            {
                Thread.Sleep(100);
            }
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Add to Cart";
            Global.Module = "WIS:";
            DumpStatsQ4.Run();

            // Click on Cart Continue
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            Global.LogText = @"Click on Cart Continue";
            WriteToLogFile.Run();
            repo.WebInStoreProductMozillaFirefox.Grouping.Continue.Click();
            Thread.Sleep(100);
            Global.LogText = @"Waiting for Shipping Address";
            WriteToLogFile.Run();
            repo.ShippingAddressMozillaFirefoxGame.ShippingAddress.ShippingAddress1.Click();
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Load Shipping Address";
            Global.Module = "WIS:";
            DumpStatsQ4.Run();

            // Fill in shipping address and click continue
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            Global.LogText = @"Fill in shipping address and click continue";
            WriteToLogFile.Run();
            repo.ShippingAddressMozillaFirefoxGame.ShippingAddress.ShippingAddressFirstName.PressKeys("PAL");
            repo.ShippingAddressMozillaFirefoxGame.ShippingAddress.ShippingAddressLastName.PressKeys("Last");
            repo.ShippingAddressMozillaFirefoxGame.ShippingAddress.ShippingAddressAddress.PressKeys("301 Tower");
            repo.ShippingAddressMozillaFirefoxGame.ShippingAddress.ShippingAddressCity.PressKeys("MyCity");
            //state start
            repo.ShippingAddressMozillaFirefoxGame.ShippingAddress.ComboBox.Click("214;9");
            Delay.Milliseconds(200);
            repo.Dropdown.Self.Click("169;23");
            Delay.Milliseconds(200);
            repo.ShippingAddressMozillaFirefoxGame.ShippingAddress.ComboBox.PressKeys("{LControlKey down}{LMenu}{LControlKey up}");
            // State end
            repo.ShippingAddressMozillaFirefoxGame.ShippingAddress.ShippingAddressZipPostal.PressKeys("76401");
            repo.ShippingAddressMozillaFirefoxGame.ShippingAddress.ShippingAddressPhone.PressKeys("9727651234");
            repo.ShippingAddressMozillaFirefoxGame.ShippingAddress.ShippingAddressEmail.PressKeys("*****@*****.**");
            repo.ShippingAddressMozillaFirefoxGame.ShippingAddress.ShippingAddressReTypeEmail.PressKeys("*****@*****.**");
            // Press continue
            repo.ShippingAddressMozillaFirefoxGame.ShippingAddress.ShippingAddressContinue.Click();
            Thread.Sleep(100);
            Global.LogText = @"Waiting for Shipping Address Confirm";
            WriteToLogFile.Run();
            while (!repo.ShippingAddressMozillaFirefoxGame.ShippingAddress.ShippingAddressConfirmButton.Enabled)
            {
                Thread.Sleep(100);
            }
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Fill in Shipping Address";
            Global.Module = "WIS:";
            DumpStatsQ4.Run();

            // Click on Shipping Address Confirmed
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            Global.LogText = @"Click on Shipping Address Confirmed";
            WriteToLogFile.Run();
            repo.ShippingAddressMozillaFirefoxGame.ShippingAddress.ShippingAddressConfirmButton.Click();
            Thread.Sleep(100);
            Global.LogText = @"Waiting for Shipping Method";
            WriteToLogFile.Run();
            while (!repo.ShippingAddressMozillaFirefoxGame.Grouping.ShippingMethod.Enabled)
            {
                Thread.Sleep(100);
            }
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Shipping Address Confirmed";
            Global.Module = "WIS:";
            DumpStatsQ4.Run();

            // Click on Shipping Method Continue
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            Global.LogText = @"Click on Shipping Method Continue";
            WriteToLogFile.Run();
            repo.ShippingAddressMozillaFirefoxGame.Grouping.ShippingMethodContinue.Click();
            Thread.Sleep(100);
            Global.LogText = @"Waiting for Order Review";
            WriteToLogFile.Run();
            while (!repo.ShippingAddressMozillaFirefoxGame.Grouping.OrderReview.Enabled)
            {
                Thread.Sleep(100);
            }
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Shipping Method Confirmed";
            Global.Module = "WIS:";
            DumpStatsQ4.Run();

            // Click on Order Review Continue
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            Global.LogText = @"Click on Order Review Continue";
            WriteToLogFile.Run();
            repo.ShippingAddressMozillaFirefoxGame.Grouping.OrderReviewSubmit.Click();
            Thread.Sleep(100);
            Global.LogText = @"Waiting for Order Confirmation";
            WriteToLogFile.Run();
            while (!repo.ShippingAddressMozillaFirefoxGame.Grouping.GameStopWebOrderConfirmation.Enabled)
            {
                Thread.Sleep(100);
            }
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Order Confirmation";
            Global.Module = "WIS:";
            DumpStatsQ4.Run();

            Global.TempFloat = (float)MystopwatchModuleTotal.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchModuleTotal.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Module Total Time";
            Global.Module = "WIS:";
            DumpStatsQ4.Run();

            // Press Escape to exit
            repo.ShippingAddressMozillaFirefoxGame.FireFoxExit.Click();

            TimeMinusOverhead.Run((float)MystopwatchTT.ElapsedMilliseconds);   // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Scenario 21";
            Global.Module = "Total Time";
            DumpStatsQ4.Run();

            // Write out metrics buffer
            WriteOutStatsQ4Buffer.Run();

            Global.LogText = "<--- fnDoScenario21 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 21 OUT", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            return;

            // ***********End Scenario 21 *****************
        }
        public void Run()
        {
            Mouse.DefaultMoveTime        = 0;
            Keyboard.DefaultKeyPressTime = 0;
            Delay.SpeedFactor            = 0.0;

            RanorexRepository   repo              = new RanorexRepository();
            fnWriteToLogFile    WriteToLogFile    = new fnWriteToLogFile();
            fnDumpStatsQ4       DumpStatsQ4       = new fnDumpStatsQ4();
            fnTimeMinusOverhead TimeMinusOverhead = new fnTimeMinusOverhead();

            Global.LogText = "IN fnEnterCustomerInformation";
            WriteToLogFile.Run();
            Global.LogFileIndentLevel++;

            // Create new stopwatch
            Stopwatch Mystopwatch = new Stopwatch();

            Mystopwatch.Reset();
            Mystopwatch.Start();

            Ranorex.Unknown element = null;
            string          MyXPATH;

            // Will only fill in fields that are enabled and blank

            //repo.TransactionCustomerInformation.SearchTimeout = 100;
            while (!repo.TransactionCustomerInformation.PnlContent.FirstName.Enabled)
            {
                Thread.Sleep(100);
            }

            // First Name
            if (repo.TransactionCustomerInformation.PnlContent.FirstName.Enabled &&
                repo.TransactionCustomerInformation.PnlContent.FirstName.TextValue == "")
            {
                repo.TransactionCustomerInformation.PnlContent.FirstName.TextValue = "PALFirst";
            }

            // Middle Name
            if (repo.TransactionCustomerInformation.PnlContent.MiddleName.Enabled &&
                repo.TransactionCustomerInformation.PnlContent.MiddleName.TextValue == "")
            {
                repo.TransactionCustomerInformation.PnlContent.MiddleName.TextValue = "PALMiddle";
            }

            // Last Name
            if (repo.TransactionCustomerInformation.PnlContent.LastName.Enabled &&
                repo.TransactionCustomerInformation.PnlContent.LastName.TextValue == "")
            {
                repo.TransactionCustomerInformation.PnlContent.LastName.TextValue = "PALLast";
            }

            // Address 1
            if (repo.TransactionCustomerInformation.PnlContent.Address1.Enabled &&
                repo.TransactionCustomerInformation.PnlContent.Address1.TextValue == "")
            {
                repo.TransactionCustomerInformation.PnlContent.Address1.TextValue = "301 Bronco Street";
            }

            // Primary Phone
            if (repo.TransactionCustomerInformation.PnlContent.PrimaryPhone.Enabled &&
                repo.TransactionCustomerInformation.PnlContent.PrimaryPhone.TextValue == "")
            {
                repo.TransactionCustomerInformation.PnlContent.PrimaryPhone.TextValue = "9727651234";
            }

            // Address 2
            if (repo.TransactionCustomerInformation.PnlContent.Address2.Enabled &&
                repo.TransactionCustomerInformation.PnlContent.Address2.TextValue == "")
            {
                repo.TransactionCustomerInformation.PnlContent.Address2.TextValue = "301 Bronco Street";
            }

            // Mobile Phone
            if (repo.TransactionCustomerInformation.PnlContent.MobilePhone.Enabled &&
                repo.TransactionCustomerInformation.PnlContent.MobilePhone.TextValue == "")
            {
                repo.TransactionCustomerInformation.PnlContent.MobilePhone.TextValue = "9727654321";
            }

            // Email
//            if(	repo.TransactionCustomerInformation.PnlContent.Email.Enabled &&
//              repo.TransactionCustomerInformation.PnlContent.Email.TextValue == "")
            if (repo.EmailValue.Enabled &&
                repo.EmailValue.TextValue == "")
            {
                // Create a unique name consisting of time down to millisecond
                System.DateTime DateTimeNow = System.DateTime.Now;
                System.TimeSpan TimeNow     = DateTimeNow.TimeOfDay;
                string          UniqueName  = TimeNow.ToString().Replace(":", "");
                UniqueName = UniqueName.Replace(".", "");
                repo.EmailValue.TextValue = "PAL" + UniqueName + "@PALMail.com";
            }

            // City
            if (repo.TransactionCustomerInformation.PnlContent.City.Enabled &&
                repo.TransactionCustomerInformation.PnlContent.City.TextValue == "")
            {
                repo.TransactionCustomerInformation.PnlContent.City.TextValue = "Little Elm";
            }

            // Select State from drop down
            if (repo.TransactionCustomerInformation.PnlContent.StateDropDown.SelectedItemIndex == 0 &&
                repo.TransactionCustomerInformation.PnlContent.StateDropDown.Enabled)
            {
                repo.TransactionCustomerInformation.RawText6.Click("6;5");
                Delay.Milliseconds(200);

                repo.TransactionCustomerInformation.RawText6.Click("6;5");
                Delay.Milliseconds(200);

                repo.ListItemsValues.ListItemMB.Click("55;7");
                Delay.Milliseconds(200);
            }

            // Zip
            if (repo.TransactionCustomerInformation.PnlContent.ZipCode.Enabled &&
                repo.TransactionCustomerInformation.PnlContent.ZipCode.TextValue == "")
            {
                repo.TransactionCustomerInformation.PnlContent.ZipCode.TextValue = "75068";
            }

            // Date of Birth
            if (repo.TransactionCustomerInformation.TradeInformation.DateOfBirth.Enabled &&
                repo.TransactionCustomerInformation.TradeInformation.DateOfBirth.TextValue == "  /  /")
            {
                repo.TransactionCustomerInformation.TradeInformation.DateOfBirth.TextValue = "09111952";
            }

            // Male/Female
            if (repo.TransactionCustomerInformation.TradeInformation.MaleFemaleDropDownArrow.TextColor != "#FFFFFF")            // Is "#FFFFFF" when shaded out - not enabled
            {
                repo.TransactionCustomerInformation.TradeInformation.MaleFemaleDropDownArrow.Click("6;8");                      // NOTE must be pressed twice
                repo.TransactionCustomerInformation.TradeInformation.MaleFemaleDropDownArrow.Click("6;8");
                repo.ListItemsValues.Female.Click("99;7");
            }

            // Eye Color
            if (repo.TransactionCustomerInformation.TradeInformation.EyeColorDropDownArrow.TextColor != "#FFFFFF")            // Is "#FFFFFF" when shaded out - not enabled
            {
                repo.TransactionCustomerInformation.TradeInformation.EyeColorDropDownArrow.Click("5;7");                      // NOTE must be pressed twice
                repo.TransactionCustomerInformation.TradeInformation.EyeColorDropDownArrow.Click("5;7");
                repo.ListItemsValues.Blue.Click("115;6");
            }

            // Hair Color
            if (repo.TransactionCustomerInformation.TradeInformation.HairColorDropDownArrow.TextColor != "#FFFFFF")             // Is "#FFFFFF" when shaded out - not enabled
            {
                repo.TransactionCustomerInformation.TradeInformation.HairColorDropDownArrow.Click("8;8");                       // NOTE must be pressed twice
                repo.TransactionCustomerInformation.TradeInformation.HairColorDropDownArrow.Click("8;8");
                repo.ListItemsValues.Black.Click("99;2");
            }

            // Tax ID
            MyXPATH = repo.TransactionCustomerInformation.PnlContent.TaxIDInfo.AbsolutePath.ToString();
            if (Host.Local.TryFindSingle(MyXPATH, out element))
            {
                repo.TransactionCustomerInformation.PnlContent.TaxID.TextValue = "46464645645645";
            }

            // Organization
            MyXPATH = repo.TransactionCustomerInformation.PnlContent.OrganizationNameInfo.AbsolutePath.ToString();
            if (Host.Local.TryFindSingle(MyXPATH, out element))
            {
                repo.TransactionCustomerInformation.PnlContent.OrganizationName.TextValue = "My Ogranization";
            }

            // Select "Other" for Reason for Exemption
            MyXPATH = repo.TransactionCustomerInformation.PnlContent.ReasonForExemptionDropDownArrowInfo.AbsolutePath.ToString();
            if (Host.Local.TryFindSingle(MyXPATH, out element))
            {
                repo.TransactionCustomerInformation.PnlContent.ReasonForExemptionDropDownArrow.Click("6;5");
                //Thread.Sleep(50);
                repo.ListItemsValues.Other.Click("211;10");
            }

            // Country
            if (repo.TransactionCustomerInformation.PnlContent.Country.Enabled &&
                repo.TransactionCustomerInformation.PnlContent.Country.TextValue == "")
            {
                repo.TransactionCustomerInformation.PnlContent.Country.TextValue = "US";
            }

            Keyboard.Press("{F5}");
            Thread.Sleep(100);

            // Check for Refund Warning pop-up if yes press F5 for cash
            if (Host.Local.TryFindSingle(repo.PopUpCustomerLookupUnavailable.WarningPowerUpMemberInfo.AbsolutePath.ToString(), out element))
            {
                Global.LogText = "Popup - Warning Power Up Member";
                WriteToLogFile.Run();
                Keyboard.Press("{F5}");
                Thread.Sleep(100);
            }

            // Check for "If the customer also want to update their GI subscription ..."
            // NOTE: this has same xpath as no customer found by phone number popup
            if (Host.Local.TryFindSingle(repo.PopUpCustomerLookupUnavailable.WarningPowerUpMemberInfo.AbsolutePath.ToString(), out element))
            {
                Global.LogText = "Popup - If the customer also want to update their GI subscription ...";
                WriteToLogFile.Run();
                Keyboard.Press("{F5}");
                Thread.Sleep(100);
                Keyboard.Press("{F5}");
                Thread.Sleep(100);
            }

            // Check for if customer want to update GI subscription
            if (Host.Local.TryFindSingle(repo.PopUpCustomerLookupUnavailable.PopUpIfWantToUpdateGIInfo.AbsolutePath.ToString(), out element))
            {
                Global.LogText = "Popup - if customer want to update GI subscription";
                WriteToLogFile.Run();
                Keyboard.Press("{F5}");
                Thread.Sleep(100);
            }

            while (Host.Local.TryFindSingle(repo.TransactionCustomerInformation.PnlContent.FirstNameInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);

                // Check for Invalid email address
                if (Host.Local.TryFindSingle(repo.InvalidFieldDialog.InvalidEmailAddressInfo.AbsolutePath.ToString(), out element))
                {
                    Global.LogText = "Popup - Invalid email address";
                    WriteToLogFile.Run();
                    repo.InvalidFieldDialog.Skip.Click("4;15");
                }
                // Check for Invalid email address Windows 7
                if (Host.Local.TryFindSingle(repo.InvalidFieldDialog.VerifyTheEmailAddressWithTheCustomInfo.AbsolutePath.ToString(), out element))
                {
                    Global.LogText = "Popup - Invalid email address";
                    WriteToLogFile.Run();
                    Keyboard.Press("{Escape}");
                }

                // Check for Because the customer is a PowerUp member...
                if (Host.Local.TryFindSingle(repo.PopUpCustomerLookupUnavailable.BecauseTheCustomerIsAPowerUpMemberInfo.AbsolutePath.ToString(), out element))
                {
                    Global.LogText = "Popup - Because the customer is a PowerUp member..";
                    WriteToLogFile.Run();
                    Keyboard.Press("{F5}");
                    Thread.Sleep(100);
                }

                // Check for Customer communication email address...
                if (Host.Local.TryFindSingle(repo.PopUpCustomerLookupUnavailable.CustomersCommunicationEmailAddressHaInfo.AbsolutePath.ToString(), out element))
                {
                    Global.LogText = "Popup - Customer communication email address..";
                    WriteToLogFile.Run();
                    Keyboard.Press("{F5}");
                    Thread.Sleep(100);
                }
                // Check for Customer communication email address...
                if (Host.Local.TryFindSingle(repo.PopUpCustomerLookupUnavailable.CustomersCommunicationEmailAddressInfo.AbsolutePath.ToString(), out element))
                {
                    Global.LogText = "Popup - Customer communication email address..";
                    WriteToLogFile.Run();
                    Keyboard.Press("{F5}");
                    Thread.Sleep(100);
                }

                // Check for Unable to Validate Customer
                if (Host.Local.TryFindSingle(repo.PopUpCustomerLookupUnavailable.WeAreUnableToValidateTheCustomersInfo.AbsolutePath.ToString(), out element))
                {
                    Global.LogText = "Popup - Unable to Validate Customer..";
                    WriteToLogFile.Run();
                    Keyboard.Press("{F5}");
                    Thread.Sleep(100);
                }
            }


            TimeMinusOverhead.Run((float)Mystopwatch.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Enter Customer Information";
            Global.Module = "fnEnterCustomerInformation";
            DumpStatsQ4.Run();

            Global.LogFileIndentLevel--;
            Global.LogText = "OUT fnEnterCustomerInformation";
            WriteToLogFile.Run();
        }
Example #5
0
        public void Run()
        {
            // select top 1 SKU from SKU where AllowPre= true and IsDLC=false and dept in (21, 15) and qty <> 0 and ESRBCode<>"M" order by rnd(-(100000*sku)*time())
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            RanorexRepository repo           = new RanorexRepository();
            fnWriteToLogFile  WriteToLogFile = new fnWriteToLogFile();
            fnDumpStatsQ4     DumpStatsQ4    = new fnDumpStatsQ4();

            Global.LogFileIndentLevel++;
            Global.LogText = "IN fFnDataLevelPreOrder";
            WriteToLogFile.Run();

            Global.PreOrderFailed = false;

            // Generates the prerequsite for scenarios 20, 22, 23, and 25  uses Global.CurrentSKU

            //pre requisite start

            // Create new stopwatch
            Stopwatch Mystopwatch = new Stopwatch();

            Mystopwatch.Reset();
            Mystopwatch.Start();

            String strHomePhone = "'" + Global.NextPhoneNumber + "'";

            //create connection string
            String strConnect = @"Provider=Microsoft.JET.OLEDB.4.0;"
                                + @"data source=" + Global.Register1DriveLetter + @":\pos\presell.mdb";

            //prep sql statements
            String strSelectCust = "SELECT TOP 1 CustomerID FROM TBLCUSTOMER WHERE HOMEPHONE = "
                                   + strHomePhone
                                   + " ORDER BY CustomerId DESC";

            //create connection
            OleDbConnection conConnection = new OleDbConnection(strConnect);

            //open connection
            conConnection.Open();
            //Console.WriteLine("ServerVersion: {0} \nDataSource: {1}",conConnection.ServerVersion, conConnection.DataSource);

            //create dataset
            DataSet dsSelectCust = new DataSet();

            //create adapter and fill the dataset
            OleDbDataAdapter adpSelectCust = new OleDbDataAdapter(strSelectCust, conConnection);

            adpSelectCust.Fill(dsSelectCust);

            DataTable dtSelectCust = dsSelectCust.Tables[0];

            if (dtSelectCust.Rows.Count == 0)
            {
                // no record, insert new record
                //Console.WriteLine("No record! Creating customer...");
                //Console.ReadKey();
                String strInsertCust = "INSERT INTO TBLCUSTOMER "
                                       + "(LastName,FirstName,Address1,City,State,Zip,HomePhone) "
                                       + " values ('Asberry','Travis','Po Box 1244','Blue Hill','ME','04614', " + strHomePhone + " )";

                OleDbCommand cmdInsertCust = new OleDbCommand(strInsertCust, conConnection);
                cmdInsertCust.ExecuteNonQuery();
            }

            //select the customer created or selected from database
            OleDbDataAdapter adpSelectCustNew = new OleDbDataAdapter(strSelectCust, conConnection);

            adpSelectCustNew.Fill(dsSelectCust);

            DataTable dtSelectCustNew = dsSelectCust.Tables[0];
            String    strCustomerId   = "'" + Convert.ToString(dtSelectCustNew.Rows[0]["CustomerId"]) + "'";
            //Console.WriteLine("CustomerId: " + strCustomerId);
            //Console.ReadKey();

            //Insert data in tblItems
            //Console.WriteLine("Inserting reserve item...");
            //Console.ReadKey();

            String strInsertItem = "INSERT INTO TBLITEMS "
                                   + "(CustomerID,SKU,Qty,Type,Status) "
                                   + " values ("
                                   + strCustomerId
                                   + ","
                                   + Global.CurrentSKU
                                   + ",1,1,1)";

            OleDbCommand cmdInsertItem = new OleDbCommand(strInsertItem, conConnection);

            cmdInsertItem.ExecuteNonQuery();

            //Select max item id from tblItems
            String strSelectItem = "SELECT TOP 1 ItemID FROM TBLITEMS ORDER BY ItemId DESC";

            //create dataset
            DataSet dsSelectItem = new DataSet();

            //create adapter and fill the dataset
            OleDbDataAdapter adpSelectItem = new OleDbDataAdapter(strSelectItem, conConnection);

            adpSelectItem.Fill(dsSelectItem);

            DataTable dtSelectItem = dsSelectItem.Tables[0];
            String    strItemId    = Convert.ToString(dtSelectItem.Rows[0]["ItemId"]);
            //Console.WriteLine("ItemId: " + strItemId);
            //Console.ReadKey();

            //Insert data in tblDeposits using CustomerID and ItemId from previous queries
            //Console.WriteLine("Inserting deposit...");
            //Console.ReadKey();

            String strInsertDeposit = "INSERT INTO TBLDEPOSITS "
                                      + "(CustomerID,DepositAmount,Status,DepositType,ItemID,OrigTenderType) "
                                      + " values ("
                                      + strCustomerId
                                      + ",5,1,1,"
                                      + strItemId
                                      + ",1)";

            OleDbCommand cmdInsertDeposit = new OleDbCommand(strInsertDeposit, conConnection);

            cmdInsertDeposit.ExecuteNonQuery();

            //Close connection
            conConnection.Close();

            //Console.WriteLine("Done...");

            // pre requisite end

            Global.Q4StatLine = ((float)Mystopwatch.ElapsedMilliseconds / 1000).ToString("R");
            Global.CurrentMetricDesciption = @"Data Level PreOrder";
            Global.Module = "Setup";
            DumpStatsQ4.Run();

            Global.LogText = "OUT fFnDataLevelPreOrder";
            WriteToLogFile.Run();
            Global.LogFileIndentLevel--;
        }
        public void Run()
        {       //*****************Start  Scenario 33 - Retech - Simple One SKU Pay with Cash ******************
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            Ranorex.Unknown element = null;
            Global.AbortScenario = false;

            // Uses same SKU and Customer for Scenarios 3, 4, and 5

            RanorexRepository        repo = new RanorexRepository();
            fnTimeMinusOverhead      TimeMinusOverhead      = new fnTimeMinusOverhead();
            fnDumpStatsQ4            DumpStatsQ4            = new fnDumpStatsQ4();
            fnWriteToLogFile         WriteToLogFile         = new fnWriteToLogFile();
            fnWriteToErrorFile       WriteToErrorFile       = new fnWriteToErrorFile();
            FnWriteOutStatsQ4Buffer  WriteOutStatsQ4Buffer  = new FnWriteOutStatsQ4Buffer();
            fnUpdatePALStatusMonitor UpdatePALStatusMonitor = new fnUpdatePALStatusMonitor();
            FnCheckout         Checkout         = new FnCheckout();
            FnStartTransaction StartTransaction = new FnStartTransaction();
            FnEnterSKU         EnterSKU         = new FnEnterSKU();

            Global.CurrentScenario = 33;

            if (!Global.IndirectCall)
            {
                if (!Global.DoScenarioFlag[Global.CurrentScenario])
                {
                    return;
                }
            }

            Global.ScenarioExecuted = true;

            Global.RetechScenariosPerformed++;
            UpdatePALStatusMonitor.Run();

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();

            Stopwatch MystopwatchF1 = new Stopwatch();

            Stopwatch MystopwatchTotal = new Stopwatch();

            MystopwatchTotal.Reset();
            MystopwatchTotal.Start();
            Stopwatch MystopwatchQ4          = new Stopwatch();
            Stopwatch MystopwatchModuleTotal = new Stopwatch();

            Global.LogText = @"---> fnDoScenario33 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 33 IN", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            // Start

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            StartTransaction.Run();

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            Global.LogText = @"Add Item";
            WriteToLogFile.Run();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            if (Global.DomesticRegister)
            {
                // Press F1 add item
                Keyboard.Press("{F1}");
                MystopwatchF1.Reset();
                MystopwatchF1.Start();
                while (!Host.Local.TryFindSingle(repo.AddItemTextInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                    if (MystopwatchF1.ElapsedMilliseconds > 1000)
                    {
                        Keyboard.Press("{F1}");
                        Thread.Sleep(100);
                        MystopwatchF1.Reset();
                        MystopwatchF1.Start();
                    }
                }

                TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);                   // Subtract overhead and store in Global.Q4StatLine
                Global.CurrentMetricDesciption = "[F1] wait for add item";
                Global.Module = "F1 Add Item";
                DumpStatsQ4.Run();

                Global.CurrentMetricDesciption = "Module Total Time";
                DumpStatsQ4.Run();
            }

            Global.CurrentSKU = Global.S4Sku1;
            EnterSKU.Run();


            // @#@#@# C H E C K O U T #@#@#@
            Global.PayWithMethod = "Cash";
            Checkout.Run();

            TimeMinusOverhead.Run((float)MystopwatchTT.ElapsedMilliseconds);   // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Scenario 33";
            Global.Module = "Total Time";
            DumpStatsQ4.Run();

            if (!Global.AbortScenario)
            {
                // Write out metrics buffer
                WriteOutStatsQ4Buffer.Run();
            }
            else
            {
                Global.Q4StatBuffer = "";
            }

            Global.LogText = "<--- fnDoScenario33 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 33 OUT", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            Thread.Sleep(2000);

            // ***********End Scenario 33*****************
        }
Example #7
0
        public void Run()
        {
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            Ranorex.Unknown element = null;

            RanorexRepository   repo              = new RanorexRepository();
            fnWriteToLogFile    WriteToLogFile    = new fnWriteToLogFile();
            fnTimeMinusOverhead TimeMinusOverhead = new fnTimeMinusOverhead();
            fnDumpStatsQ4       DumpStatsQ4       = new fnDumpStatsQ4();
            fnWriteToErrorFile  WriteToErrorFile  = new fnWriteToErrorFile();

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();

            Stopwatch MystopwatchF1          = new Stopwatch();
            Stopwatch MystopwatchQ4          = new Stopwatch();
            Stopwatch MystopwatchModuleTotal = new Stopwatch();


            // Enter SKU
            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            if (Global.DomesticRegister)
            {
                while (!repo.AddItemText.Enabled)
                {
                    Thread.Sleep(100);
                }

                if (Global.CurrentSKUOveride)                   // 12-3-18
                {
                    repo.AddItemText.TextValue = Global.CurrentSKUOverideValue;
                }
                else
                {
                    repo.AddItemText.TextValue = Global.CurrentSKU;
                }

                repo.RetechQuickEntryView.TxtWatermark.PressKeys("{Enter}");
                Global.LogText = @"Item added";
                WriteToLogFile.Run();
                if (!Global.DoingCollectible)
                {
                    while (!repo.ContinueButtonCommand.Enabled)
                    {
                        Thread.Sleep(100);
                    }
                    Thread.Sleep(100);
                    repo.Retech.ButtonContent2.Click("32;11");
                }
            }
            else
            {
                // International SKU OBS Mass Effect
                //repo.IPOSScreen.InternationalOutsideSKUField.PressKeys("611547{Enter}");
                repo.IPOSInternationalEnterSKUField.Text.PressKeys("611547{Enter}");                  // 3/25/19
                WriteToLogFile.Run();
                Thread.Sleep(100);
//				while(!repo.IPOS20167172.OBSMASSEFFECTEDGECARDInfo.Exists())
//				{	Thread.Sleep(100);	}
                if (Host.Local.TryFindSingle(repo.ReservationDeposit.RawTextESCCloseInfo.AbsolutePath.ToString(), out element))
                {
                    repo.ReservationDeposit.RawTextESCClose.Click();
                }
            }

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Enter SKU";
            Global.Module = "Add SKU";
            DumpStatsQ4.Run();

//            if(Global.DomesticRegister)
//            {
//				// Click continue
//	            MystopwatchQ4.Reset();
//				MystopwatchQ4.Start();
//				switch (Global.RetechVersion.Substring(0,3))
//				{
//					case "5.6":
//	                    while(!repo.Retech.ContinueF5_5_6_0_103.Enabled)
//						{	Thread.Sleep(100);	}
//	                    repo.Retech.ContinueF5_5_6_0_103.Click();
//						break;
//					case "5.7":
//	                    while(!repo.ContinueButtonCommand.Enabled)
//						{	Thread.Sleep(100);	}
//	                    repo.ContinueButtonCommand.Click();
//						break;
//					default:
//	                    while(!repo.ContinueButtonCommand.Enabled)
//						{
//							if(Host.Local.TryFindSingle(repo.ContinueButtonCommandInfo.AbsolutePath.ToString(), out element))
//							{
//								repo.ContinueButtonCommand.Click();
//							}
//	                        Thread.Sleep(100);
//	                    }
//	                    Thread.Sleep(100);
//	                    repo.ContinueButtonCommand.Click();
//						break;
//				}
//
//				Global.LogText = @"Waiting for CheckOut F12";
//				WriteToLogFile.Run();
//				while(!repo.Retech.ButtonCheckout.Enabled)
//				{	Thread.Sleep(100);	}
//
//				if(Global.CurrentScenario != 39)
//				{
//					TimeMinusOverhead.Run((float) MystopwatchQ4.ElapsedMilliseconds);  // Subtract overhead and store in Global.Q4StatLine
//			        Global.CurrentMetricDesciption = "Click Continue";
//			        Global.Module = "Add SKU";
//			        DumpStatsQ4.Run();
//				}
//			}


            if (Global.CurrentScenario != 39)
            {
                TimeMinusOverhead.Run((float)MystopwatchModuleTotal.ElapsedMilliseconds);           // Subtract overhead and store in Global.Q4StatLine
                Global.NowCustomerLookup       = Global.AdjustedTime;
                Global.NowEnterSKU             = Global.AdjustedTime;
                Global.CurrentMetricDesciption = "Module Total Time";
                Global.Module = "Add SKU";
                DumpStatsQ4.Run();
            }
        }
Example #8
0
        //
        // P R E   C H E C K   O U T ##############################################################################
        //
        public void SpecialPreCheckOut()
        {
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            bool BalanceIsZero = false;

            RanorexRepository   repo              = new RanorexRepository();
            fnWriteToLogFile    WriteToLogFile    = new fnWriteToLogFile();
            fnTimeMinusOverhead TimeMinusOverhead = new fnTimeMinusOverhead();
            fnDumpStatsQ4       DumpStatsQ4       = new fnDumpStatsQ4();
            fnWriteToErrorFile  WriteToErrorFile  = new fnWriteToErrorFile();

            Ranorex.Unknown element = null;

            Global.LogFileIndentLevel++;
            Global.LogText = "IN fnCheckout";
            WriteToLogFile.Run();

            // Read Remaining Balance from screen
            BalanceIsZero = false;
            if (repo.Retech.AmountDue.TextValue == "$0.00")
            {
                BalanceIsZero = true;
            }

            // 12-7-18
            if (Host.Local.TryFindSingle(repo.Retech.NotInterestedCommandInfo.AbsolutePath.ToString(), out element))
            {
                repo.Retech.NotInterestedCommand.Click();
                Thread.Sleep(100);
            }


            if (!Host.Local.TryFindSingle(repo.Retech.RequestCashSettlementInfo.AbsolutePath.ToString(), out element))
//			if(!Global.SpecialCheckingOut)
            {
                // Click on CheckOut F12 button
                Global.LogText = @"Clicking on F12 Checkout - Prod Issues";
                WriteToLogFile.Run();
                while (!repo.Retech.DataContextShowCheckoutViewCommand.Enabled)
                {
                    Thread.Sleep(100);
                }
                // Check for GPG Continue
                if (Host.Local.TryFindSingle(repo.ContinueButtonCommandInfo.AbsolutePath.ToString(), out element))
                {
                    repo.ContinueButtonCommand.Click();
                    Thread.Sleep(100);
                }
                // Click on Check Out
//				repo.Retech.DataContextShowCheckoutViewCommand.Click();
//				Keyboard.Press("{F12}");
                repo.Retech.OrderWorkspaceView.PressKeys("{F12}");
                Thread.Sleep(1000);
                if (!BalanceIsZero)
                {
                    while (!repo.Retech.RequestCashSettlement.Enabled)
                    {
                        Thread.Sleep(100);
                    }
                }
            }

            if (!BalanceIsZero)
            {
                SpecialPreCheckOutNonZeroBalance();
            }

            Global.LogText = "OUT fnCheckout";
            WriteToLogFile.Run();
            Global.LogFileIndentLevel--;
        }
        public void Run()
        {       //**************Start  Scenario 36 - Customer Lookup - Item Lookup - Void transaction**********************
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            RanorexRepository           repo                      = new RanorexRepository();
            fnWriteToLogFile            WriteToLogFile            = new fnWriteToLogFile();
            fnWaitForItemSearchToFinish WaitForItemSearchToFinish = new fnWaitForItemSearchToFinish();
            fnDumpStatsQ4            DumpStatsQ4                  = new fnDumpStatsQ4();
            fnTimeMinusOverhead      TimeMinusOverhead            = new fnTimeMinusOverhead();
            fnUpdatePALStatusMonitor UpdatePALStatusMonitor       = new fnUpdatePALStatusMonitor();
            FnWriteOutStatsQ4Buffer  WriteOutStatsQ4Buffer        = new FnWriteOutStatsQ4Buffer();

            Ranorex.Unknown element = null;
            Global.AbortScenario = false;

            Global.CurrentScenario = 36;

            if (!Global.IndirectCall)
            {
                if (!Global.DoScenarioFlag[Global.CurrentScenario])
                {
                    return;
                }
            }

            Global.ScenarioExecuted = true;

            Global.RetechScenariosPerformed++;
            UpdatePALStatusMonitor.Run();

            Global.DoDumpStats     = true;
            Global.PhoneNumbertype = "";             // all types

            Global.LogText = "---> fnDoScenario36 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 36 IN", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            // Create new stopwatch
            Stopwatch Mystopwatch = new Stopwatch();

            Mystopwatch.Reset();
            Stopwatch MystopwatchQ4 = new Stopwatch();

            MystopwatchQ4.Reset();
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();
            Stopwatch MystopwatchModuleTotal = new Stopwatch();

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            Global.LogText = @"Search for xbox";
            WriteToLogFile.Run();

            int NumberRecordsFound = 0;

            MystopwatchQ4.Reset();
            if (Global.DomesticRegister)
            {
                // Search for XBOX Description
                Thread.Sleep(50);
                repo.Retech.FindAProductCtrlPlusS.Click("19;5");
                Thread.Sleep(50);
                Keyboard.Press("xbox{Return}");
                MystopwatchQ4.Start();
                Global.LogText = @"Wait for search to finish";
                WriteToLogFile.Run();
                while (!Host.Local.TryFindSingle(repo.RetechQuickSearchView.DisplayedCountInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                }

                string SearchCount = repo.RetechQuickSearchView.DisplayedCount.TextValue;
                NumberRecordsFound = Convert.ToInt32(SearchCount.Substring(0, SearchCount.IndexOf(" ")));
            }
            else                // International
            {
// 08-14-2018           repo.IPOSHomeScreen.InternationalIPOS.PressKeys("{F10}");  // Select Item Lookup
                repo.IPOSScreen.Self.PressKeys("{F10}");
                repo.ReservationDeposit.InternationalLookupDescription.TextValue = "xbox";
                repo.ReservationDeposit.InternationalLookupDescription.PressKeys("{F12}");
                MystopwatchQ4.Start();
                Global.LogText = @"Wait for search to finish";
                WriteToLogFile.Run();
                int LastNumberRecordsFound = 0;
                do
                {                       // wait for count to stop changing
                    LastNumberRecordsFound = repo.InternationalSearchCount.Items.Count;
                    Thread.Sleep(100);
                    NumberRecordsFound = repo.InternationalSearchCount.Items.Count;
                } while (LastNumberRecordsFound != NumberRecordsFound);
            }

            // Q4 stats
            Global.TempFloat = (float)MystopwatchQ4.ElapsedMilliseconds / 1000;
            float RecordsPerSecond = NumberRecordsFound / Global.TempFloat;

            Global.Q4StatLine = RecordsPerSecond.ToString("R");
            Global.CurrentMetricDesciption = @"Records/Second";
            Global.Module = "Item Search";
            DumpStatsQ4.Run();

            Keyboard.Press("{Escape}");

            TimeMinusOverhead.Run((float)MystopwatchModuleTotal.ElapsedMilliseconds);   // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Module Total Time";
            Global.Module = "Item Search";
            DumpStatsQ4.Run();

            TimeMinusOverhead.Run((float)MystopwatchTT.ElapsedMilliseconds);   // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Scenario 36";
            Global.Module = "Total Time";
            DumpStatsQ4.Run();

            // Write out metrics buffer
            WriteOutStatsQ4Buffer.Run();

            Global.LogText = "<--- fnDoScenario36 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 36 OUT", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            //***********End Scenario 36***************
        }
        public void Run()
        {
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            RanorexRepository        repo = new RanorexRepository();
            fnUpdatePALStatusMonitor UpdatePALStatusMonitor = new fnUpdatePALStatusMonitor();
            fnWriteToLogFile         WriteToLogFile         = new fnWriteToLogFile();
            FnWriteOutStatsQ4Buffer  WriteOutStatsQ4Buffer  = new FnWriteOutStatsQ4Buffer();
            fnDumpStatsQ4            DumpStatsQ4            = new fnDumpStatsQ4();
            fnTimeMinusOverhead      TimeMinusOverhead      = new fnTimeMinusOverhead();

            Ranorex.Unknown element = null;
            Global.AbortScenario = false;

            //*****************Start  Scenario 18 - Transaction Journal ******************
            Global.CurrentScenario = 18;

            if (!Global.IndirectCall)
            {
                if (!Global.DoScenarioFlag[Global.CurrentScenario] || !Global.DomesticRegister)
                //			if(Global.CurrentScenario != 9999)
                {
                    return;
                }
            }

            Global.ScenarioExecuted = true;

            Global.RetechScenariosPerformed++;
            UpdatePALStatusMonitor.Run();

            if (Global.CombinedIPOS)
            {
                repo.GoToBackOffice.Click();
                Thread.Sleep(200);
            }

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();

            Stopwatch MystopwatchQ4 = new Stopwatch();

            Global.LogText = @"---> fnDoScenario18 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 18 IN", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            Stopwatch MystopwatchModuleTotal = new Stopwatch();

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            Report.Log(ReportLevel.Info, "Mouse", "Mouse Left Click item 'IPOS270141HomeScreen.Element1' at 269;333.", repo.BackOffice275111HomeScreen.BackOffice275111HomeScreenInfo, new RecordItemIndex(0));
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            Global.LogText = @"Clicking on Back Office link";
            WriteToLogFile.Run();
            repo.BackOffice275111HomeScreen.BackOffice275111HomeScreen.Click();
            Global.LogText = @"Waiting for Back Office home screen";
            WriteToLogFile.Run();
            while (!repo.BackOffice275111HomeScreen.BackOffice275111HomeScreen.Enabled)
            {
                Thread.Sleep(100);
            }

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Load Back Office";
            Global.Module = "Journal:";
            DumpStatsQ4.Run();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            Global.LogText = @"Waiting for F4 Transaction Journal";
            WriteToLogFile.Run();
            while (!Host.Local.TryFindSingle(repo.BackOffice275111HomeScreen.BackOffice275111HomeScreenInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }

            Global.LogText = @"Clicking on F4 Transaction Journal";
            WriteToLogFile.Run();
            repo.BackOffice275111HomeScreen.BackOffice275111HomeScreen.PressKeys("{F4}");
            Thread.Sleep(100);
            Global.LogText = @"logging in";
            WriteToLogFile.Run();
            Keyboard.Press("psu");
            Thread.Sleep(100);
            Keyboard.Press("advanced{Return}");

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "[F4] View Journal and login";
            Global.Module = "Journal:";
            DumpStatsQ4.Run();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            Global.LogText = @"Waiting for Transaction Journal screen";
            WriteToLogFile.Run();
            //while(!repo.MailViewer.EmailHeader.Enabled)
            //while(!Host.Local.TryFindSingle(repo.ReservationDeposit.SelectTheTransactionYouWishToRepriInfo.AbsolutePath.ToString(), out element))
            //while(!Host.Local.TryFindSingle(repo.FormPOS.TransactionJournalTitleInfo.AbsolutePath.ToString(), out element))
            //while(!Host.Local.TryFindSingle(repo.ReservationDeposit.ButtonF10JournalTapeInfo.AbsolutePath.ToString(), out element))
            //while(!Host.Local.TryFindSingle(repo.FormPOS.ButtonF10JournalTapeInfo.AbsolutePath.ToString(), out element))

            // NOTE different object XPath for ReTEch 7.0.0.14 and 7.0.102.30
            if (Global.RetechVersion.Substring(0, 5) == "7.0.0")
            {             // 7.0.0.14
                while (!Host.Local.TryFindSingle(repo.JournalPrinterLabelsInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                }
            }
            else
            {             //7.0.102.30
                while (!Host.Local.TryFindSingle(repo.ButtonF10JournalTapeInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                }
            }

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "display Journal listing";
            Global.Module = "Journal:";
            DumpStatsQ4.Run();

            Global.TempFloat = (float)MystopwatchModuleTotal.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchModuleTotal.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Module Total Time";
            Global.Module = "Journal:";
            DumpStatsQ4.Run();

            Keyboard.Press("{Escape}");

            TimeMinusOverhead.Run((float)MystopwatchTT.ElapsedMilliseconds);   // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Scenario 18";
            Global.Module = "Total Time";
            DumpStatsQ4.Run();

            // Write out metrics buffer
            WriteOutStatsQ4Buffer.Run();

            Global.LogText = "<--- fnDoScenario18 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 18 OUT", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            if (Global.CombinedIPOS)
            {
                repo.BackOffice275111HomeScreen.Self.Focus();
                repo.BackOffice275111HomeScreen.Self.Click();
                Keyboard.Press("{F5}");
                Thread.Sleep(200);
                if (Host.Local.TryFindSingle(repo.ReservationDeposit.WrongBusinessDateInfo.AbsolutePath.ToString(), out element))
                {
                    Keyboard.Press("{F5}");
                    Thread.Sleep(200);
                }
            }

            return;

            // ***********End Scenario 18*****************
        }
        public void Run()
        {       //*****************Start  Scenario 37 - Retech - Reserve Pickup ******************
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            Ranorex.Unknown element = null;
            Global.AbortScenario = false;

            // Uses same SKU and Customer for Scenarios 3, 4, and 5

            RanorexRepository        repo = new RanorexRepository();
            fnTimeMinusOverhead      TimeMinusOverhead          = new fnTimeMinusOverhead();
            fnDumpStatsQ4            DumpStatsQ4                = new fnDumpStatsQ4();
            fnWriteToLogFile         WriteToLogFile             = new fnWriteToLogFile();
            fnWriteToErrorFile       WriteToErrorFile           = new fnWriteToErrorFile();
            FnWriteOutStatsQ4Buffer  WriteOutStatsQ4Buffer      = new FnWriteOutStatsQ4Buffer();
            fnUpdatePALStatusMonitor UpdatePALStatusMonitor     = new fnUpdatePALStatusMonitor();
            FnCheckout                 Checkout                 = new FnCheckout();
            FnStartTransaction         StartTransaction         = new FnStartTransaction();
            FnEnterSKU                 EnterSKU                 = new FnEnterSKU();
            FnProductionIssueFunctions ProductionIssueFunctions = new FnProductionIssueFunctions();

            Global.CurrentScenario = 37;

            if (!Global.IndirectCall)
            {
                if (!Global.DoScenarioFlag[Global.CurrentScenario])
                {
                    return;
                }
            }

            Global.ScenarioExecuted = true;

            //string ReservePickupPhoneNumber = "9727651234";
            string ReservePickupPhoneNumber = "406254111" + Global.RegisterNumber;

            Global.RetechScenariosPerformed++;
            UpdatePALStatusMonitor.Run();

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();

            Stopwatch MystopwatchF1 = new Stopwatch();

            Stopwatch MystopwatchTotal = new Stopwatch();

            MystopwatchTotal.Reset();
            MystopwatchTotal.Start();
            Stopwatch MystopwatchQ4          = new Stopwatch();
            Stopwatch MystopwatchModuleTotal = new Stopwatch();

            Global.LogText = @"---> fnDoScenario37 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 37 IN", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            // Start

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            //#### Reserve the item
            StartTransaction.Run();
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Start Transaction";
            Global.Module = "Reserve:";
            DumpStatsQ4.Run();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            Global.LogText = @"Reserve Item";
            WriteToLogFile.Run();

            repo.Retech.FindAProductCtrlPlusS.Click("19;5"); // click in search box
            Thread.Sleep(100);
            Keyboard.Press("{F2}");                          // Upcoming
            Thread.Sleep(100);



// ########################################################
            // Line item: repo.RetechQuickSearchView.SearchResultsView.ListBoxItem;
            // Price: repo.RetechQuickSearchView.SearchResultsView.NewPrice;
            // PreOrder: repo.RetechQuickSearchView.SearchResultsView.PreOrder;
            // SKU: repo.RetechQuickSearchView.SearchResultsView.NewSku;
            // Number of items in list: repo.RetechQuickSearchView.DisplayedCount;
            //      string SearchCount = repo.RetechQuickSearchView.DisplayedCount.TextValue;
            //		NumberRecordsFound = Convert.ToInt32(SearchCount.Substring(0,SearchCount.IndexOf(" ")));

            //repo.RetechQuickSearchView.FirstPreOrderItem.Click();  // Click on first pre-order item

            bool PreOrderFound = false;

            Global.LogText = @"Searching for PreOrder item in list";
            WriteToLogFile.Run();

            while (!PreOrderFound)
            {
                // Search for and select the first PRE-ORDER item > $10.00
                List             list  = "/form[@automationid='QuickSearchView']/?/?/list[@automationid='SearchResultsView']";
                IList <ListItem> items = list.Items;
                foreach (ListItem EachItem in list.Items)
                {
                    string TextAmt = EachItem.Children[1].Children[0].GetAttributeValue <string>("Caption");    // Price
                    TextAmt = TextAmt.Substring(1, TextAmt.Length - 1);                                         // remove $
                    decimal DecAmt = Convert.ToDecimal(TextAmt);                                                // convert to decimal

                    string TheCaption = EachItem.Children[1].Children[1].GetAttributeValue <string>("Caption"); // Item type looking for PRE-ORDER

                    if (DecAmt > 10.00m && TheCaption == "PRE-ORDER")
                    {
                        EachItem.Click();
                        PreOrderFound = true;
                        break;
                    }
                }

                if (!PreOrderFound)
                {                  // page down on list of items
                    repo.ShellView.SearchResultsView.Click("627;44");
                    Delay.Milliseconds(200);
                    Keyboard.Press("{Next}");
                }
            }

            Thread.Sleep(100);
            Keyboard.Press("{Escape}");              // Escape from search box
            Thread.Sleep(100);

            // Process age verification if exists
            if (Host.Local.TryFindSingle(repo.Retech.AgeVerifiedCommand1Info.AbsolutePath.ToString(), out element))
            {
                repo.Retech.AgeVerifiedCommand1.Click();
                Thread.Sleep(100);
            }



            // Get the Initial Deposit amout from the screen
            Global.SpecialPayThisAmount = repo.Retech.DepositText.TextValue.Substring(1);

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Reserve Item";
            Global.Module = "Reserve:";
            DumpStatsQ4.Run();

            // Select Customer
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            repo.Retech.SelectCustomer.Click();
            Thread.Sleep(100);
            repo.Retech.ButtonContent.Click("105;10");             // Search for Customer
            Thread.Sleep(100);
            // repo.RetechFindCustomerView.CustomerLookupTxt.PressKeys("9727651234{Enter}"); 12-13-18
            repo.RetechFindCustomerView.CustomerLookupTxt.TextValue = ReservePickupPhoneNumber;
            repo.RetechFindCustomerView.Self.PressKeys("{Enter}");

            while (!Host.Local.TryFindSingle(repo.RetechFindCustomerView.ListBoxItemInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            repo.RetechFindCustomerView.ListBoxItem.Click();             // accept customer
            Thread.Sleep(500);


            while (Host.Local.TryFindSingle(repo.RetechFindCustomerView.ListBoxItemInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }

            // Process continue 1
            if (Host.Local.TryFindSingle(repo.Retech.ContinueButtonCommand1Info.AbsolutePath.ToString(), out element))
            {
                repo.Retech.ContinueButtonCommand1.Click();
                Thread.Sleep(200);
            }

            // Process continue 2
            if (Host.Local.TryFindSingle(repo.ContinueButtonCommandInfo.AbsolutePath.ToString(), out element))
            {
                repo.ContinueButtonCommand.Click();
                Thread.Sleep(200);
            }

            // Process SMS text message - not interested
            if (Host.Local.TryFindSingle(repo.Retech.NotInterestedCommandInfo.AbsolutePath.ToString(), out element))
            {
                repo.Retech.NotInterestedCommand.Click();
                Thread.Sleep(200);
            }



            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Select Customer";
            Global.Module = "Reserve:";
            DumpStatsQ4.Run();

            // Check for Product Replacement Plan
            if (Host.Local.TryFindSingle(repo.Retech.ProductReplacementContinueInfo.AbsolutePath.ToString(), out element))
            {
                repo.Retech.ProductReplacementContinue.Click();
                Thread.Sleep(200);
            }



            if (Host.Local.TryFindSingle(repo.Retech.ContinueButtonCommand1Info.AbsolutePath.ToString(), out element))
            {
                repo.Retech.ContinueButtonCommand1.Click();
                Thread.Sleep(100);
            }

            if (Host.Local.TryFindSingle(repo.ContinueButtonCommandInfo.AbsolutePath.ToString(), out element))
            {
                repo.ContinueButtonCommand.Click();
                Thread.Sleep(100);
            }


            // Checkout and pay required deposit
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            Global.SpecialCheckingOut = false;
            Global.PayWithMethod      = "Cash";
            ProductionIssueFunctions.SpecialPreCheckOut();

            ProductionIssueFunctions.SpecialCheckForCodeF4Alert();

            repo.RetechLoginView.TxtPassword.PressKeys("{Escape}");             // initial sign on screen

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);    // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Pay deposit and checkout";
            Global.Module = "Reserve:";
            DumpStatsQ4.Run();

            TimeMinusOverhead.Run((float)MystopwatchModuleTotal.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.NowCustomerLookup       = Global.AdjustedTime;
            Global.CurrentMetricDesciption = "Module Total Time";
            Global.Module = "Reserve:";
            DumpStatsQ4.Run();

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();



            // #####  Now do the pickup
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            StartTransaction.Run();

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Start Transaction 2";
            Global.Module = "Pick Up:";
            DumpStatsQ4.Run();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            // repo.Retech.FindCustomerTextBox.PressKeys("9727651234{Enter}"); // get the customer  12-13-18
            repo.Retech.FindCustomerTextBox.TextValue = ReservePickupPhoneNumber;
            repo.Retech.FindCustomerTextBox.PressKeys("{Enter}");

            while (!Host.Local.TryFindSingle(repo.RetechFindCustomerView.ListBoxItemInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            repo.RetechFindCustomerView.ListBoxItem.Click();             // accept customer
            while (Host.Local.TryFindSingle(repo.RetechFindCustomerView.ListBoxItemInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }

            // View customer details to get reserve item
            repo.Retech.ShowCustomerDetails.Click();
            while (!Host.Local.TryFindSingle(repo.CustomerDetailsView.OpenReservationListItemControlInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            // Get the reserved item
            repo.CustomerDetailsView.OpenReservationListItemControl.Click();              // Click on first reserved item
            repo.CustomerDetailsView.PickupReservation.Click();
            Thread.Sleep(100);
            repo.OptionSelectorView.StreetDatedProductConfirm.Click();             // Yes sell this street dated itme
            Thread.Sleep(100);
            Keyboard.Press("{Escape}");
            if (Host.Local.TryFindSingle(repo.ContinueButtonCommandInfo.AbsolutePath.ToString(), out element))
            {
                repo.ContinueButtonCommand.Click();
                Thread.Sleep(200);
            }

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Get customer and pick up item";
            Global.Module = "Pick Up:";
            DumpStatsQ4.Run();

/*
 *                      // Price override
 *          MystopwatchQ4.Reset();
 *                      MystopwatchQ4.Start();
 *
 *                      ProductionIssueFunctions.SpecialPriceOverride(1.00m);  // lower the price so not so many code F4 alerts
 *
 *                      TimeMinusOverhead.Run((float) MystopwatchQ4.ElapsedMilliseconds);  // Subtract overhead and store in Global.Q4StatLine
 *              Global.CurrentMetricDesciption = "Price Overide";
 *              Global.Module = "Pick Up:";
 *              DumpStatsQ4.Run();
 */
            // Process age verification if exists
            if (Host.Local.TryFindSingle(repo.Retech.AgeVerifiedCommand1Info.AbsolutePath.ToString(), out element))
            {
                repo.Retech.AgeVerifiedCommand1.Click();
                Thread.Sleep(100);
            }
            // Process continue 2
            if (Host.Local.TryFindSingle(repo.ContinueButtonCommandInfo.AbsolutePath.ToString(), out element))
            {
                repo.ContinueButtonCommand.Click();
                Thread.Sleep(200);
            }

            // Now pickup and pay total for item
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            Global.SpecialCheckingOut   = false;
            Global.PayWithMethod        = "Cash";
            Global.SpecialPayThisAmount = "All";
            repo.Retech.DataContextShowCheckoutViewCommand.Click();
            ProductionIssueFunctions.SpecialPreCheckOut();

            ProductionIssueFunctions.SpecialCheckForCodeF4Alert();

            repo.RetechLoginView.TxtPassword.PressKeys("{Escape}");          // initial sign on screen

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds); // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Pay for picked up item";
            Global.Module = "Pick Up:";
            DumpStatsQ4.Run();

            TimeMinusOverhead.Run((float)MystopwatchModuleTotal.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.NowCustomerLookup       = Global.AdjustedTime;
            Global.CurrentMetricDesciption = "Module Total Time";
            Global.Module = "Pick Up:";
            DumpStatsQ4.Run();

            TimeMinusOverhead.Run((float)MystopwatchTT.ElapsedMilliseconds);   // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Scenario 37";
            Global.Module = "Total Time";
            DumpStatsQ4.Run();

            // Write out metrics buffer
            WriteOutStatsQ4Buffer.Run();

            Global.LogText = "<--- fnDoScenario37 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 37 OUT", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            Thread.Sleep(2000);

            // ***********End Scenario 37*****************
        }
Example #12
0
        public void Run()
        {
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            RanorexRepository        repo = new RanorexRepository();
            fnUpdatePALStatusMonitor UpdatePALStatusMonitor = new fnUpdatePALStatusMonitor();
            fnWriteToLogFile         WriteToLogFile         = new fnWriteToLogFile();
            FnWriteOutStatsQ4Buffer  WriteOutStatsQ4Buffer  = new FnWriteOutStatsQ4Buffer();
            fnDumpStatsQ4            DumpStatsQ4            = new fnDumpStatsQ4();
            fnTimeMinusOverhead      TimeMinusOverhead      = new fnTimeMinusOverhead();

            Ranorex.Unknown element = null;
            Global.AbortScenario = false;

            //*****************Start  Scenario 17 - Transition Test IPOS <--> Retech ******************
            Global.CurrentScenario = 17;

            if (!Global.DoScenarioFlag[Global.CurrentScenario])
//			if(Global.CurrentScenario != 9999)
            {
                return;
            }

            Global.RetechScenariosPerformed++;
            UpdatePALStatusMonitor.Run();

            if (Global.CombinedIPOS)
            {
                repo.GoToBackOffice.Click();
                Thread.Sleep(200);
            }

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();

            Stopwatch MystopwatchQ4 = new Stopwatch();

            Global.LogText = @"---> fnDoScenario17 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 17 IN", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            Report.Log(ReportLevel.Info, "Mouse", "Mouse Left Click item 'IPOS270141HomeScreen.Element1' at 269;333.", repo.BackOffice275111HomeScreen.BackOffice275111HomeScreenInfo, new RecordItemIndex(0));
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            Global.LogText = @"Clicking on Back Office link";
            WriteToLogFile.Run();
            repo.BackOffice275111HomeScreen.BackOffice275111HomeScreen.Click();
            Global.LogText = @"Waiting for Back Office home screen";
            WriteToLogFile.Run();
            while (!repo.BackOffice275111HomeScreen.BackOffice275111HomeScreen.Enabled)
            {
                Thread.Sleep(100);
            }
            Delay.Milliseconds(200);


            if (Global.CombinedIPOS)
            {
                repo.BackOffice275111HomeScreen.Self.Focus();
                repo.BackOffice275111HomeScreen.Self.Click();
                Keyboard.Press("{F5}");
                Thread.Sleep(200);
                if (Host.Local.TryFindSingle(repo.ReservationDeposit.WrongBusinessDateInfo.AbsolutePath.ToString(), out element))
                {
                    Keyboard.Press("{F5}");
                    Thread.Sleep(200);
                }
            }

            TimeMinusOverhead.Run((float)MystopwatchTT.ElapsedMilliseconds);   // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Scenario 17";
            Global.Module = "Total Time";
            DumpStatsQ4.Run();

            // Write out metrics buffer
            WriteOutStatsQ4Buffer.Run();

            Global.LogText = "<--- fnDoScenario17 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 17 OUT", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));



            return;

            // ***********End Scenario 17*****************
        }
Example #13
0
        public void Run()
        {       //**************Start  fnScenario30 Special Production Issues Test**********************
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            Global.CurrentScenario = 30;
            Global.AbortScenario   = false;

            if (!Global.DoScenarioFlag[Global.CurrentScenario])
            {
                return;
            }

            RanorexRepository        repo                   = new RanorexRepository();
            fnWriteToLogFile         WriteToLogFile         = new fnWriteToLogFile();
            fnDumpStatsQ4            DumpStatsQ4            = new fnDumpStatsQ4();
            fnUpdatePALStatusMonitor UpdatePALStatusMonitor = new fnUpdatePALStatusMonitor();
            FnWriteOutStatsQ4Buffer  WriteOutStatsQ4Buffer  = new FnWriteOutStatsQ4Buffer();

            Global.RetechScenariosPerformed++;
            UpdatePALStatusMonitor.Run();

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();

            Stopwatch MystopwatchTotal = new Stopwatch();

            MystopwatchTotal.Reset();
            MystopwatchTotal.Start();
            Stopwatch MystopwatchQ4          = new Stopwatch();
            Stopwatch MystopwatchModuleTotal = new Stopwatch();
            Stopwatch MystopwatchF1          = new Stopwatch();
            Stopwatch MystopwatchTrade       = new Stopwatch();

            Global.LogText = @"---> fnDoScenario30 Start Transaction Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 30 IN", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            //#####################################################################################
            //	Production Issue: 1705/01 9/13 Access Lock Bug
            //	1.	Add SKU 930586 to the order.
            //	2.	Add a PUR pro customer to the order.
            //	3.	Pay $10.00 with cash.
            //	4.	Pay the rest with debit.
            bool Do_Issue_1705_01 = true;
            //#####################################################################################

            //#####################################################################################
            //	Production Issue: 5886/01 8/10 Access Lock Bug Reg 1 Trans 14
            //	1.	Add a PUR pro customer to the order.
            //	2.	Return SKU 953162 as defective.
            //	3.	Purchase SKU 953162.
            bool Do_Issue_5886_01 = true;
            //#####################################################################################

            //#####################################################################################
            //	Production Issue: 3432/01 6/21 Missing Transaction Tr5
            //	1.	Add a PUR pro customer to the order.
            //	2.	Trade SKU 112321
            //	3.	Trade SKU 954010
            //	4.	Trade SKU 109523
            //	5.	Trade SKU 954013
            //	6.	Trade SKU 109536
            //	7.	Trade SKU 103080
            //	8.	Trade SKU 107399
            //	9.	Purchase SKU 109386
            //	10.	Purchase SKU 101820
            //	11.	Pre-Order SKU 113170, with a deposit of $9.92
            //	12.	Pay the rest with cash.
            bool Do_Issue_3432_01 = true;

            //#####################################################################################

            // Exedute the issue tests
            if (Do_Issue_1705_01)
            {
                Issue_1705_01();
            }
            if (Do_Issue_5886_01)
            {
                Issue_5886_01();
            }
            if (Do_Issue_3432_01)
            {
                Issue_3432_01();
            }

            Global.LogText = "<--- fnDoScenario30 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 30 OUT", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));
        }
        public void Run()
        {       //*****************Start  Scenario 40 - Retech - Card Balance ******************
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            //Ranorex.Unknown element = null;
            Global.AbortScenario = false;

            // Uses same SKU and Customer for Scenarios 3, 4, and 5

            RanorexRepository        repo = new RanorexRepository();
            fnTimeMinusOverhead      TimeMinusOverhead          = new fnTimeMinusOverhead();
            fnDumpStatsQ4            DumpStatsQ4                = new fnDumpStatsQ4();
            fnWriteToLogFile         WriteToLogFile             = new fnWriteToLogFile();
            fnWriteToErrorFile       WriteToErrorFile           = new fnWriteToErrorFile();
            FnWriteOutStatsQ4Buffer  WriteOutStatsQ4Buffer      = new FnWriteOutStatsQ4Buffer();
            fnUpdatePALStatusMonitor UpdatePALStatusMonitor     = new fnUpdatePALStatusMonitor();
            FnCheckout                 Checkout                 = new FnCheckout();
            FnStartTransaction         StartTransaction         = new FnStartTransaction();
            FnEnterSKU                 EnterSKU                 = new FnEnterSKU();
            FnProductionIssueFunctions ProductionIssueFunctions = new FnProductionIssueFunctions();

            Global.CurrentScenario = 43;

            if (!Global.IndirectCall)
            {
                if (!Global.DoScenarioFlag[Global.CurrentScenario])
                {
                    return;
                }
            }

            Global.ScenarioExecuted = true;

            Global.RetechScenariosPerformed++;
            UpdatePALStatusMonitor.Run();

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();

            Stopwatch MystopwatchF1 = new Stopwatch();

            Stopwatch MystopwatchTotal = new Stopwatch();

            MystopwatchTotal.Reset();
            MystopwatchTotal.Start();
            Stopwatch MystopwatchQ4          = new Stopwatch();
            Stopwatch MystopwatchModuleTotal = new Stopwatch();

            Global.LogText = @"---> fnDoScenario43 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 40 IN", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            // Start


            // Check card balance
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            repo.ShellView.CardBalanceButton.Click();
            Thread.Sleep(100);
            repo.CardBalanceInquiryView.AccountNumber.TextValue = "3876608052056";
            repo.CardBalanceInquiryView.AccountNumber.PressKeys("{Enter}");
            while (!repo.CardBalanceInquiryView.PowerUpRewardsCardBalanceText.Visible)
            {
                Thread.Sleep(1000);
            }
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Check Card Balance";
            Global.Module = "Check Card Balance";
            DumpStatsQ4.Run();
            Global.CurrentMetricDesciption = "Module Total Time";
            DumpStatsQ4.Run();
            Thread.Sleep(2000);
            Keyboard.Press("{Escape}");


            TimeMinusOverhead.Run((float)MystopwatchTT.ElapsedMilliseconds);   // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Scenario 43";
            Global.Module = "Total Time";
            DumpStatsQ4.Run();

            if (!Global.AbortScenario)
            {
                // Write out metrics buffer
                WriteOutStatsQ4Buffer.Run();
            }
            else
            {
                Global.Q4StatBuffer = "";
            }

            Global.LogText = "<--- fnDoScenario43 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 43 OUT", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            Thread.Sleep(2000);

            // ***********End Scenario 43*****************
        }
        public void Run()
        {
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            RanorexRepository        repo = new RanorexRepository();
            fnUpdatePALStatusMonitor UpdatePALStatusMonitor = new fnUpdatePALStatusMonitor();
            fnWriteToLogFile         WriteToLogFile         = new fnWriteToLogFile();
            FnWriteOutStatsQ4Buffer  WriteOutStatsQ4Buffer  = new FnWriteOutStatsQ4Buffer();
            fnDumpStatsQ4            DumpStatsQ4            = new fnDumpStatsQ4();
            fnTimeMinusOverhead      TimeMinusOverhead      = new fnTimeMinusOverhead();

            Ranorex.Unknown element = null;
            Global.AbortScenario = false;

            //*****************Start  Scenario 20 - HR Workday Employee List ******************
            Global.CurrentScenario = 20;

            if (!Global.IndirectCall)
            {
                if (!Global.DoScenarioFlag[Global.CurrentScenario])
                //			if(Global.CurrentScenario != 9999)
                {
                    return;
                }
            }

            Global.ScenarioExecuted = true;

            Global.RetechScenariosPerformed++;
            UpdatePALStatusMonitor.Run();

            if (Global.CombinedIPOS)
            {
                repo.GoToBackOffice.Click();
                Thread.Sleep(200);
            }

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();

            Stopwatch MystopwatchQ4 = new Stopwatch();

            Global.LogText = @"---> fnDoScenario20 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 20 IN", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));


            Stopwatch MystopwatchModuleTotal = new Stopwatch();

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            if (Global.DomesticRegister)
            {
                MystopwatchQ4.Reset();
                MystopwatchQ4.Start();

                Report.Log(ReportLevel.Info, "Mouse", "Mouse Left Click item 'IPOS270141HomeScreen.Element1' at 269;333.", repo.BackOffice275111HomeScreen.BackOffice275111HomeScreenInfo, new RecordItemIndex(0));
                MystopwatchQ4.Reset();
                MystopwatchQ4.Start();
                Global.LogText = @"Clicking on Back Office link";
                WriteToLogFile.Run();
                repo.BackOffice275111HomeScreen.BackOffice275111HomeScreen.Click();
                Global.LogText = @"Waiting for Back Office home screen";
                WriteToLogFile.Run();
                while (!repo.BackOffice275111HomeScreen.BackOffice275111HomeScreen.Enabled)
                {
                    Thread.Sleep(100);
                }

                TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);                   // Subtract overhead and store in Global.Q4StatLine
                Global.CurrentMetricDesciption = "Load Back Office";
                Global.Module = "Employee List:";
                DumpStatsQ4.Run();
            }



            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            Global.LogText = @"Clicking on F7 BackOffice";
            WriteToLogFile.Run();

            if (Global.DomesticRegister)
            {
                repo.BackOffice275111HomeScreen.BackOffice275111HomeScreen.PressKeys("{F7}");
            }
            else
            {
                repo.InternationalHomeScreen.Click();
                Delay.Milliseconds(50);
                Keyboard.Press("{F7}");
            }

            Thread.Sleep(100);
            Global.LogText = @"logging in";
            WriteToLogFile.Run();
            Keyboard.Press("psu");
            Thread.Sleep(100);
            Keyboard.Press("advanced{Return}");
            Global.LogText = @"Waiting for BackOffice menu";
            WriteToLogFile.Run();
            while (!Host.Local.TryFindSingle(repo.ButtonF8HumanResourcesInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "[F7] Back Office and login";
            Global.Module = "Employee List:";
            DumpStatsQ4.Run();



            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            Global.LogText = @"Clicking on F8 Human Resources";
            WriteToLogFile.Run();
            while (!repo.ButtonF8HumanResources.Enabled)
            {
                Thread.Sleep(100);
            }
            repo.ButtonF8HumanResources.Click();
            Global.LogText = @"Waiting for HR Functions Menu";
//			while(!repo.BackOffice.ButtonF8HumanResources.Enabled)
//			{ Thread.Sleep(100); }
            WriteToLogFile.Run();
            while (!Host.Local.TryFindSingle(repo.HRSelectDialog.HRFunctionsWorkdayF1Info.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "[F8] Display HR Menu";
            Global.Module = "Employee List:";
            DumpStatsQ4.Run();



            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            Global.LogText = @"Clicking on F1 Workday";
            WriteToLogFile.Run();
            while (!repo.HRSelectDialog.HRFunctionsWorkdayF1.Enabled)
            {
                Thread.Sleep(100);
            }
            repo.HRSelectDialog.HRFunctionsWorkdayF1.Click();
            Global.LogText = @"Waiting for Workday Emplayee List";
            WriteToLogFile.Run();
            while (!Host.Local.TryFindSingle(repo.EmployeeList.LblTitleInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "display eMail listing";
            Global.Module = "Employee List:";
            DumpStatsQ4.Run();



            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            repo.EmployeeList.LblTitle.PressKeys("{Escape}"); // Employee List
            Thread.Sleep(100);

            repo.HRSelectDialog.HRFunctionsMenu.PressKeys("{Escape}"); // HR Functions
            Thread.Sleep(100);

            repo.BackOffice.BackOffice.PressKeys("{Escape}"); // BackOffice Menu
            Thread.Sleep(100);

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "ESC three screens";
            Global.Module = "Employee List:";
            DumpStatsQ4.Run();

            Global.TempFloat = (float)MystopwatchModuleTotal.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchModuleTotal.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Module Total Time";
            Global.Module = "Employee List:";
            DumpStatsQ4.Run();

            TimeMinusOverhead.Run((float)MystopwatchTT.ElapsedMilliseconds);   // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Scenario 20";
            Global.Module = "Total Time";
            DumpStatsQ4.Run();

            // Write out metrics buffer
            WriteOutStatsQ4Buffer.Run();

            Global.LogText = "<--- fnDoScenario20 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 20 OUT", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            if (Global.CombinedIPOS)
            {
                repo.BackOffice275111HomeScreen.Self.Focus();
                repo.BackOffice275111HomeScreen.Self.Click();
                Keyboard.Press("{F5}");
                Thread.Sleep(200);
                if (Host.Local.TryFindSingle(repo.ReservationDeposit.WrongBusinessDateInfo.AbsolutePath.ToString(), out element))
                {
                    Keyboard.Press("{F5}");
                    Thread.Sleep(200);
                }
            }

            return;

            // ***********End Scenario 20*****************
        }
Example #16
0
        public void Run()
        {
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            Ranorex.Unknown element = null;

            RanorexRepository   repo              = new RanorexRepository();
            fnWriteToLogFile    WriteToLogFile    = new fnWriteToLogFile();
            fnTimeMinusOverhead TimeMinusOverhead = new fnTimeMinusOverhead();
            fnDumpStatsQ4       DumpStatsQ4       = new fnDumpStatsQ4();
            fnWriteToErrorFile  WriteToErrorFile  = new fnWriteToErrorFile();

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();

            Stopwatch MystopwatchTotal = new Stopwatch();

            MystopwatchTotal.Reset();
            MystopwatchTotal.Start();
            Stopwatch MystopwatchQ4          = new Stopwatch();
            Stopwatch MystopwatchModuleTotal = new Stopwatch();
            Stopwatch MystopwatchF1          = new Stopwatch();
            Stopwatch MystopwatchTrade       = new Stopwatch();

            Global.LogFileIndentLevel++;
            Global.LogText = "IN fnCheckout";
            WriteToLogFile.Run();

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            // Click on CheckOut F12 button
            Global.LogText = @"Clicking on F12 Checkout";
            WriteToLogFile.Run();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            if (Global.DomesticRegister)
            {
//				while(!repo.Retech.ButtonCheckout.Enabled)   // change 1/8/18
//				while( !Host.Local.TryFindSingle(repo.Retech.ButtonCheckoutInfo.AbsolutePath.ToString(), out element) )
                while (!Host.Local.TryFindSingle(repo.Retech.DataContextShowCheckoutViewCommandInfo.AbsolutePath.ToString(), out element))
                {
                    if (Host.Local.TryFindSingle(repo.ContinueButtonCommandInfo.AbsolutePath.ToString(), out element))
                    {
                        repo.ContinueButtonCommand.Click();
                        Global.LogText = @"Clicked on Continue Button - 1 in fnCheckout()";
                        WriteToLogFile.Run();
                    }
                    Thread.Sleep(100);
                }
//				Keyboard.Press("{F12}");
// Try fix 1/31/18
                while (!Host.Local.TryFindSingle(repo.Retech.RequestCashSettlementInfo.AbsolutePath.ToString(), out element))
                {
                    // 07-25-18 check for "Pick Up At Store Requests" pop-up
                    if (!Host.Local.TryFindSingle(repo.PickupAtStorePopupNotifier.PickupAtStoreRequestPopUpInfo.AbsolutePath.ToString(), out element))
                    {
                        Thread.Sleep(10);
                    }
                    else
                    {
                        Report.Log(ReportLevel.Info, "Mouse", "Mouse Left Down item 'PopupNotifierView' at 434;30.", repo.PickupAtStorePopupNotifier.SelfInfo, new RecordItemIndex(0));
                        repo.PickupAtStorePopupNotifier.Self.MoveTo("434;30");
                        Keyboard.Press("{ENTER}");
                        //Mouse.ButtonDown(System.Windows.Forms.MouseButtons.Left);
                        Delay.Milliseconds(200);
                        // repo.PopupNotifierView.Self.Click();
                        Thread.Sleep(100);
                    }

                    if (Host.Local.TryFindSingle(repo.Retech.NotInterestedCommandInfo.AbsolutePath.ToString(), out element))
                    {
                        repo.Retech.NotInterestedCommand.Click();
                        Thread.Sleep(100);
                    }



                    if (repo.Retech.DataContextShowCheckoutViewCommand.Enabled)
                    {
                        repo.Retech.DataContextShowCheckoutViewCommand.Click();
                    }
                    Thread.Sleep(300);
                    if (Host.Local.TryFindSingle(repo.ContinueButtonCommandInfo.AbsolutePath.ToString(), out element))
                    {
                        repo.ContinueButtonCommand.Click();
                        Global.LogText = @"Clicked on Continue Button - 1 in fnCheckout()";
                        WriteToLogFile.Run();
                    }
                    Thread.Sleep(100);
                }
//				repo.Retech.DataContextShowCheckoutViewCommand.Click();
            }
            else
            {
//				while(!repo.IPOS20167172.Self.Enabled)
//					{ Thread.Sleep(100); }
//				repo.IPOS20167172.Self.PressKeys("{F12}");
                if (repo.IPOS34069.F12TotalInfo.Exists(5000))                  // 02-08-18
                {
                }
                repo.IPOS34069.F12Total.PressKeys("{F12}");                  // 02-08-18

                if (Global.CurrentScenario == 47)
                {
                    while (!repo.CustomerLookupPhone_Number.Enabled)
                    {
                        Thread.Sleep(100);
                    }

                    MystopwatchQ4.Start();
                    MystopwatchQ4.Reset();
//					repo.CustomerLookupScreen.EdgePowerUpNumber.PressKeys("6364916031910400011");
                    repo.CustomerLookupPhone_Number.PressKeys("9727651234");
                    repo.CustomerLookupScreen.BtnSearch.Click();
                    while (!repo.CustomerLookupSelectF5.Enabled)
                    {
                        Thread.Sleep(100);
                    }
                    repo.CustomerLookupSelectF5.Click();
                    TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);                       // Subtract overhead and store in Global.Q4StatLine
                    Global.CurrentMetricDesciption = @"Search for Customer";
                    Global.Module = "Finalize";
                    DumpStatsQ4.Run();

                    MystopwatchQ4.Reset();
                    MystopwatchQ4.Start();

                    repo.TransactionCustomerInformation.Email.Click("160;2");
                    Delay.Milliseconds(200);

                    repo.TransactionCustomerInformation.Email.PressKeys("301 My Street");
                    Delay.Milliseconds(0);

                    repo.TransactionCustomerInformation.LastName.Click("114;1");
                    Delay.Milliseconds(200);

                    repo.TransactionCustomerInformation.LastName.PressKeys("9727651234");
                    Delay.Milliseconds(0);

                    repo.TransactionCustomerInformation.Address1.Click("41;6");
                    Delay.Milliseconds(200);

                    repo.TransactionCustomerInformation.Address1.PressKeys("My City");
                    Delay.Milliseconds(0);

                    repo.TransactionCustomerInformation.Open.Click();
                    Delay.Milliseconds(200);

                    repo.TransactionCustomerInformation.Open.Click();
                    Delay.Milliseconds(200);

                    repo.ListItemsValues.ListItemAB.Click();
                    Delay.Milliseconds(200);

                    repo.TransactionCustomerInformation.BtnAcceptButton.Click("23;27");
                    Delay.Milliseconds(200);

                    repo.PopUpCustomerLookupUnavailable.OKF5.Click("17;22");
                    Delay.Milliseconds(200);

                    TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);                       // Subtract overhead and store in Global.Q4StatLine
                    Global.CurrentMetricDesciption = @"Enter Customer Information";
                    Global.Module = "Finalize";
                    DumpStatsQ4.Run();
                }
            }

            Thread.Sleep(1000);

            // Check for Please select a charity to donate
            if (Host.Local.TryFindSingle(repo.RetechPeripheralHostWindow.PleaseSelectACharityToDonateInfo.AbsolutePath.ToString(), out element))
            {
                repo.RetechPeripheralHostWindow.DeclineDonateNoThanks.Click();
                Thread.Sleep(100);
            }

            if (Global.DomesticRegister)
            {
                Global.LogText = @"Waiting on Time to Check Out - in fnCheckout()";
                WriteToLogFile.Run();
                Thread.Sleep(300);
                while (!Host.Local.TryFindSingle(repo.Retech.TimeToCheckOutInfo.AbsolutePath.ToString(), out element))
                {
                    if (Host.Local.TryFindSingle(repo.ContinueButtonCommandInfo.AbsolutePath.ToString(), out element))
                    {
                        repo.ContinueButtonCommand.Click();
                        Global.LogText = @"Clicked on Continue Button - 2 in fnCheckout()";
                        WriteToLogFile.Run();
                        Thread.Sleep(100);
                    }
                    Thread.Sleep(100);

                    if (Host.Local.TryFindSingle(repo.Retech.AcknowledgeRelatedProductsCommandInfo.AbsolutePath.ToString(), out element))
                    {
                        if (Host.Local.TryFindSingle(repo.Retech.AcknowledgeRelatedProductsCommandInfo.AbsolutePath.ToString(), out element))
                        {
                            if (repo.Retech.AcknowledgeRelatedProductsCommand.Enabled)
                            {
                                Global.LogText = @"Clicking on acknowledge related products before F12";
                                WriteToLogFile.Run();
                                repo.Retech.AcknowledgeRelatedProductsCommand.Click();
                                Thread.Sleep(100);
                            }
                        }
                    }
                    else if (Host.Local.TryFindSingle(repo.Retech.ContinueF5_5_6_0_103Info.AbsolutePath.ToString(), out element))
                    {
                        if (repo.Retech.ContinueF5_5_6_0_103.Enabled)
                        {
                            Global.LogText = @"Clicking on F5 Continue before F12";
                            WriteToLogFile.Run();
                            repo.Retech.ContinueF5_5_6_0_103.Click();
                            Thread.Sleep(100);
                            repo.Retech.ButtonCheckout.Click();
                            Thread.Sleep(100);
                        }
                    }
                }

                TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);                   // Subtract overhead and store in Global.Q4StatLine
                Global.CurrentMetricDesciption = @"[F12] wait for payment icons";
                Global.Module = "Finalize";
                DumpStatsQ4.Run();
            }

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            // Click on screen to make sure in focust - .focus not work
            //if(Global.DomesticRegister)    1-22-19
            //	repo.Retech.PaymentView.Click("689;82");

            switch (Global.PayWithMethod)
            {
            case "Cash":
                Global.LogText = @"Waiting on Cash F5";
                WriteToLogFile.Run();
                if (Global.DomesticRegister)
                {
                    repo.Retech.Self.Focus();
                }
                Thread.Sleep(100);

                if (Global.DomesticRegister)
                {
                    while (!repo.Retech.RequestCashSettlement.Enabled)
                    {
                        Thread.Sleep(500);
                    }
                }
                else
                {
                    while (!Host.Local.TryFindSingle(repo.FormPOS1.SelfInfo.AbsolutePath.ToString(), out element))
                    {
                        Thread.Sleep(500);
                    }
                    //while(!repo.EnterSerialNumber.F5Cash.Enabled) {	Thread.Sleep(500); }
                }
                Global.LogText = @"Found Cash F5 Enabled";
                WriteToLogFile.Run();
                break;

            case "Credit":
            case "PURCC":
                Global.LogText = @"Waiting on Manual Card F6";
                WriteToLogFile.Run();
                if (Global.DomesticRegister)
                {
                    repo.Retech.Self.Focus();
                }
                Thread.Sleep(100);

                if (Global.DomesticRegister)
                {
                    while (!repo.Retech.RequestManualCardSettlement.Enabled)
                    {
                        Thread.Sleep(500);
                    }
                }
                else
                {
                    while (!repo.EnterSerialNumber.F5Cash.Enabled)
                    {
                        Thread.Sleep(500);
                    }
                }

                Global.LogText = @"Found Manual Card F6 Enabled";
                WriteToLogFile.Run();
                break;
            }

            // Check for cash back
            if (Global.DomesticRegister &&
                repo.Retech.AmountDue.TextValue.Substring(0, 1) == "(" &&
                (Global.CurrentScenario == 37 || Global.CurrentScenario == 47)
                )
            {
                Global.LogText = @"Clicking on Cash F5 button";
                WriteToLogFile.Run();
                // fix 1//22/18
                while (!Host.Local.TryFindSingle(repo.Retech.RequestCashSettlementInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                }
                // end fix
                repo.Retech.RequestCashSettlement.Click();
                Thread.Sleep(100);
                Global.LogText = @"Waiting on CashPaymentView";
                WriteToLogFile.Run();
                while (!repo.RetechCardPaymentView.CashPaymentView.Enabled)
                {
                    Thread.Sleep(100);
                }
                Keyboard.Press("{Enter}");
            }
            else
            {
                string BalanceDueText      = "";
                string BalTemp             = "";
                float  BalanceDueAmount    = 0.0F;
                string BalanceDueAmountTxt = "";

                // Read Remaining Balance from screen
                if (Global.DomesticRegister)
                {
                    BalanceDueText      = repo.Retech.BalanceDue.TextValue;
                    BalTemp             = BalanceDueText.Substring(1, BalanceDueText.Length - 1);
                    BalanceDueAmount    = float.Parse(BalTemp);
                    BalanceDueAmountTxt = Convert.ToString(BalanceDueAmount);
                }
                else
                {
                    BalanceDueText      = repo.IntListItemAmountDue.ToString();
                    BalanceDueText      = BalanceDueText.Replace("\t", "  ");
                    BalTemp             = BalanceDueText.Substring(35, 8);
                    BalanceDueAmount    = float.Parse(BalTemp);
                    BalanceDueAmountTxt = Convert.ToString(BalanceDueAmount);
                }

                switch (Global.PayWithMethod)
                {
                case "Cash":
                    // Click on Cash F5 button
                    Global.LogText = @"Clicking on Cash F5 button";
                    WriteToLogFile.Run();

                    if (Global.DomesticRegister)
                    {
                        while (!Host.Local.TryFindSingle(repo.Retech.RequestCashSettlementInfo.AbsolutePath.ToString(), out element))
                        {
                            Thread.Sleep(100);
                        }                                                            // change 1/8/17
                        repo.Retech.RequestCashSettlement.Click();
                        while (!Host.Local.TryFindSingle(repo.RetechCardPaymentView.TxtAmountPaidInfo.AbsolutePath.ToString(), out element))
                        {
                            Thread.Sleep(100);
                        }

                        // Enter amount paid
                        repo.RetechCardPaymentView.TxtAmountPaid.TextValue = BalanceDueAmountTxt;
                        repo.RetechCardPaymentView.TxtAmountPaid.PressKeys("{Enter}");
                    }
                    else
                    {
                        repo.EnterSerialNumber.Self.PressKeys("{F5}");

                        // Enter amount paid
                        repo.Amount.Self.PressKeys("{Enter}");
                    }

                    TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);                               // Subtract overhead and store in Global.Q4StatLine
                    Global.CurrentMetricDesciption = @"[F5] enter amount press Enter";
                    Global.Module = "Finalize";
                    DumpStatsQ4.Run();

                    break;

                case "Credit":
                    if (Global.DomesticRegister)
                    {
                        // Click on Manual Card F6 button
                        Global.LogText = @"Clicking on Manual Card F6 button";
                        WriteToLogFile.Run();
                        repo.Retech.RequestManualCardSettlement.Click();

                        while (!repo.RetechCardPaymentView.RunAsCreditCard.Enabled)
                        {
                            if (!Host.Local.TryFindSingle(repo.RetechCardPaymentView.RetrySameCardInfo.AbsolutePath.ToString(), out element))
                            {
                                Global.LogText = @"Clicking on Retry same card";
                                WriteToLogFile.Run();
                                Global.TempErrorString = Global.LogText;
                                WriteToErrorFile.Run();
                                repo.RetechCardPaymentView.RetrySameCard.Click();
                                Thread.Sleep(200);
                            }
                            Thread.Sleep(100);
                        }

                        // Click on Run as Credit button
                        Global.LogText = @"Clicking on Run as Credit button";
                        WriteToLogFile.Run();
                        while (!Host.Local.TryFindSingle(repo.RetechCardPaymentView.RunAsCreditCardInfo.AbsolutePath.ToString(), out element))
                        {
                            Thread.Sleep(100);
                        }                                                            // change 1/8/17
                        repo.RetechCardPaymentView.RunAsCreditCard.Click();


                        string RetechVersion = Global.RetechVersion;
                        string Sub           = Global.RetechVersion.Substring(0, 4);
                        //						if(Global.RetechVersion.Substring(0,4) != "5.14")
                        if (Global.RetechVersion.Substring(0, 4) == "5.13")
                        {                                       // ### For Retech 5.13 and below - see else code for Retech 5.14
                            while (!repo.RetechCardPaymentView.TxtCardNumber.Enabled)
                            {
                                if (Host.Local.TryFindSingle(repo.RetechCardPaymentView.RetrySameCardInfo.AbsolutePath.ToString(), out element))
                                {
                                    repo.RetechCardPaymentView.RetrySameCard.Click();
                                    Thread.Sleep(200);
                                }
                                Thread.Sleep(100);
                            }

                            //						Thread.Sleep(500);

                            repo.RetechCardPaymentView.TxtCardNumber.TextValue = Global.CreditCardNumber;
                            string aa = Global.CreditCardMonth + "/" + Global.CreditCardYear;
                            repo.RetechCardPaymentView.TxtExpirationDate.TextValue = Global.CreditCardMonth + "/" + Global.CreditCardYear;
                            repo.RetechCardPaymentView.TxtZipCode.TextValue        = Global.CreditCardZip;

                            repo.RetechCardPaymentView.ProcessCreditCardView.PressKeys("{Enter}");
                            //						Thread.Sleep(100);

                            while (!Global.AbortScenario &&
                                   !Host.Local.TryFindSingle(repo.RetechCardPaymentView.Waiting_for_SignatureInfo.AbsolutePath.ToString(), out element))

                            {
                                Thread.Sleep(100);
                                if (Host.Local.TryFindSingle(repo.RetechCardPaymentView.TryAuthorizingAgainInfo.AbsolutePath.ToString(), out element))
                                {
                                    Global.AbortScenario   = true;
                                    Global.TempErrorString = "Credit Card Unable to Process Payment - transaction voided";
                                    WriteToErrorFile.Run();
                                    Global.LogText = Global.TempErrorString;
                                    WriteToLogFile.Run();
                                    Keyboard.Press("{Escape}");
                                    Thread.Sleep(100);
                                    repo.Retech.DataContextVoidOrderCommand.Click();
                                    Thread.Sleep(100);
                                    repo.GenericDialogView.Yesvoidthistransaction.Click();
                                    Thread.Sleep(100);
                                    while (!repo.RetechAnotherTransaction.Visible)
                                    {
                                        Thread.Sleep(100);
                                    }
                                }
                            }
                        }
                        else
                        {                                       // ### This required for Retech 5.14 and above because Ranorex not see detail of new pinpad
                                                                // 11/6/18 use WPF not UAI
                            repo.RetechPeripheralHostWindow.SomeTabPageList.PinPadAcceptCommand.Click();
                            Thread.Sleep(100);
                            repo.RetechPeripheralHostWindow.SomeTabPageList.PinPadCardNumber.TextValue = Global.CreditCardNumber;
                            repo.RetechPeripheralHostWindow.SomeTabPageList.PinPadOK.Click();
                            repo.RetechPeripheralHostWindow.SomeTabPageList.PinPadMonth.TextValue = Global.CreditCardMonth;
                            repo.RetechPeripheralHostWindow.SomeTabPageList.PinPadYear.TextValue  = Global.CreditCardYear;
                            repo.RetechPeripheralHostWindow.SomeTabPageList.PinPadOK.Click();
                            repo.RetechPeripheralHostWindow.PinPadZipCode.TextValue = Global.CreditCardZip;
                            repo.RetechPeripheralHostWindow.SomeTabPageList.AcceptCommand.Click();

// 11/6/18 replace by above
//					            repo.RetechPeripheralHostWindow.TabControl.Click("189;453");
//					            repo.RetechPeripheralHostWindow.TabControl.Click("31;84");
//					            Keyboard.Press(Global.CreditCardNumber);
//					            repo.RetechPeripheralHostWindow.TabControl.Click("157;472");
//					            repo.RetechPeripheralHostWindow.TabControl.Click("44;115");
//					            Keyboard.Press(Global.CreditCardMonth + "{Tab}" + Global.CreditCardYear);
//					            Thread.Sleep(200);
//					            repo.RetechPeripheralHostWindow.TabControl.Click("93;466");
//					            Thread.Sleep(200);
//					            repo.RetechPeripheralHostWindow.TabControl.Click("40;126");
//					            Thread.Sleep(350);
//					            Keyboard.Press(Global.CreditCardZip);
//					            repo.RetechPeripheralHostWindow.TabControl.Click("155;445");
//					            Thread.Sleep(100);
                        }

                        TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);                                   // Subtract overhead and store in Global.Q4StatLine
                        Global.CurrentMetricDesciption = @"[F6] enter Card info";
                        Global.Module = "Finalize";
                        DumpStatsQ4.Run();

                        MystopwatchQ4.Reset();
                        MystopwatchQ4.Start();

                        if (!Global.AbortScenario)
                        {
                            // 11/6/18 use WPF not UAI
                            repo.RetechPeripheralHostWindow.SomeTabPageList.ApplySignatureCommand.Click();
                            repo.RetechPeripheralHostWindow.SomeTabPageList.AcceptCommand.Click();
                            repo.RetechCardPaymentView.AcceptSignature.Click();

// 11/6/18 replace by above
//								while(!Host.Local.TryFindSingle(repo.RetechPeripheralHostWindow.SignOnPinPadInfo.AbsolutePath.ToString(), out element))
//								{ Thread.Sleep(100); }
//								repo.RetechPeripheralHostWindow.SignOnPinPad.Click();
//								Thread.Sleep(200);
//								repo.RetechPeripheralHostWindow.AcceptOnPinPad.Click();
//								Thread.Sleep(200);
//								repo.RetechCardPaymentView.Self.Focus();
//								Thread.Sleep(100);
//								repo.RetechCardPaymentView.SignatureAcceptedCommand.Click();
//								Thread.Sleep(200);

                            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);                                       // Subtract overhead and store in Global.Q4StatLine
                            Global.CurrentMetricDesciption = @"Sign on pin pad";
                            Global.Module = "Finalize";
                            DumpStatsQ4.Run();
                        }
                    }
                    else
                    {
                        MystopwatchQ4.Reset();
                        MystopwatchQ4.Start();
                        repo.EnterSerialNumber.Self.PressKeys("{F9}");                                  // Seclect Credit Card
                        TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);                // Subtract overhead and store in Global.Q4StatLine
                        Global.CurrentMetricDesciption = @"[F9] Seclect Credit Card";
                        Global.Module = "Finalize";
                        DumpStatsQ4.Run();

                        MystopwatchQ4.Reset();
                        MystopwatchQ4.Start();
                        repo.Amount.Self.PressKeys("{Enter}");                                  // Enter amount paid
                        TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);        // Subtract overhead and store in Global.Q4StatLine
                        Global.CurrentMetricDesciption = @"Enter amount paid";
                        Global.Module = "Finalize";
                        DumpStatsQ4.Run();

                        MystopwatchQ4.Reset();
                        MystopwatchQ4.Start();
                        repo.InternatiuonalCreditCardType.Self.PressKeys("{F1}");                      // F1=Visa F2=MasterCard F3=American Express
                        TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
                        Global.CurrentMetricDesciption = @"[F1] Seclect F1=Visa";
                        Global.Module = "Finalize";
                        DumpStatsQ4.Run();

                        repo.F1VISA.InternationalLast4OfCreditCard.PressKeys("9474{F5}");                      // Enter last 4 digits of credit card
                    }

                    break;

                case "PURCC":
                    // Click on Manual Card F6 button
                    Global.LogText = @"Clicking on Manual Card F6 button";
                    WriteToLogFile.Run();
                    repo.Retech.RequestManualCardSettlement.Click();
                    while (!repo.RetechCardPaymentView.RunAsPURCCCard.Enabled)
                    {
                        Thread.Sleep(100);
                    }

                    // Click on Run as PURCC button (Run as PowerUp Rewards Cerdit Cart
                    Global.LogText = @"Clicking on run as PURCC";
                    WriteToLogFile.Run();
                    repo.RetechCardPaymentView.RunAsPURCCCard.Click();
                    while (!Host.Local.TryFindSingle(repo.RetechCardPaymentView.TxtCardNumberInfo.AbsolutePath.ToString(), out element))
                    {
                        Thread.Sleep(100);
                    }

                    // Select ID type and Issuer (Drivers Lenense and State)
                    repo.RetechCardPaymentView.PickIdType.SelectedItemText = "Drivers License";
                    repo.RetechCardPaymentView.PickIdIssuer.Click();
                    repo.RetechCardPaymentView.PickIdIssuer.SelectedItemText = "Texas";
                    repo.RetechCardPaymentView.ProcessPrivateLabelCreditCardView.Click();

                    // Fill in PowerUp Rewards Credit Card Manual Entry
                    repo.RetechCardPaymentView.TxtCardNumber.TextValue = "7788400030000272";
                    repo.RetechCardPaymentView.TxtNameFromId.TextValue = "PAL User";
                    repo.RetechCardPaymentView.ProcessPrivateLabelCreditCardView.Click();
                    repo.RetechCardPaymentView.Self.PressKeys("{Enter}");

                    Global.LogText = @"Info entered - watching for Waiting for Signature";
                    WriteToLogFile.Run();

                    while (!Global.AbortScenario &&
                           !Host.Local.TryFindSingle(repo.RetechCardPaymentView.Waiting_for_SignatureInfo.AbsolutePath.ToString(), out element))
                    {
                        Thread.Sleep(100);
                        if (Host.Local.TryFindSingle(repo.RetechCardPaymentView.PaymentCouldNotBeAuthorizedAnUnknInfo.AbsolutePath.ToString(), out element))
                        {
                            Global.AbortScenario   = true;
                            Global.TempErrorString = "PURCC Unable to Process Payment - transaction voided";
                            WriteToErrorFile.Run();
                            Global.LogText = Global.TempErrorString;
                            WriteToLogFile.Run();
                            Keyboard.Press("{Escape}");
                            Thread.Sleep(100);
                            repo.Retech.DataContextVoidOrderCommand.Click();
                            Thread.Sleep(100);
                            repo.GenericDialogView.Yesvoidthistransaction.Click();
                            Thread.Sleep(100);
                            while (!repo.RetechAnotherTransaction.Visible)
                            {
                                Thread.Sleep(100);
                            }
                        }
                    }
                    if (!Global.AbortScenario)
                    {
                        repo.RetechPeripheralHostWindow.SignOnPinPad.Click();
                        Thread.Sleep(200);
                        repo.RetechPeripheralHostWindow.AcceptOnPinPad.Click();
                        Thread.Sleep(200);
                        repo.RetechCardPaymentView.Self.Focus();
                        Thread.Sleep(100);
                        repo.RetechCardPaymentView.SignatureAcceptedCommand.Click();
                        Thread.Sleep(200);
                    }
                    break;
                }


                MystopwatchQ4.Reset();
                MystopwatchQ4.Start();

                if (Global.DomesticRegister)
                {
                    // Wait for Another Transaction pop-up
                    while (!Host.Local.TryFindSingle(repo.RetechAnotherTransactionInfo.AbsolutePath.ToString(), out element))
                    {
                        Thread.Sleep(100);
                        if (Host.Local.TryFindSingle(repo.RetechTillOverageWarningView.CodeF4AlertInfo.AbsolutePath.ToString(), out element)
                            ||
                            Host.Local.TryFindSingle(repo.RetechTillOverageWarningView.CodeF4Alert2Info.AbsolutePath.ToString(), out element)
                            )
                        {
                            GlobalOverhead.Stopwatch.Start();
                            repo.RetechTillOverageWarningView.DropCashCommand.Click();
                            while (!repo.RetechLoginView.TxtPassword.Enabled)
                            {
                                Thread.Sleep(100);
                            }
                            repo.RetechLoginView.TxtPassword.PressKeys("advanced{Return}");
                            while (!repo.RetechTillDepositView.DropBoxAmount.Enabled)
                            {
                                Thread.Sleep(100);
                            }
                            repo.RetechTillDepositView.DropBoxAmount.PressKeys("40000");
                            repo.RetechTillDepositView.AddCashDropButton.Click();
                            Thread.Sleep(1000);
                            repo.RetechTillDepositView.DropBoxAmount.PressKeys("{Escape}");
                            GlobalOverhead.Stopwatch.Stop();
                        }
                    }
                }
                else
                {
                    // Wait for log on screen
                    if (Global.CurrentScenario == 47 ||
                        Global.CurrentScenario == 20 ||
                        Global.CurrentScenario == 16 ||
                        Global.CurrentScenario == 33 ||
                        Global.CurrentScenario == 34
                        )
                    {
                        Thread.Sleep(100);
                        while (!Host.Local.TryFindSingle(repo.IPOSScreen.ChangeDueInfo.AbsolutePath.ToString(), out element) &&
                               !repo.LogOn.LoginID.HasFocus
                               )
                        {
                            InternationalCheckForCodeF4Alert();                                     // 11/1/18
                            Thread.Sleep(200);
                        }
                        while (Host.Local.TryFindSingle(repo.IPOSScreen.ChangeDueInfo.AbsolutePath.ToString(), out element) &&
                               !repo.LogOn.LoginID.HasFocus
                               )
                        {
                            InternationalCheckForCodeF4Alert();                                     // 11/1/18
                            Thread.Sleep(200);
                        }
                    }
                    while (!Host.Local.TryFindSingle(repo.LogOn.LoginIDInfo.AbsolutePath.ToString(), out element))
                    {
                        Thread.Sleep(200);
                    }
                    while (!repo.LogOn.LoginID.Enabled)
                    {
                        Thread.Sleep(200);
                    }
                }
            }


            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Wait for another transaction ESC";
            Global.Module = "Finalize";
            DumpStatsQ4.Run();

            switch (Global.PayWithMethod)
            {
            case "Cash":
                Global.NowPayWithCash = Global.AdjustedTime;
                break;

            case "Credit":
                Global.NowPayWithCredit = Global.AdjustedTime;
                break;

            case "PURCC":
                Global.NowPayWithPURCC = Global.AdjustedTime;
                break;
            }

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            if (Global.DomesticRegister)
            {
                // Press excape key on Another Transaction pop-up
                while (!Host.Local.TryFindSingle(repo.RetechLoginView.TxtPasswordInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                }
                repo.RetechLoginView.TxtPassword.PressKeys("{Escape}");
            }
            else
            {
                // Press escape on log on screen
//				repo.LogOn.Self.PressKeys("{Escape}");
//				repo.LogOn.LogOn.Click("231;6");
//              Delay.Milliseconds(200);
//              Keyboard.Press("{Escape}");
                Thread.Sleep(200);
                while (!repo.LogOn.LogOn.Enabled)
                {
                    Thread.Sleep(200);
                }
                repo.LogOn.LogOn.PressKeys("");
                Delay.Milliseconds(200);
                repo.LogOn.LogOn.PressKeys("{Escape}");
            }

            if (!Global.DomesticRegister) // International Store
            {                             // Catch hanging logon
                Thread.Sleep(100);
                if (Host.Local.TryFindSingle(repo.LogOn.LogOnInfo.AbsolutePath.ToString(), out element))
                {
                    Keyboard.Press("{Escape}");
                }
            }

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);   // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Wait for Start a Transaction ESC";
            Global.Module = "Finalize";
            DumpStatsQ4.Run();

            TimeMinusOverhead.Run((float)MystopwatchModuleTotal.ElapsedMilliseconds);   // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Module Total Time";
            Global.Module = "Finalize";
            DumpStatsQ4.Run();

            Global.LogText = "OUT fnCheckout";
            WriteToLogFile.Run();
            Global.LogFileIndentLevel--;
        }
Example #17
0
        public void EnterPRPSKU()
        {
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            Ranorex.Unknown element = null;

            RanorexRepository   repo              = new RanorexRepository();
            fnWriteToLogFile    WriteToLogFile    = new fnWriteToLogFile();
            fnTimeMinusOverhead TimeMinusOverhead = new fnTimeMinusOverhead();
            fnDumpStatsQ4       DumpStatsQ4       = new fnDumpStatsQ4();
            fnWriteToErrorFile  WriteToErrorFile  = new fnWriteToErrorFile();

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();

            Stopwatch MystopwatchF1          = new Stopwatch();
            Stopwatch MystopwatchQ4          = new Stopwatch();
            Stopwatch MystopwatchModuleTotal = new Stopwatch();
            Stopwatch MystopwatchGPGPRP      = new Stopwatch();

            if (Global.DomesticRegister)
            {
                // Press F1 add item
                Keyboard.Press("{F1}");
                while (!Host.Local.TryFindSingle(repo.AddItemTextInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                    if (MystopwatchF1.ElapsedMilliseconds > 1000)
                    {
                        Keyboard.Press("{F1}");
                        Thread.Sleep(100);
                        MystopwatchF1.Reset();
                        MystopwatchF1.Start();
                    }
                }
            }

            // Enter SKU
            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            if (Global.DomesticRegister)
            {
                while (!repo.AddItemText.Enabled)
                {
                    Thread.Sleep(100);
                }

                if (Global.CurrentSKUOveride)                   // 12-3-18
                {
                    repo.AddItemText.TextValue = Global.CurrentSKUOverideValue;
                }
                else
                {
                    repo.AddItemText.TextValue = "177966";
                }

                repo.RetechQuickEntryView.TxtWatermark.PressKeys("{Enter}");
                Global.LogText = @"Item added";
                WriteToLogFile.Run();


                Global.LogText = "Adding PRP";
                WriteToLogFile.Run();
                MystopwatchGPGPRP.Reset();
                MystopwatchGPGPRP.Start();

                while (!repo.Retech.PRPAddButton.Enabled)
                {
                    Thread.Sleep(100);
                }
                repo.Retech.PRPAddButton.Click();

                while (!repo.Retech.SelectCustomer.Enabled)
                {
                    Thread.Sleep(100);
                }
                repo.Retech.PRPSelectCustomerButton.Click();

                while (!repo.Retech.ButtonContent.Enabled)
                {
                    Thread.Sleep(100);
                }
                repo.Retech.ButtonContent.Click();                 // Search for Customer
                Thread.Sleep(100);

                string PRPPhoneNumber = "406254111" + Global.RegisterNumber;
                repo.RetechFindCustomerView.CustomerLookupTxt.TextValue = PRPPhoneNumber;
                repo.RetechFindCustomerView.Self.PressKeys("{Enter}");

                while (!Host.Local.TryFindSingle(repo.RetechFindCustomerView.ListBoxItemInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                }
                while (!repo.RetechFindCustomerView.ListBoxItem.Enabled)
                {
                    Thread.Sleep(100);
                }
                repo.RetechFindCustomerView.ListBoxItem.Click();                 // accept customer
                while (Host.Local.TryFindSingle(repo.RetechFindCustomerView.ListBoxItemInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                }


                // Process Continue if exists
                if (Host.Local.TryFindSingle(repo.Retech.ProductReplacementContinueInfo.AbsolutePath.ToString(), out element))
                {
                    repo.Retech.ProductReplacementContinue.Click();
                    Thread.Sleep(100);
                }
            }
            else
            {
                // International SKU OBS Mass Effect
                repo.IPOSScreen.InternationalOutsideSKUField.PressKeys("611547{Enter}");
                WriteToLogFile.Run();
                Thread.Sleep(100);
//				while(!repo.IPOS20167172.OBSMASSEFFECTEDGECARDInfo.Exists())
//				{	Thread.Sleep(100);	}
                if (Host.Local.TryFindSingle(repo.ReservationDeposit.RawTextESCCloseInfo.AbsolutePath.ToString(), out element))
                {
                    repo.ReservationDeposit.RawTextESCClose.Click();
                }
            }

            TimeMinusOverhead.Run((float)MystopwatchGPGPRP.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Add PRP";
            Global.Module = "Add PRP";
            DumpStatsQ4.Run();
            Global.CurrentMetricDesciption = "Module Total Time";
            DumpStatsQ4.Run();
        }
Example #18
0
        //
        // P R E   C H E C K   O U T   N O N   Z E r o   b a l a n c e##############################################################################
        //
        private void SpecialPreCheckOutNonZeroBalance()
        {
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            Ranorex.Unknown element = null;

            RanorexRepository   repo              = new RanorexRepository();
            fnWriteToLogFile    WriteToLogFile    = new fnWriteToLogFile();
            fnTimeMinusOverhead TimeMinusOverhead = new fnTimeMinusOverhead();
            fnDumpStatsQ4       DumpStatsQ4       = new fnDumpStatsQ4();
            fnWriteToErrorFile  WriteToErrorFile  = new fnWriteToErrorFile();

            // Check for Please select a charity to donate
            if (Host.Local.TryFindSingle(repo.RetechPeripheralHostWindow.PleaseSelectACharityToDonateInfo.AbsolutePath.ToString(), out element))
            {
                repo.RetechPeripheralHostWindow.DeclineDonateNoThanks.Click();
                Thread.Sleep(100);
            }


            Global.LogText = @"Waiting on Time to Check Out - fnProductionIssueFunctions()";
            WriteToLogFile.Run();
            Thread.Sleep(100);
            while (!Host.Local.TryFindSingle(repo.Retech.TimeToCheckOutInfo.AbsolutePath.ToString(), out element))
            {
                if (Host.Local.TryFindSingle(repo.ContinueButtonCommandInfo.AbsolutePath.ToString(), out element))
                {
                    repo.ContinueButtonCommand.Click();
                    Global.LogText = @"Clicked on Continue Button - fnProductionIssueFunctions()";
                    WriteToLogFile.Run();
                    Thread.Sleep(100);
                }

                Thread.Sleep(100);
                if (Host.Local.TryFindSingle(repo.Retech.AcknowledgeRelatedProductsCommandInfo.AbsolutePath.ToString(), out element))
                {
                    if (Host.Local.TryFindSingle(repo.Retech.AcknowledgeRelatedProductsCommandInfo.AbsolutePath.ToString(), out element))
                    {
                        if (repo.Retech.AcknowledgeRelatedProductsCommand.Enabled)
                        {
                            Global.LogText = @"Clicking on acknowledge related products before F12";
                            WriteToLogFile.Run();
                            repo.Retech.AcknowledgeRelatedProductsCommand.Click();
                            Thread.Sleep(100);
                        }
                    }
                }
                else if (Host.Local.TryFindSingle(repo.Retech.ContinueF5_5_6_0_103Info.AbsolutePath.ToString(), out element))
                {
                    if (repo.Retech.ContinueF5_5_6_0_103.Enabled)
                    {
                        Global.LogText = @"Clicking on F5 Continue before F12";
                        WriteToLogFile.Run();
                        repo.Retech.ContinueF5_5_6_0_103.Click();
                        Thread.Sleep(100);
                        repo.Retech.ButtonCheckout.Click();
                        Thread.Sleep(100);
                    }
                }
            }

            // Click on screen to make sure in focust - .focus not work
            //repo.Retech.PaymentView.Click("689;82");  1-22-19

            switch (Global.PayWithMethod)
            {
            case "Cash":
                Global.LogText = @"Waiting on Cash F5";
                WriteToLogFile.Run();
                repo.Retech.Self.Focus();
                Thread.Sleep(100);
                while (!repo.Retech.RequestCashSettlement.Enabled)
                {
                    Thread.Sleep(500);
                }
                Global.LogText = @"Found Cash F5 Enabled";
                WriteToLogFile.Run();
                break;

            case "Credit":
            case "PURCC":
                Global.LogText = @"Waiting on Manual Card F6";
                WriteToLogFile.Run();
                repo.Retech.Self.Focus();
                Thread.Sleep(100);
                while (!repo.Retech.RequestManualCardSettlement.Enabled)
                {
                    Thread.Sleep(500);
                }
                Global.LogText = @"Found Manual Card F6 Enabled";
                WriteToLogFile.Run();
                break;
            }

            // Read Remaining Balance from screen
            string BalanceDueText      = repo.Retech.BalanceDue.TextValue;
            string BalTemp             = BalanceDueText.Substring(1, BalanceDueText.Length - 1);
            float  BalanceDueAmount    = float.Parse(BalTemp);
            string BalanceDueAmountTxt = Convert.ToString(BalanceDueAmount);

            switch (Global.PayWithMethod)
            {
            case "Cash":
                // Click on Cash F5 button
                Global.LogText = @"Clicking on Cash F5 button";
                WriteToLogFile.Run();
                repo.Retech.RequestCashSettlement.Click();
                while (!Host.Local.TryFindSingle(repo.RetechCardPaymentView.TxtAmountPaidInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                }

                // Enter amount paid
                if (Global.SpecialPayThisAmount == "All")
                {
                    repo.RetechCardPaymentView.TxtAmountPaid.TextValue = BalanceDueAmountTxt;
                }
                else
                {
                    repo.RetechCardPaymentView.TxtAmountPaid.TextValue = Global.SpecialPayThisAmount;
                }
                repo.RetechCardPaymentView.TxtAmountPaid.PressKeys("{Enter}");

                break;

            case "Credit":
                // Click on Manual Card F6 button
                Global.LogText = @"Clicking on Manual Card F6 button";
                WriteToLogFile.Run();
                repo.Retech.RequestManualCardSettlement.Click();

                while (!repo.RetechCardPaymentView.RunAsCreditCard.Enabled)
                {
                    Thread.Sleep(100);
                }

                // Click on Run as Credit button
                Global.LogText = @"Clicking on Run as Credit button";
                WriteToLogFile.Run();
                repo.RetechCardPaymentView.RunAsCreditCard.Click();
                Thread.Sleep(500);

                repo.RetechCardPaymentView.TxtCardNumber.TextValue     = Global.CreditCardNumber;
                repo.RetechCardPaymentView.TxtExpirationDate.TextValue = Global.CreditCardMonth + "/" + Global.CreditCardYear;
                repo.RetechCardPaymentView.TxtZipCode.TextValue        = Global.CreditCardZip;
                // Enter amount paid
                if (Global.SpecialPayThisAmount == "All")
                {
                    repo.RetechCardPaymentView.TxtAmountToCharge.TextValue = BalanceDueAmountTxt;
                }
                else
                {
                    repo.RetechCardPaymentView.TxtAmountToCharge.TextValue = Global.SpecialPayThisAmount;
                }
                repo.RetechCardPaymentView.ProcessCreditCardView.PressKeys("{Enter}");
                Thread.Sleep(100);
                while (!Global.AbortScenario &&
                       !Host.Local.TryFindSingle(repo.RetechCardPaymentView.Waiting_for_SignatureInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                    if (Host.Local.TryFindSingle(repo.RetechCardPaymentView.TryAuthorizingAgainInfo.AbsolutePath.ToString(), out element))
                    {
                        Global.AbortScenario   = true;
                        Global.TempErrorString = "Credit Card Unable to Process Payment - transaction voided";
                        WriteToErrorFile.Run();
                        Global.LogText = Global.TempErrorString;
                        WriteToLogFile.Run();
                        Keyboard.Press("{Escape}");
                        Thread.Sleep(100);
                        repo.Retech.DataContextVoidOrderCommand.Click();
                        Thread.Sleep(100);
                        repo.GenericDialogView.Yesvoidthistransaction.Click();
                        Thread.Sleep(100);
                        while (!repo.RetechAnotherTransaction.Visible)
                        {
                            Thread.Sleep(100);
                        }
                    }
                }
                if (!Global.AbortScenario)
                {
                    repo.RetechPeripheralHostWindow.SignOnPinPad.Click();
                    Thread.Sleep(200);
                    repo.RetechPeripheralHostWindow.AcceptOnPinPad.Click();
                    Thread.Sleep(200);
                    repo.RetechCardPaymentView.Self.Focus();
                    Thread.Sleep(100);
                    repo.RetechCardPaymentView.SignatureAcceptedCommand.Click();
                    Thread.Sleep(200);
                }

                break;

            case "PURCC":
                // Click on Manual Card F6 button
                Global.LogText = @"Clicking on Manual Card F6 button";
                WriteToLogFile.Run();
                repo.Retech.RequestManualCardSettlement.Click();
                while (!repo.RetechCardPaymentView.RunAsPURCCCard.Enabled)
                {
                    Thread.Sleep(100);
                }

                // Click on Run as PURCC button (Run as PowerUp Rewards Cerdit Cart
                Global.LogText = @"Clicking on run as PURCC";
                WriteToLogFile.Run();
                repo.RetechCardPaymentView.RunAsPURCCCard.Click();
                while (!Host.Local.TryFindSingle(repo.RetechCardPaymentView.TxtCardNumberInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                }

                // Select ID type and Issuer (Drivers Lenense and State)
                repo.RetechCardPaymentView.PickIdType.SelectedItemText = "Drivers License";
                repo.RetechCardPaymentView.PickIdIssuer.Click();
                repo.RetechCardPaymentView.PickIdIssuer.SelectedItemText = "Texas";
                repo.RetechCardPaymentView.ProcessPrivateLabelCreditCardView.Click();

                // Fill in PowerUp Rewards Credit Card Manual Entry
                repo.RetechCardPaymentView.TxtCardNumber.TextValue = "7788400030000272";
                repo.RetechCardPaymentView.TxtNameFromId.TextValue = "PAL User";
                repo.RetechCardPaymentView.ProcessPrivateLabelCreditCardView.Click();
                repo.RetechCardPaymentView.Self.PressKeys("{Enter}");

                Global.LogText = @"Info entered - watching for Waiting for Signature";
                WriteToLogFile.Run();

                while (!Global.AbortScenario &&
                       !Host.Local.TryFindSingle(repo.RetechCardPaymentView.Waiting_for_SignatureInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                    if (Host.Local.TryFindSingle(repo.RetechCardPaymentView.PaymentCouldNotBeAuthorizedAnUnknInfo.AbsolutePath.ToString(), out element))
                    {
                        Global.AbortScenario   = true;
                        Global.TempErrorString = "PURCC Unable to Process Payment - transaction voided";
                        WriteToErrorFile.Run();
                        Global.LogText = Global.TempErrorString;
                        WriteToLogFile.Run();
                        Keyboard.Press("{Escape}");
                        Thread.Sleep(100);
                        repo.Retech.DataContextVoidOrderCommand.Click();
                        Thread.Sleep(100);
                        repo.GenericDialogView.Yesvoidthistransaction.Click();
                        Thread.Sleep(100);
                        while (!repo.RetechAnotherTransaction.Visible)
                        {
                            Thread.Sleep(100);
                        }
                    }
                }
                if (!Global.AbortScenario)
                {
                    repo.RetechPeripheralHostWindow.SignOnPinPad.Click();
                    Thread.Sleep(200);
                    repo.RetechPeripheralHostWindow.AcceptOnPinPad.Click();
                    Thread.Sleep(200);
                    repo.RetechCardPaymentView.Self.Focus();
                    Thread.Sleep(100);
                    repo.RetechCardPaymentView.SignatureAcceptedCommand.Click();
                    Thread.Sleep(200);
                }
                break;
            }
        }
Example #19
0
        public void Run()
        {       //*****************Start  Scenario 40 - Retech - PRP ******************
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            //Ranorex.Unknown element = null;
            Global.AbortScenario = false;

            // Uses same SKU and Customer for Scenarios 3, 4, and 5

            RanorexRepository        repo = new RanorexRepository();
            fnTimeMinusOverhead      TimeMinusOverhead          = new fnTimeMinusOverhead();
            fnDumpStatsQ4            DumpStatsQ4                = new fnDumpStatsQ4();
            fnWriteToLogFile         WriteToLogFile             = new fnWriteToLogFile();
            fnWriteToErrorFile       WriteToErrorFile           = new fnWriteToErrorFile();
            FnWriteOutStatsQ4Buffer  WriteOutStatsQ4Buffer      = new FnWriteOutStatsQ4Buffer();
            fnUpdatePALStatusMonitor UpdatePALStatusMonitor     = new fnUpdatePALStatusMonitor();
            FnCheckout                 Checkout                 = new FnCheckout();
            FnStartTransaction         StartTransaction         = new FnStartTransaction();
            FnEnterSKU                 EnterSKU                 = new FnEnterSKU();
            FnProductionIssueFunctions ProductionIssueFunctions = new FnProductionIssueFunctions();

            Global.CurrentScenario = 42;

            if (!Global.IndirectCall)
            {
                if (!Global.DoScenarioFlag[Global.CurrentScenario])
                {
                    return;
                }
            }

            Global.ScenarioExecuted = true;

            Global.RetechScenariosPerformed++;
            UpdatePALStatusMonitor.Run();

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();

            Stopwatch MystopwatchF1 = new Stopwatch();

            Stopwatch MystopwatchTotal = new Stopwatch();

            MystopwatchTotal.Reset();
            MystopwatchTotal.Start();
            Stopwatch MystopwatchQ4          = new Stopwatch();
            Stopwatch MystopwatchModuleTotal = new Stopwatch();

            Global.LogText = @"---> fnDoScenario42 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 40 IN", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            // Start



            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            StartTransaction.Run();

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            Global.LogText = @"Add Item";
            WriteToLogFile.Run();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();


            // Add PRP
            EnterPRPSKU();

/*
 *                      // Price override
 *          MystopwatchQ4.Reset();
 *                      MystopwatchQ4.Start();
 *
 *                      string TextAmt = repo.Retech.NetTotal.TextValue.Substring(1,repo.Retech.NetTotal.TextValue.Length - 1);
 *                      string TextTotAmt = repo.Retech.TotalPurchases.TextValue.Substring(1,repo.Retech.TotalPurchases.TextValue.Length - 1);
 *                      decimal DecAmt = Convert.ToDecimal(TextAmt);
 *                      decimal DecTotAmt = Convert.ToDecimal(TextTotAmt);
 *                      decimal UseAmt =    DecTotAmt - DecAmt + 1.00m;
 *                      Global.SpecialPayThisAmount = Convert.ToString(UseAmt);
 *
 *                      ProductionIssueFunctions.SpecialPriceOverride(1.00m);  // lower the price so not so many code F4 alerts
 *
 *                      TimeMinusOverhead.Run((float) MystopwatchQ4.ElapsedMilliseconds);  // Subtract overhead and store in Global.Q4StatLine
 *              Global.CurrentMetricDesciption = "Price Overide";
 *              Global.Module = "Price Overide";
 *              DumpStatsQ4.Run();
 *                      Global.CurrentMetricDesciption = "Module Total Time";
 *                      DumpStatsQ4.Run();
 */

            // @#@#@# C H E C K O U T #@#@#@
            Global.PayWithMethod = "Cash";
            Checkout.Run();

            TimeMinusOverhead.Run((float)MystopwatchTT.ElapsedMilliseconds);   // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Scenario 42";
            Global.Module = "Total Time";
            DumpStatsQ4.Run();

            if (!Global.AbortScenario)
            {
                // Write out metrics buffer
                WriteOutStatsQ4Buffer.Run();
            }
            else
            {
                Global.Q4StatBuffer = "";
            }

            Global.LogText = "<--- fnDoScenario42 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 42 OUT", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            Thread.Sleep(2000);

            // ***********End Scenario 42*****************
        }
Example #20
0
        public void Run()
        {
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            RanorexRepository        repo = new RanorexRepository();
            fnUpdatePALStatusMonitor UpdatePALStatusMonitor = new fnUpdatePALStatusMonitor();
            fnWriteToLogFile         WriteToLogFile         = new fnWriteToLogFile();
            FnWriteOutStatsQ4Buffer  WriteOutStatsQ4Buffer  = new FnWriteOutStatsQ4Buffer();
            fnDumpStatsQ4            DumpStatsQ4            = new fnDumpStatsQ4();
            fnTimeMinusOverhead      TimeMinusOverhead      = new fnTimeMinusOverhead();

            Ranorex.Unknown element = null;
            Global.AbortScenario = false;

            //*****************Start  Scenario 13 - eMail ******************
            Global.CurrentScenario = 13;

            if (!Global.IndirectCall)
            {
                if (!Global.DoScenarioFlag[Global.CurrentScenario])
                //			if(Global.CurrentScenario != 9999)
                {
                    return;
                }
            }

            Global.ScenarioExecuted = true;

            Global.RetechScenariosPerformed++;
            UpdatePALStatusMonitor.Run();

            if (Global.CombinedIPOS)
            {
                repo.GoToBackOffice.Click();
                Thread.Sleep(200);
            }

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();
            Stopwatch MystopwatchModuleTotal = new Stopwatch();

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            Stopwatch MystopwatchQ4 = new Stopwatch();

            Global.LogText = @"---> fnDoScenario13 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 13 IN", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            if (Global.DomesticRegister)
            {
                MystopwatchQ4.Reset();
                MystopwatchQ4.Start();

                Report.Log(ReportLevel.Info, "Mouse", "Mouse Left Click item 'IPOS270141HomeScreen.Element1' at 269;333.", repo.BackOffice275111HomeScreen.BackOffice275111HomeScreenInfo, new RecordItemIndex(0));
                MystopwatchQ4.Reset();
                MystopwatchQ4.Start();
                Global.LogText = @"Clicking on Back Office link";
                WriteToLogFile.Run();
                repo.BackOffice275111HomeScreen.BackOffice275111HomeScreen.Click();
                Global.LogText = @"Waiting for Back Office home screen";
                WriteToLogFile.Run();
                while (!repo.BackOffice275111HomeScreen.BackOffice275111HomeScreen.Enabled)
                {
                    Thread.Sleep(100);
                }

                TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);                   // Subtract overhead and store in Global.Q4StatLine
                Global.CurrentMetricDesciption = "Load Back Office";
                Global.Module = "eMail:";
                DumpStatsQ4.Run();
            }
            else
            {
                repo.IPOSScreen.Self.Click();
            }

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

//            Global.LogText = @"Waiting for F6 Cover Artl";
//			WriteToLogFile.Run();
//              while(!Host.Local.TryFindSingle(repo.BackOffice275111HomeScreen.BackOffice275111HomeScreenInfo.AbsolutePath.ToString(), out element))
//            {
//              Thread.Sleep(100);
//            }

            Global.LogText = @"Clicking on F6 Live-eMail";
            WriteToLogFile.Run();

            if (Global.DomesticRegister)
            {
                while (!Host.Local.TryFindSingle(repo.BackOffice275111HomeScreen.BackOffice275111HomeScreenInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                }                                            // change 1/8/17
                repo.BackOffice275111HomeScreen.BackOffice275111HomeScreen.PressKeys("{F6}");
            }
            else
            {
// 08-13-2018	repo.IPOSHomeScreen.InternationalIPOS.PressKeys("{F6}");
                repo.IPOSScreen.Self.PressKeys("{F6}");
            }

            Thread.Sleep(100);
            Global.LogText = @"logging in";
            WriteToLogFile.Run();
            Keyboard.Press("psu");
            Thread.Sleep(100);
            Keyboard.Press("advanced{Return}");

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "[F6] Live eMail and login";
            Global.Module = "eMail:";
            DumpStatsQ4.Run();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            Global.LogText = @"Waiting for eMail listing";
            WriteToLogFile.Run();
//			while(!repo.MailViewer.Self.Enabled)
//			while(!repo.MailViewer1.Self.Enabled)
            while (!Host.Local.TryFindSingle(repo.MailViewer.EmailScreenTitleInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "display eMail listing";
            Global.Module = "eMail:";
            DumpStatsQ4.Run();

            Global.TempFloat = (float)MystopwatchModuleTotal.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchModuleTotal.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Module Total Time";
            Global.Module = "eMail:";
            DumpStatsQ4.Run();

            Keyboard.Press("{Escape}");

            TimeMinusOverhead.Run((float)MystopwatchTT.ElapsedMilliseconds);   // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Scenario 13";
            Global.Module = "Total Time";
            DumpStatsQ4.Run();

            // Write out metrics buffer
            WriteOutStatsQ4Buffer.Run();

            Global.LogText = "<--- fnDoScenario13 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 13 OUT", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            if (Global.CombinedIPOS)
            {
                repo.BackOffice275111HomeScreen.Self.Focus();
                repo.BackOffice275111HomeScreen.Self.Click();
                Keyboard.Press("{F5}");
                Thread.Sleep(200);
                if (Host.Local.TryFindSingle(repo.ReservationDeposit.WrongBusinessDateInfo.AbsolutePath.ToString(), out element))
                {
                    Keyboard.Press("{F5}");
                    Thread.Sleep(200);
                }
            }

            return;

            // ***********End Scenario 13*****************
        }
Example #21
0
        public void Run()
        {
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            RanorexRepository        repo = new RanorexRepository();
            fnUpdatePALStatusMonitor UpdatePALStatusMonitor = new fnUpdatePALStatusMonitor();
            fnWriteToLogFile         WriteToLogFile         = new fnWriteToLogFile();
            FnWriteOutStatsQ4Buffer  WriteOutStatsQ4Buffer  = new FnWriteOutStatsQ4Buffer();
            fnDumpStatsQ4            DumpStatsQ4            = new fnDumpStatsQ4();
            fnTimeMinusOverhead      TimeMinusOverhead      = new fnTimeMinusOverhead();
            fnWriteToErrorFile       WriteToErrorFile       = new fnWriteToErrorFile();
            FnCommon14and15          CommonScenario14and15  = new FnCommon14and15();

            Ranorex.Unknown element = null;
            Global.AbortScenario = false;

            //*****************Start  Scenario 14 - Shift-F12 Performance Summary ******************
            Global.CurrentScenario = 14;

            if (!Global.IndirectCall)
            {
                if (!Global.DoScenarioFlag[Global.CurrentScenario])
                //			if(Global.CurrentScenario != 9999)
                {
                    return;
                }
            }

            Global.RetechScenariosPerformed++;
            UpdatePALStatusMonitor.Run();

            if (Global.CombinedIPOS)
            {
                repo.GoToBackOffice.Click();
                Thread.Sleep(200);
            }

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();
            Stopwatch MystopwatchModuleTotal = new Stopwatch();

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            Stopwatch MystopwatchQ4 = new Stopwatch();

            Global.LogText = @"---> fnDoScenario14 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 14 IN", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            Report.Log(ReportLevel.Info, "Mouse", "Mouse Left Click item 'IPOS270141HomeScreen.Element1' at 269;333.", repo.BackOffice275111HomeScreen.BackOffice275111HomeScreenInfo, new RecordItemIndex(0));
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            Global.LogText = @"Clicking on Back Office link";
            WriteToLogFile.Run();
            repo.BackOffice275111HomeScreen.BackOffice275111HomeScreen.Click();
            Global.LogText = @"Waiting for Back Office home screen";
            WriteToLogFile.Run();
            while (!repo.BackOffice275111HomeScreen.BackOffice275111HomeScreen.Enabled)
            {
                Thread.Sleep(100);
            }

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Load Back Office";
            Global.Module = "Dashboard:";
            DumpStatsQ4.Run();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            repo.BackOffice275111HomeScreen.Self.Click();

            Global.LogText = @"Clicking Shift-F12 Performance Summary";
            WriteToLogFile.Run();
            Keyboard.Press("{LShiftKey down}{F12}{LShiftKey up}");

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            Global.LogText = @"Waiting for UserID to be enabled";
            WriteToLogFile.Run();
            while (!repo.ShellRoot.TxtUserId.Enabled)
            {
                Thread.Sleep(100);
            }

            Global.TempFloat = (float)MystopwatchQ4.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Load Dashboard login";
            Global.Module = "Dashboard:";
            DumpStatsQ4.Run();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            Global.LogText = @"Log into Back Office";
            WriteToLogFile.Run();
            repo.ShellRoot.TxtUserId.TextValue   = "psu";
            repo.ShellRoot.TxtPassword.TextValue = "advanced";
            Keyboard.Press("{Return}");

            Global.TempFloat = (float)MystopwatchQ4.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Log in";
            Global.Module = "Dashboard:";
            DumpStatsQ4.Run();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            CommonScenario14and15.Run();

            // All Done
            Global.LogText = "Press Alt-F4 to exit Dashboard";
            Keyboard.Press("{Alt down}{F4}{Alt up}");


            while (!repo.BackOffice275111HomeScreen.Self.Enabled)
            {
                Thread.Sleep(100);
            }

            Global.TempFloat = (float)MystopwatchModuleTotal.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchModuleTotal.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Module Total Time";
            Global.Module = "Dashboard:";
            DumpStatsQ4.Run();

            TimeMinusOverhead.Run((float)MystopwatchTT.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Scenario 14";
            Global.Module = "Total Time";
            DumpStatsQ4.Run();

            // Write out metrics buffer
            WriteOutStatsQ4Buffer.Run();


            Global.LogText = "<--- fnDoScenario14 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 14 OUT", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            if (Global.CombinedIPOS)
            {
                repo.BackOffice275111HomeScreen.Self.Focus();
                repo.BackOffice275111HomeScreen.Self.Click();
                Keyboard.Press("{F5}");
                Thread.Sleep(200);
                if (Host.Local.TryFindSingle(repo.ReservationDeposit.WrongBusinessDateInfo.AbsolutePath.ToString(), out element))
                {
                    Keyboard.Press("{F5}");
                    Thread.Sleep(200);
                }
            }

            return;

            // ***********End Scenario 14*****************
        }
Example #22
0
        public void Run()
        {
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            Ranorex.Unknown element = null;

            RanorexRepository        repo = new RanorexRepository();
            fnUpdatePALStatusMonitor UpdatePALStatusMonitor = new fnUpdatePALStatusMonitor();
            fnWriteToLogFile         WriteToLogFile         = new fnWriteToLogFile();
            FnWriteOutStatsQ4Buffer  WriteOutStatsQ4Buffer  = new FnWriteOutStatsQ4Buffer();
            fnDumpStatsQ4            DumpStatsQ4            = new fnDumpStatsQ4();
            fnTimeMinusOverhead      TimeMinusOverhead      = new fnTimeMinusOverhead();
            fnWriteToErrorFile       WriteToErrorFile       = new fnWriteToErrorFile();

            Stopwatch MystopwatchQ4 = new Stopwatch();
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            Global.LogText = @"Waiting for Performance Dashboard Menu to display";
            WriteToLogFile.Run();
            while (!Host.Local.TryFindSingle(repo.ShellRoot.DashBoardF11Info.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            while (!repo.ShellRoot.DashBoardF11.Enabled)
            {
                Thread.Sleep(100);
            }
            Global.TempFloat = (float)MystopwatchQ4.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Display Dashboard Menu";
            Global.Module = "Dashboard:";
            DumpStatsQ4.Run();

            //
            // Sales F1 Report
            //
            Global.LogText = @"Waiting for Sales F1 Report to display";
            WriteToLogFile.Run();
            while (!Host.Local.TryFindSingle(repo.ShellRoot.SalesButtonF1Info.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            while (!repo.ShellRoot.SalesButtonF1.Enabled)
            {
                Thread.Sleep(100);
            }
            Thread.Sleep(100);
            repo.ShellRoot.SalesButtonF1.Click("184;26");
            Thread.Sleep(100);
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            while (!Host.Local.TryFindSingle(repo.ShellRoot.SalesTitleBarInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            while (!repo.ShellRoot.SalesTitleBar.Enabled)
            {
                Thread.Sleep(100);
            }
            Global.TempFloat = (float)MystopwatchQ4.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Display Sales F1 Report";
            Global.Module = "Dashboard:";
            DumpStatsQ4.Run();
            GoHome();


            //
            // Five To Drive F2 Report
            //
            Global.LogText = @"Waiting for Five To Drive F2 Report to display";
            WriteToLogFile.Run();
            while (!Host.Local.TryFindSingle(repo.ShellRoot.FiveToDriveButtonF2Info.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            while (!repo.ShellRoot.FiveToDriveButtonF2.Enabled)
            {
                Thread.Sleep(100);
            }
            Thread.Sleep(100);
            repo.ShellRoot.FiveToDriveButtonF2.Click("104;13");
            Thread.Sleep(100);
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            while (!Host.Local.TryFindSingle(repo.ShellRoot.FiveToDriveTitleBarInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            while (!repo.ShellRoot.FiveToDriveTitleBar.Enabled)
            {
                Thread.Sleep(100);
            }
            Global.TempFloat = (float)MystopwatchQ4.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Display Five To Drive F2 Report";
            Global.Module = "Dashboard:";
            DumpStatsQ4.Run();
            GoHome();


            //
            // Guest F3 Report
            //
            Global.LogText = @"Waiting for Guest F3 Report to display";
            WriteToLogFile.Run();
            while (!Host.Local.TryFindSingle(repo.ShellRoot.GuestButtonF3Info.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            while (!repo.ShellRoot.GuestButtonF3.Enabled)
            {
                Thread.Sleep(100);
            }
            Thread.Sleep(100);
            repo.ShellRoot.GuestButtonF3.Click("160;9");
            Thread.Sleep(100);
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            while (!Host.Local.TryFindSingle(repo.ShellRoot.GuestTitleBarInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            while (!repo.ShellRoot.GuestTitleBar.Enabled)
            {
                Thread.Sleep(100);
            }
            Global.TempFloat = (float)MystopwatchQ4.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Display Guest F3 Report";
            Global.Module = "Dashboard:";
            DumpStatsQ4.Run();
            GoHome();

            //
            // Circle of Life F4 Report
            //
            Global.LogText = @"Waiting for Circle of Life F4 Report to display";
            WriteToLogFile.Run();
            while (!Host.Local.TryFindSingle(repo.ShellRoot.CircleOfLifeButtonF4Info.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            while (!repo.ShellRoot.CircleOfLifeButtonF4.Enabled)
            {
                Thread.Sleep(100);
            }
            Thread.Sleep(100);
            repo.ShellRoot.CircleOfLifeButtonF4.Click("198;9");
            Thread.Sleep(100);
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            while (!Host.Local.TryFindSingle(repo.ShellRoot.CircleOfLifeTaskBarInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            while (!repo.ShellRoot.CircleOfLifeTaskBar.Enabled)
            {
                Thread.Sleep(100);
            }
            Global.TempFloat = (float)MystopwatchQ4.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Display Circle of Life F4 Report";
            Global.Module = "Dashboard:";
            DumpStatsQ4.Run();
            // Sub Circle of Life Reports
            // F1 Reservations
            Global.LogText = @"Waiting for F1 Reservations Report to display";
            WriteToLogFile.Run();
            while (!repo.ShellRoot.SalesButtonF1.Enabled)
            {
                Thread.Sleep(100);
            }
            Thread.Sleep(100);
            repo.ShellRoot.SalesButtonF1.Click();
            Thread.Sleep(100);
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            while (!Host.Local.TryFindSingle(repo.ShellRoot.ReservationsTitleBarInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            while (!repo.ShellRoot.ReservationsTitleBar.Enabled)
            {
                Thread.Sleep(100);
            }
            Global.TempFloat = (float)MystopwatchQ4.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);                       // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Display F1 Reservations Report";
            Global.Module = "Dashboard:";
            DumpStatsQ4.Run();
            Thread.Sleep(1000);
            repo.ShellRoot.Self.PressKeys("{Escape}");
            Global.LogText = @"Waiting for Circle of Life to display";
            WriteToLogFile.Run();
            while (!Host.Local.TryFindSingle(repo.ShellRoot.CircleOfLifeTaskBarInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            while (!repo.ShellRoot.CircleOfLifeTaskBar.Enabled)
            {
                Thread.Sleep(100);
            }
            // F2 Power Up Rewards
            Global.LogText = @"Waiting for F2 Power Up Rewards Report to display";
            WriteToLogFile.Run();
            while (!repo.ShellRoot.FiveToDriveButtonF2.Enabled)
            {
                Thread.Sleep(100);
            }
            Thread.Sleep(100);
            repo.ShellRoot.FiveToDriveButtonF2.Click();
            Thread.Sleep(100);
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            while (!Host.Local.TryFindSingle(repo.ShellRoot.PowerUpRewardsTitleBarInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            while (!repo.ShellRoot.PowerUpRewardsTitleBar.Enabled)
            {
                Thread.Sleep(100);
            }
            Global.TempFloat = (float)MystopwatchQ4.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);                       // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Display F2 Power Up Rewards Report";
            Global.Module = "Dashboard:";
            DumpStatsQ4.Run();
            Thread.Sleep(1000);
            repo.ShellRoot.Self.PressKeys("{Escape}");
            Global.LogText = @"Waiting for Circle of Life to display";
            WriteToLogFile.Run();
            while (!Host.Local.TryFindSingle(repo.ShellRoot.CircleOfLifeTaskBarInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            while (!repo.ShellRoot.CircleOfLifeTaskBar.Enabled)
            {
                Thread.Sleep(100);
            }
            // Exit Circle of Life Report
            GoHome();

            //
            // Team F5 Report
            //
            Global.LogText = @"Waiting for Team F5 Report to display";
            WriteToLogFile.Run();
            while (!Host.Local.TryFindSingle(repo.ShellRoot.TeamF5Info.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            while (!repo.ShellRoot.TeamF5.Enabled)
            {
                Thread.Sleep(100);
            }
            Thread.Sleep(100);
            repo.ShellRoot.TeamF5.Click("53;11");
            Thread.Sleep(100);
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            while (!Host.Local.TryFindSingle(repo.ShellRoot.TeamTitleBarInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            while (!repo.ShellRoot.TeamTitleBar.Enabled)
            {
                Thread.Sleep(100);
            }
            Global.TempFloat = (float)MystopwatchQ4.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Display Team F5 Report";
            Global.Module = "Dashboard:";
            DumpStatsQ4.Run();
            Global.LogText = @"Waiting for Performance Dashboard Menu to display";
            WriteToLogFile.Run();
            Thread.Sleep(100);
            // Sub report
            // F1 Collectible Sales
            Global.LogText = @"Waiting for F1 Collectible Sales Report to display";
            WriteToLogFile.Run();
            repo.ShellRoot.Self.PressKeys("{F1}");
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            while (!Host.Local.TryFindSingle(repo.ShellRoot.CollectiblesSalesDollarInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            while (!repo.ShellRoot.CollectiblesSalesDollar.Enabled)
            {
                Thread.Sleep(100);
            }
            Global.TempFloat = (float)MystopwatchQ4.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);                       // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Display F1 Collectible Sales Report";
            Global.Module = "Dashboard:";
            DumpStatsQ4.Run();
            Thread.Sleep(1000);
            repo.ShellRoot.Self.PressKeys("{Escape}");
            Global.LogText = @"Waiting for Circle of Life to display";
            WriteToLogFile.Run();
            while (!Host.Local.TryFindSingle(repo.ShellRoot.TeamTitleBarInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            while (!repo.ShellRoot.TeamTitleBar.Enabled)
            {
                Thread.Sleep(100);
            }
            // Exit Team Report
            GoHome();

            // My Report
            Global.LogText = @"Waiting for My Report Report to display";
            WriteToLogFile.Run();
            repo.ShellRoot.Icon.Click("1;22");
            Delay.Milliseconds(200);
            repo.ShellRoot.MyREPORT.Click("127;23");
            Delay.Milliseconds(200);
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            while (!Host.Local.TryFindSingle(repo.ShellRoot.EmployeeComparisonCtrlPlusTInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            while (!repo.ShellRoot.EmployeeComparisonCtrlPlusT.Enabled)
            {
                Thread.Sleep(100);
            }
            Global.TempFloat = (float)MystopwatchQ4.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Display My Report Report";
            Global.Module = "Dashboard:";
            DumpStatsQ4.Run();
            GoHome();
            while (Host.Local.TryFindSingle(repo.ShellRoot.EmployeeComparisonCtrlPlusTInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }

            // My Goals
            Global.LogText = @"Waiting for My Goals Report to display";
            WriteToLogFile.Run();
            repo.ShellRoot.Icon.Click("1;22");
            Delay.Milliseconds(200);
            repo.ShellRoot.Text.Click("38;9");
            Delay.Milliseconds(200);
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            while (!Host.Local.TryFindSingle(repo.ShellRoot.EntireStoreInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            while (!repo.ShellRoot.EntireStore.Enabled)
            {
                Thread.Sleep(100);
            }
            Global.TempFloat = (float)MystopwatchQ4.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Display My Goals Report";
            Global.Module = "Dashboard:";
            DumpStatsQ4.Run();
            GoHome();

            // My Schedule Planner
            Global.LogText = @"Waiting for My Schedule Planner Report to display";
            WriteToLogFile.Run();
            repo.ShellRoot.Icon.Click("1;22");
            Delay.Milliseconds(200);
            repo.ShellRoot.Text1.Click("87;6");
            Delay.Milliseconds(200);
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            while (!Host.Local.TryFindSingle(repo.ShellRoot.SchedulePlannerHeaderInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            while (!repo.ShellRoot.SchedulePlannerHeader.Enabled)
            {
                Thread.Sleep(100);
            }
            Global.TempFloat = (float)MystopwatchQ4.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Display My Schedule Planner Report";
            Global.Module = "Dashboard:";
            DumpStatsQ4.Run();
            GoHome();
        }
        public void ResumeTransaction()
        {
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            Ranorex.Unknown element = null;

            RanorexRepository   repo              = new RanorexRepository();
            fnWriteToLogFile    WriteToLogFile    = new fnWriteToLogFile();
            fnTimeMinusOverhead TimeMinusOverhead = new fnTimeMinusOverhead();
            fnDumpStatsQ4       DumpStatsQ4       = new fnDumpStatsQ4();
            fnWriteToErrorFile  WriteToErrorFile  = new fnWriteToErrorFile();

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();

            Stopwatch MystopwatchQ4          = new Stopwatch();
            Stopwatch MystopwatchModuleTotal = new Stopwatch();

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            Global.LogText = @"Start Transaction";
            WriteToLogFile.Run();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            if (Global.DomesticRegister)
            {
                Global.LogText = @"Clicking on ReTech screen then press F5";
                WriteToLogFile.Run();
                repo.ReTechStartTransaction.Click();
                repo.ReTechStartTransaction.PressKeys("{F6}");

                if (Host.Local.TryFindSingle(repo.GenericDialogView.CriticalErrorSavingTransactionCallHInfo.AbsolutePath.ToString(), out element))
                {
                    repo.GenericDialogView.ErrorSavingButtonOK.Click();
                    Thread.Sleep(200);
                    Global.TempErrorString = "Error Saving Transaction";
                    WriteToErrorFile.Run();
                    Global.LogText = Global.TempErrorString;
                    WriteToLogFile.Run();
                }

                Global.LogText = @"Waiting for logon";
                WriteToLogFile.Run();
                while (!Host.Local.TryFindSingle(repo.RetechLoginView.TxtPasswordInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(200);

                    if (Host.Local.TryFindSingle(repo.GenericDialogView.CriticalErrorSavingTransactionCallHInfo.AbsolutePath.ToString(), out element))
                    {
                        repo.GenericDialogView.ErrorSavingButtonOK.Click();
                        Thread.Sleep(200);
                        Global.TempErrorString = "Error Saving Transaction";
                        WriteToErrorFile.Run();
                        Global.LogText = Global.TempErrorString;
                        WriteToLogFile.Run();
                    }
                }
            }
            else
            {
                // Click on F5 POS Register - international
                repo.IPOSScreen.ContainerF7BackOffice.Click("32;55");
                Delay.Milliseconds(200);
                Keyboard.Press("{F5}");

                while (!repo.LogOn.InternationalLoginID.Enabled)
                {
                    Thread.Sleep(100);
                }

                repo.LogOn.InternationalLoginID.PressKeys("psu");
            }
            Global.TempFloat = (float)MystopwatchQ4.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"[F6] Resume Transaction";
            Global.Module = "Log On";
            DumpStatsQ4.Run();

            // Enter Password
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            if (Global.DomesticRegister)
            {
                Global.LogText = @"Waiting for Password field enabled";
                WriteToLogFile.Run();
                while (!repo.ReTechLogonPassword.Enabled)
                {
                    Thread.Sleep(100);
                }
                Global.LogText = @"Entering password";
                WriteToLogFile.Run();
                repo.RetechLoginView.TxtPassword.PressKeys("advanced{Return}");

                // If no transactions found cancel and skip to next register so script will not stop
                if (Host.Local.TryFindSingle(repo.SelectSuspendedOrderView1.NoTransactionsHaveBeenSuspendedTodaInfo.AbsolutePath.ToString(), out element))
                {
                    repo.SelectSuspendedOrderView1.CancelCommand.Click();
                    Thread.Sleep(100);
                    Global.AbortScenario = true;
                }
                else
                {
                    // Wait for add line command 2/2/18
                    if (repo.SelectSuspendedOrderView.ResumeCommandInfo.Exists(5000))
                    {
                    }
                    while (!Host.Local.TryFindSingle(repo.SelectSuspendedOrderView.ResumeCommandInfo.AbsolutePath.ToString(), out element))
                    {
                        Thread.Sleep(200);
                    }                                                   // 1/31/18
                    repo.SelectSuspendedOrderView.ResumeCommand.Click();
                    Thread.Sleep(1000);

                    // If transaction service error - try reclicking on save button
                    if (Host.Local.TryFindSingle(repo.SelectSuspendedOrderView.ErrorMessageTxtInfo.AbsolutePath.ToString(), out element))
                    {
                        repo.SelectSuspendedOrderView.ResumeCommand.Click();
                    }

                    // If Customer Info then just skip by continue
                    if (Host.Local.TryFindSingle(repo.Retech.ContinueButtonCommand2Info.AbsolutePath.ToString(), out element))
                    {
                        repo.Retech.ContinueButtonCommand2.Click();
                        Thread.Sleep(100);
                    }

                    // If Continue click it
                    if (Host.Local.TryFindSingle(repo.ContinueButtonCommandInfo.AbsolutePath.ToString(), out element))
                    {
                        repo.ContinueButtonCommand.Click();
                        Thread.Sleep(100);
                    }
                }
            }
            else
            {
                repo.LogOn.InternationalPassword.PressKeys("advanced{Return}");
                while (!repo.ReservationDeposit.EnterSerialNumber.Enabled)
                {
                    Thread.Sleep(100);
                }
                repo.ReservationDeposit.EnterSerialNumber.PressKeys("{Escape}");
            }

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Enter Password";
            Global.Module = "Log On";
            DumpStatsQ4.Run();

            TimeMinusOverhead.Run((float)MystopwatchModuleTotal.ElapsedMilliseconds);   // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Module Total Time";
            Global.Module = "Log On";
            DumpStatsQ4.Run();
        }
        public void Run()
        {       //*****************Start  Scenario 39 - Retech - Enter 10 SKUs - credit card ******************
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            Ranorex.Unknown element = null;
            Global.AbortScenario = false;

            // Uses same SKU and Customer for Scenarios 3, 4, and 5

            RanorexRepository        repo = new RanorexRepository();
            fnTimeMinusOverhead      TimeMinusOverhead      = new fnTimeMinusOverhead();
            fnDumpStatsQ4            DumpStatsQ4            = new fnDumpStatsQ4();
            fnWriteToLogFile         WriteToLogFile         = new fnWriteToLogFile();
            fnWriteToErrorFile       WriteToErrorFile       = new fnWriteToErrorFile();
            FnWriteOutStatsQ4Buffer  WriteOutStatsQ4Buffer  = new FnWriteOutStatsQ4Buffer();
            fnUpdatePALStatusMonitor UpdatePALStatusMonitor = new fnUpdatePALStatusMonitor();
            FnCheckout         Checkout         = new FnCheckout();
            FnStartTransaction StartTransaction = new FnStartTransaction();

            Global.CurrentScenario = 39;

            if (!Global.DoScenarioFlag[Global.CurrentScenario])
            {
                return;
            }

            Global.RetechScenariosPerformed++;
            UpdatePALStatusMonitor.Run();

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();

            Stopwatch MystopwatchTotal = new Stopwatch();

            MystopwatchTotal.Reset();
            MystopwatchTotal.Start();
            Stopwatch MystopwatchQ4          = new Stopwatch();
            Stopwatch MystopwatchModuleTotal = new Stopwatch();
            Stopwatch MystopwatchF1          = new Stopwatch();

            Global.LogText = @"---> fnDoScenario39 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 39 IN", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            // Start
            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            Global.LogText = @"Start Transaction";
            WriteToLogFile.Run();
            StartTransaction.Run();

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            string[] MySKUs = new string[10];
            MySKUs[0] = Global.S9SKU1;
            MySKUs[1] = Global.S9SKU2;
            MySKUs[2] = Global.S9SKU3;
            MySKUs[3] = Global.S9SKU4;
            MySKUs[4] = Global.S9SKU5;
            MySKUs[5] = Global.S9SKU6;
            MySKUs[6] = Global.S9SKU7;
            MySKUs[7] = Global.S9SKU8;
            MySKUs[8] = Global.S9SKU9;
            MySKUs[9] = Global.S9SKU10;

            MystopwatchF1.Reset();
            MystopwatchF1.Start();

            Global.LogText = @"Enter SKUs";
            WriteToLogFile.Run();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            for (int soff = 0; soff <= 9; soff++)
            {
                // Press F1 add item
                Keyboard.Press("{F1}");
                MystopwatchF1.Reset();
                MystopwatchF1.Start();
                while (!Host.Local.TryFindSingle(repo.AddItemTextInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                    if (MystopwatchF1.ElapsedMilliseconds > 1000)
                    {
                        Keyboard.Press("{F1}");
                        Thread.Sleep(100);
                        MystopwatchF1.Reset();
                        MystopwatchF1.Start();
                    }
                }

                // Enter SKU
                Global.LogText = @"Entering SKU: " + MySKUs[soff];
                WriteToLogFile.Run();
                repo.AddItemText.TextValue = MySKUs[soff];
                repo.RetechQuickEntryView.TxtWatermark.PressKeys("{Enter}");
                while (!repo.AddLineItemCommand.Enabled)
                {
                    if (Host.Local.TryFindSingle(repo.ContinueButtonCommandInfo.AbsolutePath.ToString(), out element))
                    {
                        repo.ContinueButtonCommand.Click();
                    }
                    Thread.Sleep(100);
                }
            }

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Enter SKUs";
            Global.Module = "Enter 10 SKUs";
            DumpStatsQ4.Run();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            Keyboard.Press("{F5}");                                          // Continue F5 Recommended Pre-Owned Items
            Thread.Sleep(200);
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds); // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "[F5] Continue";
            Global.Module = "Enter 10 SKUs";
            DumpStatsQ4.Run();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            Keyboard.Press("{F6}");                                          // I've explained these related products to the customer F6
            Thread.Sleep(100);
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds); // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "[F6]: explain related products";
            Global.Module = "Enter 10 SKUs";
            DumpStatsQ4.Run();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            Keyboard.Press("{F5}");                                          // Continue F5
            Thread.Sleep(200);
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds); // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "[F5]: GPG";
            Global.Module = "Enter 10 SKUs";
            DumpStatsQ4.Run();

            TimeMinusOverhead.Run((float)MystopwatchModuleTotal.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.NowCustomerLookup       = Global.AdjustedTime;
            Global.CurrentMetricDesciption = "Module Total Time";
            Global.Module = "Enter 10 SKUs";
            DumpStatsQ4.Run();

            // @#@#@# C H E C K O U T #@#@#@
            Global.PayWithMethod = "Credit";
            Checkout.Run();

            TimeMinusOverhead.Run((float)MystopwatchTT.ElapsedMilliseconds);   // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Scenario 39";
            Global.Module = "Total Time";
            DumpStatsQ4.Run();

            // Write out metrics buffer
            WriteOutStatsQ4Buffer.Run();

            Global.LogText = "<--- fnDoScenario39 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 39 OUT", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            Thread.Sleep(2000);

            // ***********End Scenario 39*****************
        }
        public void Run()
        {       //*****************Start  Scenario 38 - Retech - Suspend Resume ******************
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            Ranorex.Unknown element = null;
            Global.AbortScenario = false;

            // Uses same SKU and Customer for Scenarios 3, 4, and 5

            RanorexRepository        repo = new RanorexRepository();
            fnTimeMinusOverhead      TimeMinusOverhead      = new fnTimeMinusOverhead();
            fnDumpStatsQ4            DumpStatsQ4            = new fnDumpStatsQ4();
            fnWriteToLogFile         WriteToLogFile         = new fnWriteToLogFile();
            fnWriteToErrorFile       WriteToErrorFile       = new fnWriteToErrorFile();
            FnWriteOutStatsQ4Buffer  WriteOutStatsQ4Buffer  = new FnWriteOutStatsQ4Buffer();
            fnUpdatePALStatusMonitor UpdatePALStatusMonitor = new fnUpdatePALStatusMonitor();
            FnCheckout         Checkout         = new FnCheckout();
            FnStartTransaction StartTransaction = new FnStartTransaction();
            FnEnterSKU         EnterSKU         = new FnEnterSKU();

            Global.CurrentScenario = 38;

            // Get current register allowed to run Scenario 38 - Suspend/Resume
            string FileToUse       = "AllowedSuspendResumeRegister.txt";
            string AllowedRegister = "1";

            try
            {
                // Read in the allowed register
                using (System.IO.StreamReader RegisterScenarioFileGet = new System.IO.StreamReader(Global.Register1DriveLetter + @":\" + Global.AutomationFileDirectory + @"\" + FileToUse))
                {
                    AllowedRegister = RegisterScenarioFileGet.ReadLine();
                    RegisterScenarioFileGet.Close();
                }
            }
            catch
            {
                // Write out new allowed register
                using (System.IO.StreamWriter RegisterScenarioFilePut = new System.IO.StreamWriter(Global.Register1DriveLetter + @":\" + Global.AutomationFileDirectory + @"\" + FileToUse))
                {
                    RegisterScenarioFilePut.WriteLine(AllowedRegister);
                    RegisterScenarioFilePut.Close();
                }
            }

            bool OkForThisRegisterToRun = true;

            if (AllowedRegister != Global.RegisterNumber)
            {
                OkForThisRegisterToRun = false;
            }

            if (!Global.IndirectCall)
            {
                if (!Global.DoScenarioFlag[Global.CurrentScenario] || !OkForThisRegisterToRun)
                {
                    return;
                }
            }

            Global.ScenarioExecuted = true;

            Global.RetechScenariosPerformed++;
            UpdatePALStatusMonitor.Run();

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();

            Stopwatch MystopwatchF1 = new Stopwatch();

            Stopwatch MystopwatchTotal = new Stopwatch();

            MystopwatchTotal.Reset();
            MystopwatchTotal.Start();
            Stopwatch MystopwatchQ4          = new Stopwatch();
            Stopwatch MystopwatchModuleTotal = new Stopwatch();

            Stopwatch MystopwatchSusRes = new Stopwatch();

            Global.LogText = @"---> fnDoScenario38 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 38 IN", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            // Start

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            StartTransaction.Run();

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            Global.LogText = @"Add Item";
            WriteToLogFile.Run();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            if (Global.DomesticRegister)
            {
                // Press F1 add item
                Keyboard.Press("{F1}");
                MystopwatchF1.Reset();
                MystopwatchF1.Start();
                while (!Host.Local.TryFindSingle(repo.AddItemTextInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                    if (MystopwatchF1.ElapsedMilliseconds > 1000)
                    {
                        Keyboard.Press("{F1}");
                        Thread.Sleep(100);
                        MystopwatchF1.Reset();
                        MystopwatchF1.Start();
                    }
                }

                TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);                   // Subtract overhead and store in Global.Q4StatLine
                Global.CurrentMetricDesciption = "[F1] wait for add item";
                Global.Module = "F1 Add Item";
                DumpStatsQ4.Run();

                Global.CurrentMetricDesciption = "Module Total Time";
                DumpStatsQ4.Run();
            }

            Global.CurrentSKU = Global.S4Sku1;
            EnterSKU.Run();
            Thread.Sleep(100);


            // Suspend Transaction ---------------------------------------------------------------
            MystopwatchSusRes.Reset();
            MystopwatchSusRes.Start();

            //repo.Retech.DataContextSuspendOrderCommand.Click(); Thread.Sleep(100);
            Keyboard.Press(System.Windows.Forms.Keys.F11 | System.Windows.Forms.Keys.Control, 87, Keyboard.DefaultKeyPressTime, 1, true);
            repo.UserConfirmationView.ConfirSuspend.Click();  Thread.Sleep(100);
            while (!repo.RetechLoginView.TxtPassword.Enabled)
            {
                Thread.Sleep(100);
            }
            Keyboard.Press("{Escape}");

            TimeMinusOverhead.Run((float)MystopwatchSusRes.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Suspend";
            Global.Module = "Suspend";
            DumpStatsQ4.Run();

            Global.CurrentMetricDesciption = "Module Total Time";
            DumpStatsQ4.Run();

            Global.LogText = "Pausing after supend " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Thread.Sleep(4000);              // give some time for processkng

            // Resume Transaction -----------------------------------------------------------------------
            MystopwatchSusRes.Reset();
            MystopwatchSusRes.Start();

            Global.AbortScenario = false;
            ResumeTransaction();

            TimeMinusOverhead.Run((float)MystopwatchSusRes.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Resume";
            Global.Module = "Resume";
            DumpStatsQ4.Run();

            Global.CurrentMetricDesciption = "Module Total Time";
            DumpStatsQ4.Run();

            if (!Global.AbortScenario)
            {
                // @#@#@# C H E C K O U T #@#@#@	----------------------------------
                Global.PayWithMethod = "Cash";
                Checkout.Run();

                TimeMinusOverhead.Run((float)MystopwatchTT.ElapsedMilliseconds);       // Subtract overhead and store in Global.Q4StatLine
                Global.CurrentMetricDesciption = @"Scenario 38";
                Global.Module = "Total Time";
                DumpStatsQ4.Run();

                if (!Global.AbortScenario)
                {
                    // Write out metrics buffer
                    WriteOutStatsQ4Buffer.Run();
                }
                else
                {
                    Global.Q4StatBuffer = "";
                }

                Global.LogText = "<--- fnDoScenario38 Iteration: " + Global.CurrentIteration;
                WriteToLogFile.Run();
                Report.Log(ReportLevel.Info, "Scenario 38 OUT", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));
            }

            // When Suspend/Resume done allow next register to run it
            string StoreName  = Global.RegisterName.Substring(0, 8);
            int    MaxAllowed = 0;

            switch (StoreName)
            {
            case "USA00414":
                MaxAllowed = 3;
                break;

            case "USA04285":
                MaxAllowed = 3;
                break;

            case "USA01763":
                MaxAllowed = 6;
                break;

            case "USA02157":
                MaxAllowed = 2;
                break;
            }


            decimal DecAllowed = Convert.ToDecimal(AllowedRegister);

            if (DecAllowed + 1 > MaxAllowed)
            {
                DecAllowed = 1;
            }
            else
            {
                DecAllowed = DecAllowed + 1;
            }

            AllowedRegister = DecAllowed.ToString();

            // Write out new allowed register
            using (System.IO.StreamWriter RegisterScenarioFilePut = new System.IO.StreamWriter(Global.Register1DriveLetter + @":\" + Global.AutomationFileDirectory + @"\" + FileToUse))
            {
                RegisterScenarioFilePut.WriteLine(AllowedRegister);
                RegisterScenarioFilePut.Close();
            }

            Thread.Sleep(2000);

            // ***********End Scenario 38*****************
        }
Example #26
0
        public void Run()
        {       //**************Start  Scenario 50 - Prepare for Performacne Dashboard test **********************
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            RanorexRepository           repo                      = new RanorexRepository();
            fnWriteToLogFile            WriteToLogFile            = new fnWriteToLogFile();
            fnWaitForItemSearchToFinish WaitForItemSearchToFinish = new fnWaitForItemSearchToFinish();
            fnDumpStatsQ4            DumpStatsQ4                  = new fnDumpStatsQ4();
            fnTimeMinusOverhead      TimeMinusOverhead            = new fnTimeMinusOverhead();
            fnUpdatePALStatusMonitor UpdatePALStatusMonitor       = new fnUpdatePALStatusMonitor();
            FnWriteOutStatsQ4Buffer  WriteOutStatsQ4Buffer        = new FnWriteOutStatsQ4Buffer();

            //Ranorex.Unknown element = null;
            Global.AbortScenario = false;

            Global.CurrentScenario = 50;

            if (!Global.DoScenarioFlag[Global.CurrentScenario])
            {
                return;
            }

            Global.ScenarioExecuted = true;

            // Backoffice
            fnDoScenario13 DoScenario13 = new fnDoScenario13();
            fnDoScenario14 DoScenario14 = new fnDoScenario14();
            fnDoScenario15 DoScenario15 = new fnDoScenario15();
            fnDoScenario16 DoScenario16 = new fnDoScenario16();
            fnDoScenario18 DoScenario18 = new fnDoScenario18();
            fnDoScenario19 DoScenario19 = new fnDoScenario19();
            fnDoScenario20 DoScenario20 = new fnDoScenario20();
            fnDoScenario21 DoScenario21 = new fnDoScenario21();

            // Retech
            fnDoScenario33 DoScenario33 = new fnDoScenario33();
            fnDoScenario34 DoScenario34 = new fnDoScenario34();
            fnDoScenario36 DoScenario36 = new fnDoScenario36();
            fnDoScenario37 DoScenario37 = new fnDoScenario37();
            fnDoScenario47 DoScenario47 = new fnDoScenario47();

            for (Global.CurrentIteration = 1; Global.CurrentIteration <= 5; Global.CurrentIteration++)
            {
                // Back Office
                //InitScenarioStart(); Global.IndirectCall = true; DoScenario13.Run(); EndScenarioCleanup();
                //InitScenarioStart(); Global.IndirectCall = true; DoScenario18.Run(); EndScenarioCleanup();
                //InitScenarioStart(); Global.IndirectCall = true; DoScenario19.Run(); EndScenarioCleanup();
                //InitScenarioStart(); Global.IndirectCall = true; DoScenario20.Run(); EndScenarioCleanup();

                // ReTech
                //InitScenarioStart(); Global.IndirectCall = true; DoScenario16.Run(); EndScenarioCleanup();
                //InitScenarioStart(); Global.IndirectCall = true; DoScenario33.Run(); EndScenarioCleanup();
                //InitScenarioStart(); Global.IndirectCall = true; DoScenario34.Run(); EndScenarioCleanup();
                //InitScenarioStart(); Global.IndirectCall = true; DoScenario36.Run(); EndScenarioCleanup();
                //InitScenarioStart(); Global.IndirectCall = true; DoScenario47.Run(); EndScenarioCleanup();

                // Additional special data
                //Global.CurrentSKUOverideValue = "924089";  // Preowned
                //InitScenarioStart(); Global.IndirectCall = true; Global.CurrentSKUOveride = true; DoScenario33.Run(); EndScenarioCleanup();

                Global.CurrentSKUOverideValue            = "121407";       // Collectible
                InitScenarioStart(); Global.IndirectCall = true; Global.CurrentSKUOveride = true; Global.DoingCollectible = true; DoScenario33.Run(); EndScenarioCleanup();
            }



            Global.LogText = "<--- fnDoScenario50 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 50 OUT", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            //***********End Scenario 50 ***************
        }
Example #27
0
        public void Run()
        {
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            Ranorex.Unknown element = null;

            RanorexRepository   repo              = new RanorexRepository();
            fnWriteToLogFile    WriteToLogFile    = new fnWriteToLogFile();
            fnTimeMinusOverhead TimeMinusOverhead = new fnTimeMinusOverhead();
            fnDumpStatsQ4       DumpStatsQ4       = new fnDumpStatsQ4();
            fnWriteToErrorFile  WriteToErrorFile  = new fnWriteToErrorFile();

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();

            Stopwatch MystopwatchQ4          = new Stopwatch();
            Stopwatch MystopwatchModuleTotal = new Stopwatch();

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            Global.LogText = @"Start Transaction";
            WriteToLogFile.Run();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            bool StatsWritten = false;

            if (Global.DomesticRegister)
            {
                Global.LogText = @"Clicking on ReTech screen then press F5";
                WriteToLogFile.Run();
                repo.ReTechStartTransaction.PressKeys("{F5}");
                Thread.Sleep(100);

                if (Host.Local.TryFindSingle(repo.GenericDialogView.CriticalErrorSavingTransactionCallHInfo.AbsolutePath.ToString(), out element))
                {
                    repo.GenericDialogView.ErrorSavingButtonOK.Click();
                    Thread.Sleep(200);
                    Global.TempErrorString = "Error Saving Transaction";
                    WriteToErrorFile.Run();
                    Global.LogText = Global.TempErrorString;
                    WriteToLogFile.Run();
                }

                Global.LogText = @"Waiting for logon";
                WriteToLogFile.Run();
                while (!Host.Local.TryFindSingle(repo.RetechLoginView.TxtPasswordInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(200);
                    float MetricTimeDiv1000 = MystopwatchQ4.ElapsedMilliseconds / 1000;
                    if (MetricTimeDiv1000 > 20.0 && !StatsWritten)
                    {
                        StatsWritten   = true;
                        Global.LogText = @"Process Stats captured waiting for TryFindSingle([F5] Start Transaction TryFindSingle(repo.RetechLoginView.TxtPassword";
                        WriteToLogFile.Run();

                        // Write out Tasklist to file in C:\PAL\Reports String.Empty
                        string TimeStampPart = System.DateTime.Now.ToString();
                        TimeStampPart = Regex.Replace(TimeStampPart, @"[/]", "");
                        TimeStampPart = Regex.Replace(TimeStampPart, @"[:]", "");
                        TimeStampPart = Regex.Replace(TimeStampPart, @"[ ]", "");
                        TimeStampPart = "_" + TimeStampPart;
                        string FullCsvFilename = Global.RegisterName;
                        FullCsvFilename = Regex.Replace(FullCsvFilename, @"[-]", "R");
                        FullCsvFilename = Regex.Replace(FullCsvFilename, @"[(]", "_");
                        FullCsvFilename = Regex.Replace(FullCsvFilename, @"[)]", "_");
                        string CsvFilename = FullCsvFilename + TimeStampPart;
                        FullCsvFilename = FullCsvFilename + TimeStampPart + "_F5_Start_Transaction_pressed_waiting_for_while(!Host.Local.TryFindSingle(repo.RetechLoginView.TxtPassword...)";

                        var proc = new Process
                        {
                            StartInfo = new ProcessStartInfo
                            {
                                FileName               = Global.Register1DriveLetter + @":\PAL\Reports\GetTaskList.bat",
                                Arguments              = FullCsvFilename,
                                UseShellExecute        = false,
                                RedirectStandardOutput = true,
                                CreateNoWindow         = true,
                                WorkingDirectory       = Global.Register1DriveLetter + @":\PAL\Reports\"
                            }
                        };

                        proc.Start();


                        var proc2 = new Process
                        {
                            StartInfo = new ProcessStartInfo
                            {
                                FileName               = Global.Register1DriveLetter + @":\PAL\Reports\CPU.bat",
                                Arguments              = CsvFilename,
                                UseShellExecute        = false,
                                RedirectStandardOutput = true,
                                CreateNoWindow         = true,
                                WorkingDirectory       = Global.Register1DriveLetter + @":\PAL\Reports\"
                            }
                        };

                        proc2.Start();
                    }

                    if (Host.Local.TryFindSingle(repo.GenericDialogView.CriticalErrorSavingTransactionCallHInfo.AbsolutePath.ToString(), out element))
                    {
                        repo.GenericDialogView.ErrorSavingButtonOK.Click();
                        Thread.Sleep(200);
                        Global.TempErrorString = "Error Saving Transaction";
                        WriteToErrorFile.Run();
                        Global.LogText = Global.TempErrorString;
                        WriteToLogFile.Run();
                    }
                }
            }
            else
            {
                // Click on F5 POS Register - international
                //repo.IPOSScreen.ContainerF7BackOffice.Click("32;55");
                repo.IPOSScreen.Self.Click();
                Delay.Milliseconds(200);
                Keyboard.Press("{F5}");

                while (!repo.LogOn.InternationalLoginID.Enabled)
                {
                    Thread.Sleep(100);
                }

                repo.LogOn.InternationalLoginID.PressKeys("psu");
            }
            Global.TempFloat = (float)MystopwatchQ4.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"[F5] Start Transaction";
            Global.Module = "Log On";
            DumpStatsQ4.Run();

            // Enter Password
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
            StatsWritten = false;

            if (Global.DomesticRegister)
            {
                Global.LogText = @"Waiting for Password field to appear";
                WriteToLogFile.Run();

                while (!Host.Local.TryFindSingle(repo.ReTechLogonPasswordInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                    float MetricTimeDiv1000 = MystopwatchQ4.ElapsedMilliseconds / 1000;
                    if (MetricTimeDiv1000 > 20.0 && !StatsWritten)
                    {
                        StatsWritten   = true;
                        Global.LogText = @"Process Stats captured waiting for (!Host.Local.TryFindSingle(repo.ReTechLogonPassword...";
                        WriteToLogFile.Run();

                        // Write out Tasklist to file in C:\PAL\Reports String.Empty
                        string TimeStampPart = System.DateTime.Now.ToString();
                        TimeStampPart = Regex.Replace(TimeStampPart, @"[/]", "");
                        TimeStampPart = Regex.Replace(TimeStampPart, @"[:]", "");
                        TimeStampPart = Regex.Replace(TimeStampPart, @"[ ]", "");
                        TimeStampPart = "_" + TimeStampPart;
                        string FullCsvFilename = Global.RegisterName;
                        FullCsvFilename = Regex.Replace(FullCsvFilename, @"[-]", "R");
                        FullCsvFilename = Regex.Replace(FullCsvFilename, @"[(]", "_");
                        FullCsvFilename = Regex.Replace(FullCsvFilename, @"[)]", "_");
                        string CsvFilename = FullCsvFilename + TimeStampPart;
                        FullCsvFilename = FullCsvFilename + TimeStampPart + "_waiting_for_(!Host.Local.TryFindSingle(repo.ReTechLogonPassword...)";

                        var proc = new Process
                        {
                            StartInfo = new ProcessStartInfo
                            {
                                FileName               = Global.Register1DriveLetter + @":\PAL\Reports\GetTaskList.bat",
                                Arguments              = FullCsvFilename,
                                UseShellExecute        = false,
                                RedirectStandardOutput = true,
                                CreateNoWindow         = true,
                                WorkingDirectory       = Global.Register1DriveLetter + @":\PAL\Reports\"
                            }
                        };

                        proc.Start();

                        var proc2 = new Process
                        {
                            StartInfo = new ProcessStartInfo
                            {
                                FileName               = Global.Register1DriveLetter + @":\PAL\Reports\CPU.bat",
                                Arguments              = CsvFilename,
                                UseShellExecute        = false,
                                RedirectStandardOutput = true,
                                CreateNoWindow         = true,
                                WorkingDirectory       = Global.Register1DriveLetter + @":\PAL\Reports\"
                            }
                        };

                        proc2.Start();
                    }
                }

                Global.LogText = @"Waiting for Password field to be enabled";
                WriteToLogFile.Run();
                while (!repo.ReTechLogonPassword.Enabled)
                {
                    Thread.Sleep(100);
                    float MetricTimeDiv1000 = MystopwatchQ4.ElapsedMilliseconds / 1000;
                    if (MetricTimeDiv1000 > 20.0 && !StatsWritten)
                    {
                        StatsWritten   = true;
                        Global.LogText = @"Process Stats captured waiting for repo.ReTechLogonPassword.Enabled";
                        WriteToLogFile.Run();

                        // Write out Tasklist to file in C:\PAL\Reports String.Empty
                        string TimeStampPart = System.DateTime.Now.ToString();
                        TimeStampPart = Regex.Replace(TimeStampPart, @"[/]", "");
                        TimeStampPart = Regex.Replace(TimeStampPart, @"[:]", "");
                        TimeStampPart = Regex.Replace(TimeStampPart, @"[ ]", "");
                        TimeStampPart = "_" + TimeStampPart;
                        string FullCsvFilename = Global.RegisterName;
                        FullCsvFilename = Regex.Replace(FullCsvFilename, @"[-]", "R");
                        FullCsvFilename = Regex.Replace(FullCsvFilename, @"[(]", "_");
                        FullCsvFilename = Regex.Replace(FullCsvFilename, @"[)]", "_");
                        string CsvFilename = FullCsvFilename + TimeStampPart;
                        FullCsvFilename = FullCsvFilename + TimeStampPart + "_waiting_for_while(!repo.ReTechLogonPassword.Enabled)";

                        var proc = new Process
                        {
                            StartInfo = new ProcessStartInfo
                            {
                                FileName               = Global.Register1DriveLetter + @":\PAL\Reports\GetTaskList.bat",
                                Arguments              = FullCsvFilename,
                                UseShellExecute        = false,
                                RedirectStandardOutput = true,
                                CreateNoWindow         = true,
                                WorkingDirectory       = Global.Register1DriveLetter + @":\PAL\Reports\"
                            }
                        };

                        proc.Start();

                        var proc2 = new Process
                        {
                            StartInfo = new ProcessStartInfo
                            {
                                FileName               = Global.Register1DriveLetter + @":\PAL\Reports\CPU.bat",
                                Arguments              = CsvFilename,
                                UseShellExecute        = false,
                                RedirectStandardOutput = true,
                                CreateNoWindow         = true,
                                WorkingDirectory       = Global.Register1DriveLetter + @":\PAL\Reports\"
                            }
                        };

                        proc2.Start();
                    }
                }
                Global.LogText = @"Entering password";
                WriteToLogFile.Run();
                repo.RetechLoginView.TxtPassword.PressKeys("advanced{Return}");
                Global.LogText = @"Password entered - wating for Add Line F1";
                WriteToLogFile.Run();
                Thread.Sleep(500);


                // ############################################################
                // If login takes longer than 20 seconds write out process stats
                while (!Host.Local.TryFindSingle(repo.AddLineItemCommandInfo.AbsolutePath.ToString(), 1000, out element))
                {
                    Thread.Sleep(200);
                    float MetricTimeDiv1000 = MystopwatchQ4.ElapsedMilliseconds / 1000;
                    if (MetricTimeDiv1000 > 20.0 && !StatsWritten)
                    {
                        StatsWritten   = true;
                        Global.LogText = @"Process Stats captured waiting for TryFindSingle(repo.AddLineItemCommandInfo";
                        WriteToLogFile.Run();

                        // Write out Tasklist to file in C:\PAL\Reports String.Empty
                        string TimeStampPart = System.DateTime.Now.ToString();
                        TimeStampPart = Regex.Replace(TimeStampPart, @"[/]", "");
                        TimeStampPart = Regex.Replace(TimeStampPart, @"[:]", "");
                        TimeStampPart = Regex.Replace(TimeStampPart, @"[ ]", "");
                        TimeStampPart = "_" + TimeStampPart;
                        string FullCsvFilename = Global.RegisterName;
                        FullCsvFilename = Regex.Replace(FullCsvFilename, @"[-]", "R");
                        FullCsvFilename = Regex.Replace(FullCsvFilename, @"[(]", "_");
                        FullCsvFilename = Regex.Replace(FullCsvFilename, @"[)]", "_");
                        string CsvFilename = FullCsvFilename + TimeStampPart;
                        FullCsvFilename = FullCsvFilename + TimeStampPart + "_waiting_for_while(!Host.Local.TryFindSingle(repo.AddLineItemCommand...)";

                        var proc = new Process
                        {
                            StartInfo = new ProcessStartInfo
                            {
                                FileName               = Global.Register1DriveLetter + @":\PAL\Reports\GetTaskList.bat",
                                Arguments              = FullCsvFilename,
                                UseShellExecute        = false,
                                RedirectStandardOutput = true,
                                CreateNoWindow         = true,
                                WorkingDirectory       = Global.Register1DriveLetter + @":\PAL\Reports\"
                            }
                        };

                        proc.Start();

                        var proc2 = new Process
                        {
                            StartInfo = new ProcessStartInfo
                            {
                                FileName               = Global.Register1DriveLetter + @":\PAL\Reports\CPU.bat",
                                Arguments              = CsvFilename,
                                UseShellExecute        = false,
                                RedirectStandardOutput = true,
                                CreateNoWindow         = true,
                                WorkingDirectory       = Global.Register1DriveLetter + @":\PAL\Reports\"
                            }
                        };

                        proc2.Start();
                    }
                }


                Global.LogText = @"Wating for Add Line F1 - waiting till Enabled";
                WriteToLogFile.Run();
                while (!repo.AddLineItemCommand.Enabled)
                {
                    Thread.Sleep(200);
                    float MetricTimeDiv1000 = MystopwatchQ4.ElapsedMilliseconds / 1000;
                    if (MetricTimeDiv1000 > 20.0 && !StatsWritten)
                    {
                        StatsWritten   = true;
                        Global.LogText = @"Process Stats captured waiting for TryFindSingle(repo.AddLineItemCommand.Enabled";
                        WriteToLogFile.Run();

                        // Write out Tasklist to file in C:\PAL\Reports String.Empty
                        string TimeStampPart = System.DateTime.Now.ToString();
                        TimeStampPart = Regex.Replace(TimeStampPart, @"[/]", "");
                        TimeStampPart = Regex.Replace(TimeStampPart, @"[:]", "");
                        TimeStampPart = Regex.Replace(TimeStampPart, @"[ ]", "");
                        TimeStampPart = "_" + TimeStampPart;
                        string FullCsvFilename = Global.RegisterName;
                        FullCsvFilename = Regex.Replace(FullCsvFilename, @"[-]", "R");
                        FullCsvFilename = Regex.Replace(FullCsvFilename, @"[(]", "_");
                        FullCsvFilename = Regex.Replace(FullCsvFilename, @"[)]", "_");
                        string CsvFilename = FullCsvFilename + TimeStampPart;
                        FullCsvFilename = FullCsvFilename + TimeStampPart + "_waiting_for_while(!repo.AddLineItemCommand.Enabled)";

                        var proc = new Process
                        {
                            StartInfo = new ProcessStartInfo
                            {
                                FileName               = Global.Register1DriveLetter + @":\PAL\Reports\GetTaskList.bat",
                                Arguments              = FullCsvFilename,
                                UseShellExecute        = false,
                                RedirectStandardOutput = true,
                                CreateNoWindow         = true,
                                WorkingDirectory       = Global.Register1DriveLetter + @":\PAL\Reports\"
                            }
                        };

                        proc.Start();

                        var proc2 = new Process
                        {
                            StartInfo = new ProcessStartInfo
                            {
                                FileName               = Global.Register1DriveLetter + @":\PAL\Reports\CPU.bat",
                                Arguments              = CsvFilename,
                                UseShellExecute        = false,
                                RedirectStandardOutput = true,
                                CreateNoWindow         = true,
                                WorkingDirectory       = Global.Register1DriveLetter + @":\PAL\Reports\"
                            }
                        };

                        proc2.Start();
                    }
                    if (Host.Local.TryFindSingle(repo.ContinueButtonCommandInfo.AbsolutePath.ToString(), out element))
                    {
                        repo.ContinueButtonCommand.Click();
                        Thread.Sleep(200);
                    }
                }
                Global.LogText = @"Add Line F1 - found enabled";
                WriteToLogFile.Run();

                // If Customer Info then just skip by continue
                if (Host.Local.TryFindSingle(repo.Retech.ContinueButtonCommand2Info.AbsolutePath.ToString(), out element))
                {
                    repo.Retech.ContinueButtonCommand2.Click();
                    Thread.Sleep(100);
                }
            }
            else
            {              // International
                repo.LogOn.InternationalPassword.PressKeys("advanced{Return}");
                //while(!repo.ReservationDeposit.EnterSerialNumber.Enabled)
                //{	Thread.Sleep(100);	}
                //repo.ReservationDeposit.EnterSerialNumber.PressKeys("{Escape}");
                //repo.FormPOS.Self.PressKeys("{Escape}");
                Thread.Sleep(100);
                repo.NotEnrolledEsc.Click();
                Thread.Sleep(100);
            }

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Enter Password";
            Global.Module = "Log On";
            DumpStatsQ4.Run();

            TimeMinusOverhead.Run((float)MystopwatchModuleTotal.ElapsedMilliseconds);   // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Module Total Time";
            Global.Module = "Log On";
            DumpStatsQ4.Run();
        }
Example #28
0
        public void Run()
        {       //*****************Start  Scenario 16 - Retech - Returns ******************
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            Ranorex.Unknown element = null;
            Global.AbortScenario = false;

            // Uses same SKU and Customer for Scenarios 3, 4, and 5

            RanorexRepository        repo = new RanorexRepository();
            fnTimeMinusOverhead      TimeMinusOverhead      = new fnTimeMinusOverhead();
            fnDumpStatsQ4            DumpStatsQ4            = new fnDumpStatsQ4();
            fnWriteToLogFile         WriteToLogFile         = new fnWriteToLogFile();
            fnWriteToErrorFile       WriteToErrorFile       = new fnWriteToErrorFile();
            FnWriteOutStatsQ4Buffer  WriteOutStatsQ4Buffer  = new FnWriteOutStatsQ4Buffer();
            fnUpdatePALStatusMonitor UpdatePALStatusMonitor = new fnUpdatePALStatusMonitor();
            FnCheckout         Checkout         = new FnCheckout();
            FnStartTransaction StartTransaction = new FnStartTransaction();
            FnEnterSKU         EnterSKU         = new FnEnterSKU();

            Global.CurrentScenario = 16;

            if (!Global.IndirectCall)
            {
                if (!Global.DoScenarioFlag[Global.CurrentScenario])
                {
                    return;
                }
            }

            Global.ScenarioExecuted = true;

            Global.RetechScenariosPerformed++;
            UpdatePALStatusMonitor.Run();

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();

            Stopwatch MystopwatchF1 = new Stopwatch();

            Stopwatch MystopwatchTotal = new Stopwatch();

            MystopwatchTotal.Reset();
            MystopwatchTotal.Start();
            Stopwatch MystopwatchQ4          = new Stopwatch();
            Stopwatch MystopwatchModuleTotal = new Stopwatch();

            Global.LogText = @"---> fnDoScenario16 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 16 IN", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            // Start

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            StartTransaction.Run();

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            Global.LogText = @"Add Item";
            WriteToLogFile.Run();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            if (Global.DomesticRegister)
            {
                // Press F1 add item
                Keyboard.Press("{F1}");
                MystopwatchF1.Reset();
                MystopwatchF1.Start();
                while (!Host.Local.TryFindSingle(repo.AddItemTextInfo.AbsolutePath.ToString(), out element))
                {
                    Thread.Sleep(100);
                }
                TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);                   // Subtract overhead and store in Global.Q4StatLine
                Global.CurrentMetricDesciption = "[F1] wait for add item";
                Global.Module = "F1 Add Item";
                DumpStatsQ4.Run();
                Global.CurrentMetricDesciption = "Module Total Time";
                DumpStatsQ4.Run();
            }
            else
            {
                repo.IPOSScreen.Self.Click();
            }

            Global.CurrentSKU = Global.S17Trade5;
            EnterSKU.Run();

// 8-1-18			var activityRoot = repo.Retech.ActivityRoot;

            // Press returns
            if (Global.DomesticRegister)
            {
//				while(!repo.Retech.ReturnsF4.Enabled) // 7-23-18
//					{	Thread.Sleep(100); }
//				repo.Retech.ReturnsF4.Click();
                Keyboard.Press("{F4}");
                Thread.Sleep(100);
            }
            else                                                            // International
            {
                repo.IPOSInternationalEnterSKUField.Text.PressKeys("{F3}"); // Returns
                //	while(!repo.FormPOS1.ReturnSKuField.Enabled) // 3/25/19
                while (!repo.CodeF4Password.Enabled)
                {
                    Thread.Sleep(100);
                }
            }

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            for (int RetNum = 1; RetNum <= 5; RetNum++)
            {
                if (Global.DomesticRegister)
                {
                    // select add item and add the SKU
                    while (!repo.AddLineItemCommand.Enabled)
                    {
                        Thread.Sleep(100);
                    }
                    Thread.Sleep(100);
                    // repo.AddLineItemCommand.Click(); 1-21-19
                    Keyboard.Press("{F1}");
                    Thread.Sleep(100);
                    repo.AddItemText.TextValue = Global.S4Sku1;
                    Keyboard.Press("{Enter}");

                    // Select Defective for retrun reason
                    //repo.ReturnReason.Click();  1-21-19
                    repo.ShellView.Rectangle.Click();
                    Thread.Sleep(200);
                    //repo.Defective.Click();  1-21-19
                    repo.Source.Defective.Click();
                    Thread.Sleep(100);

                    //Click on Scan or select receipt and select no receipt
                    repo.Retech.SelectReceipt.Click();
                    Thread.Sleep(100);
                    repo.Retech.NoReceiptAvailableCommand.Click();
                    Thread.Sleep(200);

                    // Press F5 continue
                    Keyboard.Press("{F5}");
                }
                else                // International
                {
                    while (!repo.CodeF4Password.Visible)
                    {
                        Thread.Sleep(100);
                    }

                    repo.CodeF4Password.Click("72;8");
                    Delay.Milliseconds(200);

                    repo.CodeF4Password.PressKeys("238325{Return}");

                    Keyboard.Press("n{Return}");

                    Keyboard.Press("{F5}");

                    Keyboard.Press("{F12}");

//					repo.InternationalReturnSKUField.TextValue = "238325";	// Enter SKU to return
//					repo.InternationalReturnSKUField.PressKeys("{Return}");
//
//					repo.ItemSearch.Self.PressKeys("n");	// no box not opened
//					while(!repo.ItemSearch.Self.Enabled) Thread.Sleep(100);
//					repo.ItemSearch.Self.PressKeys("{Return}"); // return defective
//					while(!repo.ItemSearch.Self.Enabled) Thread.Sleep(100);
//					repo.ItemSearch.Self.PressKeys("{F5}");		// no receipt
//					while(!repo.ItemSearch.Self.Enabled) Thread.Sleep(100);
//					repo.ItemSearch.Self.PressKeys("{F12}");	// OK
//					while(!repo.ItemSearch.Self.Enabled) Thread.Sleep(100);
                }
            }

            if (!Global.DomesticRegister)                       // if international to final apply for returns
            {
                Keyboard.Press("{F12}");
            }

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Enter 5 Returns";
            Global.Module = "Returns";
            DumpStatsQ4.Run();

            Global.CurrentMetricDesciption = "Module Total Time";
            DumpStatsQ4.Run();


            // @#@#@# C H E C K O U T #@#@#@
            Global.PayWithMethod = "Cash";
            Checkout.Run();

            TimeMinusOverhead.Run((float)MystopwatchTT.ElapsedMilliseconds);   // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Scenario 16";
            Global.Module = "Total Time";
            DumpStatsQ4.Run();

            // Write out metrics buffer
            WriteOutStatsQ4Buffer.Run();

            Global.LogText = "<--- fnDoScenario16 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 16 OUT", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            Thread.Sleep(2000);

            // ***********End Scenario 16*****************
        }
        public void Run()
        {       //*****************Start  Scenario 35 - Retech - Simple One SKU pay with PURCC ******************
            Mouse.DefaultMoveTime        = 300;
            Keyboard.DefaultKeyPressTime = 100;
            Delay.SpeedFactor            = 1.0;

            Ranorex.Unknown element = null;
            Global.AbortScenario = false;

            // Uses same SKU and Customer for Scenarios 3, 4, and 5

            RanorexRepository        repo = new RanorexRepository();
            fnTimeMinusOverhead      TimeMinusOverhead      = new fnTimeMinusOverhead();
            fnDumpStatsQ4            DumpStatsQ4            = new fnDumpStatsQ4();
            fnWriteToLogFile         WriteToLogFile         = new fnWriteToLogFile();
            FnWriteOutStatsQ4Buffer  WriteOutStatsQ4Buffer  = new FnWriteOutStatsQ4Buffer();
            fnUpdatePALStatusMonitor UpdatePALStatusMonitor = new fnUpdatePALStatusMonitor();
            FnCheckout         Checkout         = new FnCheckout();
            fnWriteToErrorFile WriteToErrorFile = new fnWriteToErrorFile();
            FnEnterSKU         EnterSKU         = new FnEnterSKU();

            Global.CurrentScenario = 35;

            if (!Global.DoScenarioFlag[Global.CurrentScenario])
//            if(Global.CurrentScenario != 9999)
            {
                return;
            }

            Global.RetechScenariosPerformed++;
            UpdatePALStatusMonitor.Run();

            // Create new stopwatch
            Stopwatch MystopwatchTT = new Stopwatch();

            MystopwatchTT.Reset();
            MystopwatchTT.Start();

            Stopwatch MystopwatchTotal = new Stopwatch();

            MystopwatchTotal.Reset();
            MystopwatchTotal.Start();
            Stopwatch MystopwatchQ4          = new Stopwatch();
            Stopwatch MystopwatchModuleTotal = new Stopwatch();
            Stopwatch MystopwatchF1          = new Stopwatch();

            Global.LogText = @"---> fnDoScenario35 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 35 IN", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            // Start

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            Global.LogText = @"Start Transaction";
            WriteToLogFile.Run();

            // Click on start a transaction
            while (!Host.Local.TryFindSingle(repo.Retech.StartATransactionInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
            }
            repo.Retech.StartATransaction.Click();
            if (Host.Local.TryFindSingle(repo.GenericDialogView.CriticalErrorSavingTransactionCallHInfo.AbsolutePath.ToString(), out element))
            {
                repo.GenericDialogView.ErrorSavingButtonOK.Click();
                Thread.Sleep(200);
                Global.TempErrorString = "Error Saving Transaction";
                WriteToErrorFile.Run();
                Global.LogText = Global.TempErrorString;
                WriteToLogFile.Run();
            }
            MystopwatchF1.Reset();
            MystopwatchF1.Start();
            while (!Host.Local.TryFindSingle(repo.RetechLoginView.TxtPasswordInfo.AbsolutePath.ToString(), out element))
            {
                Thread.Sleep(100);
                if (MystopwatchF1.ElapsedMilliseconds > 1500)
                {
                    repo.Retech.StartATransaction.Click();
                    MystopwatchF1.Reset();
                    MystopwatchF1.Start();
                }
            }
            Global.TempFloat = (float)MystopwatchQ4.ElapsedMilliseconds / 1000;
            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"[F5] Start Transaction";
            Global.Module = "Log On";
            DumpStatsQ4.Run();

            // Enter Password
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();
//            if(repo.RetechLoginView.UserId.TextValue == "")
//            {
//              repo.RetechLoginView.UserId.TextValue = "PSU";
//            }
            repo.RetechLoginView.TxtPassword.PressKeys("advanced{Return}");

            switch (Global.RetechVersion.Substring(0, 3))
            {
            case "5.6":
                while (!repo.Retech.LetsGetStarted_5_6_0_103.Visible)
                {
                    Thread.Sleep(100);
                }
                break;

            case "5.7":
                while (!repo.AddLineItemCommand.Enabled)
                {
                    Thread.Sleep(100);
                }
                break;

            default:
                while (!repo.AddLineItemCommand.Enabled)
                {
                    if (Host.Local.TryFindSingle(repo.ContinueButtonCommandInfo.AbsolutePath.ToString(), out element))
                    {
                        repo.ContinueButtonCommand.Click();
                    }
                    Thread.Sleep(100);
                }
                break;
            }

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Enter Password";
            Global.Module = "Log On";
            DumpStatsQ4.Run();

            TimeMinusOverhead.Run((float)MystopwatchModuleTotal.ElapsedMilliseconds);   // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Module Total Time";
            Global.Module = "Log On";
            DumpStatsQ4.Run();

            MystopwatchModuleTotal.Reset();
            MystopwatchModuleTotal.Start();

            Global.LogText = @"Add Item";
            WriteToLogFile.Run();

            // Press F1 add item
            Keyboard.Press("{F1}");
            while (!repo.AddItemText.Enabled)
            {
                Thread.Sleep(100);
            }
            // Enter SKU
            Global.CurrentSKU = Global.S4Sku1;
            EnterSKU.Run();

            // Press F1 add item
            Keyboard.Press("{F1}");
            while (!repo.AddItemText.Enabled)
            {
                Thread.Sleep(100);
            }
            // Enter SKU cost 1 penny
            Global.CurrentSKU = "644917";
            EnterSKU.Run();

            // Return the SKU
            MystopwatchQ4.Reset();
            MystopwatchQ4.Start();

            // Press returns
            repo.Retech.ReturnsF4.Click();
            Thread.Sleep(100);

            // select add item and add the SKU
            repo.AddLineItemCommand.Click();
            //Thread.Sleep(100);
            repo.AddItemText.TextValue = Global.S4Sku1;
            Keyboard.Press("{Enter}");

            // Select Defective for retrun reason
            repo.ReturnReason.Click("246;16");
            repo.Retech.ListItemGameStopOESOrdersItemsRetur.Click("153;6");
            repo.ReturnReason.PressKeys("{LControlKey down}{LMenu down}");
            repo.ReturnReason.PressKeys("{LMenu up}{LControlKey up}");
            repo.Retech.DataContextShowCheckoutViewCommand.Click("93;62");
            repo.Retech.DataContextShowCheckoutViewCommand.Click("95;56");

            //Click on Scan or select receipt and select no receipt
            repo.Retech.SelectReceipt.Click("369;20");
            repo.Retech.NoReceiptAvailableCommand.Click("265;11");
            repo.Retech.SelectReceipt.PressKeys("{LControlKey down}{LMenu down}");
            repo.Retech.SelectReceipt.PressKeys("{LControlKey up}{LMenu up}");

            // Press F5 continue
            Keyboard.Press("{F5}");

            TimeMinusOverhead.Run((float)MystopwatchQ4.ElapsedMilliseconds);               // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = "Enter Return";
            Global.Module = "Add Return";
            DumpStatsQ4.Run();


            // @#@#@# C H E C K O U T #@#@#@
            Global.PayWithMethod = "PURCC";
            Checkout.Run();

            TimeMinusOverhead.Run((float)MystopwatchTT.ElapsedMilliseconds);   // Subtract overhead and store in Global.Q4StatLine
            Global.CurrentMetricDesciption = @"Scenario 35";
            Global.Module = "Total Time";
            DumpStatsQ4.Run();

            // Write out metrics buffer
            WriteOutStatsQ4Buffer.Run();

            Global.LogText = "<--- fnDoScenario35 Iteration: " + Global.CurrentIteration;
            WriteToLogFile.Run();
            Report.Log(ReportLevel.Info, "Scenario 35 OUT", "Iteration: " + Global.CurrentIteration, new RecordItemIndex(0));

            Thread.Sleep(2000);

            // ***********End Scenario 35*****************
        }