Example #1
0
        public void RecommendationProposalDecisionProtocolExtractLetterCaseParty()
        {
            // TC#77817
            // TC#74091
            // TC#75690

            #region ---- Variable Declaration ----

            #region Variables
            GlobalVariables.RoleType       = " Secretary of the Board - Eng ";
            GlobalVariables.MeetingTabName = "Documents";
            GlobalVariables.ProcessName    = "Kommunestyret";
            GlobalVariables.MeetingType    = "Kommunestyret";
            string proposerName     = "Jarle Trydal";
            string installingText   = "This is Installing Text";
            string oppsummeringText = "This is Oppsummering Text";
            string caseNumber       = string.Empty;
            string caseTitle        = string.Empty;
            string actualVal        = string.Empty;
            #endregion

            #region Date & Time
            var    time                                       = DateTime.Now; //12.02.2018 07:04:05   4:25 5:00
            var    secondTime                                 = time.AddHours(1).AddMinutes(23);
            var    secondTime2                                = time.AddHours(2).AddMinutes(52);
            var    secondTime3                                = time.AddHours(3).AddMinutes(52);
            var    secondTime4                                = time.AddHours(4).AddMinutes(52);
            var    firstTime                                  = time.AddMinutes(13);
            string meetingStartTimeAndDate                    = firstTime.ToString("dd.MM.yyyy HH:mm");
            string meetingEndTimeAndDate                      = secondTime.ToString("dd.MM.yyyy HH:mm");
            string meetingEndTimeAndDateForNoNumber           = secondTime2.ToString("dd.MM.yyyy HH:mm");
            string meetingEndTimeAndDateForJustThisMeeting    = secondTime3.ToString("dd.MM.yyyy HH:mm");
            string meetingEndTimeAndDateFromSubsequentMeeting = secondTime4.ToString("dd.MM.yyyy HH:mm");
            string myMeetingTiming                            = firstTime.ToString("HH.mm") + " - " + secondTime.ToString("HH.mm");
            string myMeetingTimingWithoutEndTime              = firstTime.ToString("HH.mm") + " - ";
            string myMeetingTimingForNoNumber                 = firstTime.ToString("HH.mm") + " - " + secondTime2.ToString("HH.mm");
            string myMeetingTimingJustThisMeeting             = firstTime.ToString("HH.mm") + " - " + secondTime3.ToString("HH.mm");
            string myMeetingTimingFromSubsequentMeeting       = firstTime.ToString("HH.mm") + " - " + secondTime4.ToString("HH.mm");
            string dateInSaksProtokoll                        = time.ToString("dd/yyyy");

            string dateofMonth = time.ToString("dd");
            switch (dateofMonth)
            {
            case "01":
                dateofMonth = 1.ToString();
                break;

            case "02":
                dateofMonth = 2.ToString();
                break;

            case "03":
                dateofMonth = 3.ToString();
                break;

            case "04":
                dateofMonth = 4.ToString();
                break;

            case "05":
                dateofMonth = 5.ToString();
                break;

            case "06":
                dateofMonth = 6.ToString();
                break;

            case "07":
                dateofMonth = 7.ToString();
                break;

            case "08":
                dateofMonth = 8.ToString();
                break;

            case "09":
                dateofMonth = 9.ToString();
                break;
            }

            string meetingStartTime = time.ToString("HH:mm"); //13:25
            //AdminCommon.Document.DocumentHelpers DocumentHelpers = new AdminCommon.Document.DocumentHelpers();
            string dayOfWeek = time.DayOfWeek.ToString();
            string day       = null;
            switch (dayOfWeek)
            {
            case "Monday":
                day = "mon";
                break;

            case "Tuesday":
                day = "tue";
                break;

            case "Wednesday":
                day = "wed";
                break;

            case "Thursday":
                day = "thu";
                break;

            case "Friday":
                day = "fri";
                break;

            case "Saturday":
                day = "sat";
                break;

            case "Sunday":
                day = "sun";
                break;
            }
            #endregion

            #endregion

            #region ---- Meeting Module ----
            Selenium_Run((driver) =>
            {
                #region Instantiation
                var dashboardPage = DashboardPage.Connect(driver);
                var logoutPage    = LogoutPage.Connect(driver);
                #endregion

                #region Login to Møtemodul
                FrontPage.LoginToApplication(driver, ApplicationModules.MeetingModule.GetStringValue());
                #endregion

                #region Change Role
                //Check if role secretary is selected. if yes, then no need to change role else change tole to secretary
                var meeting = MeetingPage.Connect(driver);
                if (meeting.GetRoleName().ToLowerInvariant() != RolesInApplication.SecretaryOfTheBoard.GetStringValue().ToLowerInvariant())
                {
                    dashboardPage.ChangeRole(RolesInApplication.SecretaryOfTheBoard);
                }
                #endregion

                #region Create New Meeting
                meeting.CreateNewMeeting(GlobalVariables.MeetingType, meetingEndTimeAndDate, meetingStartTimeAndDate);
                #endregion

                #region Logout from Application
                logoutPage.LogoutApplication();
                #endregion
            });

            #endregion

            #region ---- Saksbehandling Module ----
            Selenium_Run((driver) =>
            {
                #region Instanstiation
                var casePage      = CasePage.Connect(driver);
                var registryEntry = RegistryEntryPage.Connect(driver);
                var documentPage  = DocumentPage.Connect(driver);
                var meetingPage   = MeetingPage.Connect(driver);
                var logoutPage    = LogoutPage.Connect(driver);
                #endregion

                #region Login to Saksbehandling
                FrontPage.LoginToApplication(driver);
                #endregion

                #region Add Case
                caseTitle = "Recommendation Summary Proposal Decision ProtocalExtract and Letter to case party";
                GlobalVariables.CaseTitle = caseTitle;
                casePage.CreateCase(GlobalVariables.CaseTitle);
                caseNumber = casePage.GetCaseNumber();
                #endregion

                #region Create Registry, Add Processing, Saksfralegg Doc, Add Instilling & Oppsummering, close document, mark as completed

                #region Create Registry entry CaseDraftType
                registryEntry.CreateRegistryEntry(RegistryEntryType.CaseDraftType.GetStringValue());
                GlobalVariables.RegistryEntryTitle = "Registry Entry - Case Draft for Meeting" + " " + CommonMethods.GetRandomNumber();
                registryEntry.AddRegTitle(GlobalVariables.RegistryEntryTitle);
                #endregion

                #region Add Processing name - Handling
                CommonMethods.PlayWait(4000);
                registryEntry.AddProcessing(GlobalVariables.ProcessName);
                #endregion

                #region Add SaksframleggDoc, Login to application, save and edit document
                documentPage.ClickAndAddDocTemplate(AttachmentType.DocumentTemplate.GetStringValue());
                documentPage.SelectDocument(DocumentTemplateType.Dokumentmal.GetStringValue(), DocumentSubType.Saksframlegg.GetStringValue());
                registryEntry.ClickSaveBttn();
                documentPage.HandleAlertPopupToOpenWordDocument();
                documentPage.DocumentWebLoginWindow();
                GlobalVariables.EditDataStatement = "Draft Creation for new meeting";
                documentPage.EditAndSaveWordDocument(GlobalVariables.EditDataStatement);
                #endregion

                #region Edit Document - Add Instilling & Oppsummering

                CommonMethods.PlayWait(5000);

                #region Enter Installing Text
                meetingPage.AddInstillingTextToSaksframlegg(installingText);
                #endregion

                CommonMethods.PlayWait(5000);

                #region Enter Oppsummering Text
                meetingPage.AddOppsummeringTextToSaksframlegg(oppsummeringText);
                #endregion

                #endregion

                #region Save and close document
                documentPage.SaveWordDocument();
                documentPage.CloseDocument();
                CommonMethods.PlayWait(9000);
                #endregion

                //Mark as complete
                #region Change registry entry status to F/done
                registryEntry.ClickEditButton();
                registryEntry.ChangeREStatusToFerdigOrDone();
                registryEntry.ClickSaveBttn();
                #endregion
                #endregion

                #region Logout from Application
                CommonMethods.PlayWait(4000);
                logoutPage.LogoutApplication();
                #endregion
            });
            #endregion

            #region ---- Login to Admin Module for 2nd Time and Select 'Reuse existing numbers from this and subsequent meetings ----
            Selenium_Run((driver) =>
            {
                #region Instanstiation
                var casePage      = CasePage.Connect(driver);
                var dashboardPage = DashboardPage.Connect(driver);
                var registryEntry = RegistryEntryPage.Connect(driver);
                var documentPage  = DocumentPage.Connect(driver);
                var meetingPage   = MeetingPage.Connect(driver);
                var logoutPage    = LogoutPage.Connect(driver);
                var adminPage     = AdminstratorPage.Connect(driver);
                #endregion

                #region Login to Admin Module
                FrontPage.LoginToApplication(driver, ApplicationModules.Administrator.GetStringValue());
                #endregion

                #region Change Role to Secretary of Boards - Eng
                CommonMethods.PlayWait(2000);
                dashboardPage.ChangeRole(RolesInApplication.SecretaryOfTheBoard);
                #endregion

                #region Navigate to alle, Select Numbering option and save
                adminPage.NavigateToMenuItem("Utvalgsbehandling", "Styre, råd og utvalg", "Styre, råd og utvalg (alle)");
                CommonMethods.PlayWait(2000);
                adminPage.ClickItemInGrid(GlobalVariables.MeetingType);
                CommonMethods.PlayWait(2000);
                meetingPage.SelectListValueAndSelectByText(MeetingPage.MeetingPageLocators.NumberingSchemeDropdown, "Reuse existing numbers from just this meeting");
                adminPage.Save();
                CommonMethods.PlayWait(4000);
                meetingPage.SelectListValueAndSelectByText(MeetingPage.MeetingPageLocators.NumberingSchemeDropdown, "Only new numbers from the DMB number series");
                adminPage.Save();
                #endregion

                #region Logout from Application
                logoutPage.LogoutApplication();
                #endregion
            });

            #endregion

            #region ---- Meeting Module ----

            Selenium_Run((driver) =>
            {
                #region Instantiation
                var meeting       = MeetingPage.Connect(driver);
                var dashboardPage = DashboardPage.Connect(driver);
                var documentPage  = DocumentPage.Connect(driver);
                var reportPage    = ReportPage.Connect(driver);
                var logoutPage    = LogoutPage.Connect(driver);
                #endregion

                #region Login to Møtemodul
                FrontPage.LoginToApplication(driver, ApplicationModules.MeetingModule.GetStringValue());
                #endregion

                #region Select My Meeting and Finish Meeting process in progress bar

                #region Change Role
                //Check if role secretary is selected. if yes, then no need to change role else change tole to secretary

                if (meeting.GetRoleName().ToLowerInvariant() != RolesInApplication.SecretaryOfTheBoard.GetStringValue().ToLowerInvariant())
                {
                    dashboardPage.ChangeRole(RolesInApplication.SecretaryOfTheBoard);
                }
                #endregion

                #region Filter for Kommunestyret
                meeting.FilterAndRemovetMeetingsInDashboard(MeetingTypes.Formannskapet.GetStringValue());
                #endregion

                #region Find My Meeting and Drag from Queue to Case List and click save
                CommonMethods.PlayWait(4000);
                meeting.CalenderDate(day, dateofMonth);
                CommonMethods.PlayWait(2000);
                meeting.SelectMyMeeting(myMeetingTiming, day, dateofMonth);
                CommonMethods.PlayWait(10000);
                meeting.SearchAndDragRegistryEntry(GlobalVariables.RegistryEntryTitle);
                CommonMethods.PlayWait(5000);
                meeting.ClickSaveInCasePlan();

                #region Getting Number from Case Draft
                // Trimming string to Generate Assigned Number to Case Draft
                string assignedNumber1        = meeting.ReturnNumberAssignedToCaseDraft(GlobalVariables.RegistryEntryTitle);                                                              // "1 PS 268/18 Registry Entr"
                string TrimmedAssignedNumber1 = assignedNumber1.Trim(new char[] { ' ', 'P', 'S', 'R', 'e', 'g', 'i', 's', 'E', 't', 'r', '-', 'n', 'y', 'C', 'a', 'D', 'f', 'o', 'M', }); // "1 PS 268/18"
                char[] myChar1 = { 'S', 'P', ' ' };
                string actualAssignedNumber1 = TrimmedAssignedNumber1.TrimStart(myChar1);                                                                                                 // "268/18"
                string names1   = actualAssignedNumber1;                                                                                                                                  // "268/18"
                int index1      = names1.IndexOf("/");                                                                                                                                    // 3
                string element1 = names1.Replace("Type", "").Replace("PS", "").Replace("No", "").Replace(".", "").Trim();                                                                 // "268/2018"
                string Test     = names1.Insert(index1 + "/".Length, "20").ToUpper();                                                                                                     // 268/2018
                var newstring   = Test.Replace("Type".ToUpperInvariant(), "").Replace("PS".ToUpperInvariant(), "").Replace("No".ToUpperInvariant(), "").Replace(".", "").Trim();
                actualVal       = newstring.Insert(0, "sak");                                                                                                                             // "sak268/2018"

                #endregion

                #endregion

                #region Click Create Agenda, Click Start Icon from Progress Bar and start button Case Draft, Add Proposal, Decision and  Save Meeting

                #region Click on Create Agenda
                CommonMethods.PlayWait(4000);
                meeting.ClickCreateAgenda();
                CommonMethods.PlayWait(4000);
                meeting.HandleErrorPopUpAndThrowErrorMessage();
                CommonMethods.PlayWait(8000);

                #endregion

                #region Start Meeting
                //Click Start Meeting
                meeting.ClickStartButton();
                CommonMethods.PlayWait(5000);
                #endregion

                #region Steps to Finish Meeting
                //Click Start Handling
                CommonMethods.PlayWait(5000);
                CommonMethods.RefreshBrowserWindow(driver);
                CommonMethods.PlayWait(10000);
                meeting.ClickStartHandlingButton();
                CommonMethods.PlayWait(5000);

                #region Add Proposal (Suggestion) and Decision (Vedtak)
                meeting.AddNewSuggestion(proposerName);

                // Add Decision
                meeting.AddBehandling();

                #endregion

                //Click Save Handling in Case Draft
                CommonMethods.PlayWait(5000);
                meeting.ClickSaveHandlingButton();

                //Verify Text -> Finished in left pane
                CommonMethods.PlayWait(8000);
                meeting.VerifyFinishedTextIsVisible();
                #endregion

                #endregion

                #endregion

                #region Click Documents in Meeting Module and verify (Motedokumenter, Saksprotokoller, Saksdokumenter)
                meeting.ClickTabElement(MeetingTabControl.Documents.GetStringValue());

                // Verify Meeting Documents or Motedokumenter
                meeting.ClickAndVerifyMeetingDocuments(MeetingListTabValues.MeetingDocuments.GetStringValue(), false);

                // verify Saksprotokoller
                meeting.ClickAndVerifyMeetingDocuments(MeetingListTabValues.Caseprotocols.GetStringValue(), false);

                // verify Saksdokumenter
                meeting.ClickAndVerifyMeetingDocuments(MeetingListTabValues.Casedocuments.GetStringValue(), false);
                #endregion

                #region Click and Validate Case Protocol or Saksprotokoller

                //Open case protocol
                meeting.ClickAndVerifyMeetingDocuments(MeetingListTabValues.Caseprotocols.GetStringValue());
                meeting.ClickCaseProtocolDocuments(GlobalVariables.RegistryEntryTitle);
                CommonMethods.PlayWait(3000);
                meeting.OpenInDesktopApplication();
                documentPage.HandleAlertPopupToOpenWordDocument();
                documentPage.DocumentWebLoginWindow();
                CommonMethods.PlayWait(10000);
                documentPage.CopyContentsOfOpenedWordDoc();
                string validate = Clipboard.GetText();

                #region Case Protocol Validation

                StringAssert.Contains(validate, GlobalVariables.NewSuggestion, "The new suggestion Text is not available in the case protocol document");
                StringAssert.Contains(validate, GlobalVariables.Decision, "The Decision Text is not available in the case protocol document");
                StringAssert.Contains(validate, proposerName, "The proposer name is not available in the case protocol document");
                StringAssert.Contains(validate, installingText, "The Instilling (Bookmark Recommendation) Text is not available in the case protocol document");
                StringAssert.Contains(validate, oppsummeringText, "The Oppsummering (Bookmark Summary)  is not available in the case protocol document");
                StringAssert.Contains(validate, actualVal, "The number assigned to Case Draft  is not available in the case protocol document");

                //close document
                documentPage.CloseDocument();
                #endregion

                #endregion

                #region Below code is commented. Can be used in other TCs. ---- OpenInDesktopApplication

                #region Click and Validate Meeting Protocol or Moteprotokoll OpenInDesktopApplication

                meeting.ClickAndVerifyMeetingDocuments(MeetingDocListValues.MeetingProtocol.GetStringValue());//Moteprotokoll
                //CommonMethods.PlayWait(3000);
                //meeting.OpenInDesktopApplication();
                //documentPage.HandleAlertPopupToOpenWordDocument();
                //documentPage.DocumentWebLoginWindow();
                //CommonMethods.PlayWait(5000);

                //#region Validate PDF file is real
                //meeting.VerifyPDFfile();
                //#endregion

                //meeting.SearchAndVerifyInstillingAndOppsummeringTextInPDF(installingText, oppsummeringText);
                //meeting.CopyContentFromPDFFile();

                //string PdfReader = Clipboard.GetText();
                ////Validating Text in PDF
                //CommonMethods.PlayWait(10000);
                //StringAssert.Contains(PdfReader, element1, "PS number assigned to Case Draft in Meeting Protocol is not available ");
                //StringAssert.Contains(PdfReader, actualVal, "PS number assigned to Case Draft in Meeting Protocol is not available ");
                //StringAssert.Contains(PdfReader, GlobalVariables.NewSuggestion, "The new suggestion Text is not available in the Meeting protocol document");
                //StringAssert.Contains(PdfReader, GlobalVariables.Decision, "The Decision Text is not available in the Meeting protocol document");

                ////Close PDF document
                //documentPage.ClosePDF();
                #endregion

                #endregion

                #region Click and Validate Meeting Protocol or Moteprotokoll open in office online - Handle Bug 199932
                CommonMethods.PlayWait(3000);
                meeting.OpenInOfficeOnline();
                documentPage.HandleAlertPopupToOpenWordDocument();
                documentPage.DocumentWebLoginWindow();
                CommonMethods.PlayWait(10000);
                meeting.VerifyPDFOpenedInOfficeOnline();
                #endregion

                #region Finish Meeting, Click After button is activated

                meeting.ClickTabElement(MeetingTabControl.CaseList.GetStringValue());

                //Click Finished
                CommonMethods.PlayWait(5000);
                meeting.ClickFinishedButton();

                //Click After
                CommonMethods.PlayWait(2000);
                meeting.ClickAfterButton();

                CommonMethods.PlayWait(4000);

                #endregion

                #region Protokollering grid (Left hand side):
                CommonMethods.PlayWait(1000);
                CommonMethods.RefreshBrowserWindow(driver);
                CommonMethods.PlayWait(10000);
                // Select record and from quick menu select "Protokollutdrag" option
                meeting.OpenProtocolAgendaItemInRecordManagementModule();
                CommonMethods.PlayWait(4000);
                //Close browser window
                reportPage.CloseCurrentBrowserTab();
                #endregion

                #region Logout from Application
                logoutPage.LogoutApplication();
                #endregion
            });

            #endregion

            #region ---- Saksbehandling Module ----

            Selenium_Run((driver) =>
            {
                #region Instantiation
                var casePage      = CasePage.Connect(driver);
                var registryPage  = RegistryEntryPage.Connect(driver);
                var meeting       = MeetingPage.Connect(driver);
                var dashboardPage = DashboardPage.Connect(driver);
                var documentPage  = DocumentPage.Connect(driver);
                var reportPage    = ReportPage.Connect(driver);
                var logoutPage    = LogoutPage.Connect(driver);
                #endregion

                #region Login to Saksbehandling
                FrontPage.LoginToApplication(driver);
                #endregion

                #region Search for Case and Open Case
                casePage.QuickSearchCaseId(caseNumber);
                CommonMethods.PlayWait(3000);
                #endregion

                #region Validate X (Internt notat uten oppfølging/internal) type registry entry

                casePage.ClickOnButton("Registry entries");
                registryPage.ClickRegistryByType("Internt notat uten oppfølging/internal", false);

                // Open Document
                registryPage.ClickAttachmentOption("Summary Registry Entry - Case Draft", "Open");

                #region Validate X Type Doc Content
                documentPage.HandleAlertPopupToOpenWordDocument();
                documentPage.DocumentWebLoginWindow();
                CommonMethods.PlayWait(10000);
                documentPage.CopyContentsOfOpenedWordDoc();
                string validateXTypeDocContent = Clipboard.GetText();
                StringAssert.Contains(validateXTypeDocContent, GlobalVariables.NewSuggestion, "The new suggestion Text is not available in the X Type document");
                StringAssert.Contains(validateXTypeDocContent, GlobalVariables.Decision, "The Decision Text is not available in the X Type document");
                StringAssert.Contains(validateXTypeDocContent, proposerName, "The proposer name is not available in the X Type document");
                StringAssert.Contains(validateXTypeDocContent, installingText, "The Instilling (Bookmark Recommendation) Text is not available in the X Type document");
                StringAssert.Contains(validateXTypeDocContent, oppsummeringText, "The Oppsummering (Bookmark Summary)  is not available in the X Type document");

                //close document
                documentPage.CloseDocument();
                #endregion

                #endregion

                #region Create 3 Case Parties in RE

                #region Add Case Parties -> Case Party 1 with AA
                casePage.AddParties("Shortname", "AA");
                #endregion

                #region Add Case Parties -> Case Party 2 with AB
                casePage.AddParties("Shortname", "AB");
                #endregion

                #region Add Case Parties -> Case Party 3 with SV
                casePage.AddParties("Shortname", "SV");
                #endregion

                CommonMethods.PlayWait(3000);

                #endregion

                #region Go back to Registry Entry
                casePage.ClickOnButton("Registry entries");
                CommonMethods.PlayWait(3000);
                registryPage.ClickRegistryByType("Saksframlegg/Case draft");
                CommonMethods.PlayWait(3000);
                #endregion

                #region Click on RE menu item and choose Create party letter (Include decision) and Validate

                // Click on choose Create party letter (Include decision)
                registryPage.RegistryEntryViewMenu("Create party letter (Include decision)");

                #region Validate choose Create party letter (Include decision)
                CommonMethods.PlayWait(5000);

                // Valiate U Type RE
                registryPage.ValidateUTypeRE("Utgående post/Outbound");

                // Same RE Title
                registryPage.ValidateRETitle(GlobalVariables.RegistryEntryTitle);

                // Validate Case Parties
                registryPage.ValidateCasePartiesInRE("Anda Apotek");
                registryPage.ValidateCasePartiesInRE("Aktiebolaget Bolinda");
                registryPage.ValidateCasePartiesInRE("Sosialistisk Venstreparti");

                #endregion


                // add document
                documentPage.ClickAndAddDocTemplate(AttachmentType.DocumentTemplate.GetStringValue());
                documentPage.SelectDocument(DocumentTemplateType.Dokumentmal.GetStringValue(), DocumentSubType.Standardbrev.GetStringValue());
                registryPage.ClickSaveBttn();
                CommonMethods.PlayWait(5000);
                registryPage.ClickAttachmentOption("Standard brev", "Open");
                documentPage.HandleAlertPopupToOpenWordDocument();
                documentPage.DocumentWebLoginWindow("guilt");
                CommonMethods.PlayWait(8000);
                AutoItX.Send("{LEFT}");
                AutoItX.Send("{ENTER}");
                CommonMethods.PlayWait(3000);

                #region Validate Decision, Proposer, Proposal, Instilling and Oppsummering in Include Decision
                documentPage.CopyContentsOfOpenedWordDoc();
                string validateForIncludeDecision = Clipboard.GetText();
                CommonMethods.PlayWait(2000);
                StringAssert.Contains(validateForIncludeDecision, GlobalVariables.NewSuggestion, "The new suggestion Text is not available in the Include decision document");
                StringAssert.Contains(validateForIncludeDecision, GlobalVariables.Decision, "The Decision Text is not available in the Include decision document");
                StringAssert.Contains(validateForIncludeDecision, proposerName, "The proposer name is not available in the Include decision document");
                StringAssert.Contains(validateForIncludeDecision, installingText, "The Instilling (Bookmark Recommendation) Text is not available in the Include decision document");
                StringAssert.Contains(validateForIncludeDecision, oppsummeringText, "The Oppsummering (Bookmark Summary)  is not available in the Include decision document");
                StringAssert.Contains(validateForIncludeDecision, actualVal, "The case draft value assigned in meeting module  is not available in the Include decision document");

                //close document
                documentPage.CloseDocument();
                #endregion

                CommonMethods.PlayWait(5000);

                #endregion

                #region Click Case Draft

                CommonMethods.PlayWait(3000);
                // Select Create party letter (Include complete procedure) from Menu Item
                casePage.ClickOnButton("Registry entries");
                CommonMethods.PlayWait(3000);
                registryPage.ClickRegistryByType("Saksframlegg/Case draft");
                CommonMethods.PlayWait(3000);
                #endregion

                #region Click on RE menu item and choose Create party letter (Include complete procedure) and Validate

                // Click on choose Create party letter (Include decision)
                registryPage.RegistryEntryViewMenu("Create party letter (Include complete procedure)");

                #region Validate "Create party letter (Include complete procedure)"

                // Valiate U Type RE
                registryPage.ValidateUTypeRE("Utgående post/Outbound");

                // validate Same RE Title
                registryPage.ValidateRETitle(GlobalVariables.RegistryEntryTitle);

                // Validate Case Parties
                registryPage.ValidateCasePartiesInRE("Anda Apotek");
                registryPage.ValidateCasePartiesInRE("Aktiebolaget Bolinda");
                registryPage.ValidateCasePartiesInRE("Sosialistisk Venstreparti");

                #endregion

                // add document
                documentPage.ClickAndAddDocTemplate(AttachmentType.DocumentTemplate.GetStringValue());
                documentPage.SelectDocument(DocumentTemplateType.Dokumentmal.GetStringValue(), DocumentSubType.BrevDocument.GetStringValue());
                registryPage.ClickSaveBttn();

                registryPage.ClickAttachmentOption("Brev - Word", "Open");
                documentPage.HandleAlertPopupToOpenWordDocument();
                documentPage.DocumentWebLoginWindow("guilt");
                CommonMethods.PlayWait(8000);
                AutoItX.Send("{LEFT}");
                AutoItX.Send("{ENTER}");
                CommonMethods.PlayWait(3000);

                #region Validate Decision, Proposer, Proposal, Instilling and Oppsummering in Include Complete Procedure
                documentPage.CopyContentsOfOpenedWordDoc();
                string validateForIncludeCompleteProcedure = Clipboard.GetText();
                CommonMethods.PlayWait(2000);
                StringAssert.Contains(validateForIncludeCompleteProcedure, GlobalVariables.NewSuggestion, "The new suggestion Text is not available in the Include Complete Procedure document");
                StringAssert.Contains(validateForIncludeCompleteProcedure, GlobalVariables.Decision, "The Decision Text is not available in the Include Complete Procedure document");
                StringAssert.Contains(validateForIncludeCompleteProcedure, proposerName, "The proposer name is not available in the Include Complete Procedure document");
                StringAssert.Contains(validateForIncludeCompleteProcedure, installingText, "The Instilling (Bookmark Recommendation) Text is not available in the Include Complete Procedure document");
                StringAssert.Contains(validateForIncludeCompleteProcedure, oppsummeringText, "The Oppsummering (Bookmark Summary)  is not available in the Include Complete Procedure document");

                CommonMethods.PlayWait(5000);
                // close document
                documentPage.CloseDocument();
                #endregion

                CommonMethods.PlayWait(5000);
                #endregion

                #region Logout from Application
                logoutPage.LogoutApplication();
                #endregion
            });
            #endregion
        }