Example #1
0
        private void GeneratePageModule(WebPageMetadata page)
        {
            var pageGenerator = new PageModuleGenerator(page, _componentAdapterFactory);
            var module        = pageGenerator.GenerateModule();

            _codeWriter.WriteModule(module);
        }
        internal override ProcessStatus GetCurrentStatus()
        {
            // Check web page status
            Status = ProcessStatus.Success;
            foreach (WebPageMetadata m in WebPages)
            {
                switch (m.Status)
                {
                case ProcessStatus.Success:
                    // Do nothing
                    break;

                case ProcessStatus.Running:
                    if (Status != ProcessStatus.Failed)
                    {
                        Status = ProcessStatus.Running;
                    }
                    break;

                case ProcessStatus.Failed:
                    Status = ProcessStatus.Failed;
                    break;

                default:
                    Status = ProcessStatus.Unknown;
                    break;
                }
            }

            // If any page has state running or failed : process state is running or failed
            // If all are complete but start date on advibi2 or advcog1 < start date on advbi2 or advbi3 -> status = waiting

            if (Status == ProcessStatus.Success)
            {
                if ((FindWebPage("ADVCOG1").startTime < FindWebPage("ADVBI3").startTime) ||
                    (FindWebPage("ADVIBI2").startTime < FindWebPage("ADVBI2").startTime))
                {
                    Status = ProcessStatus.Waiting;
                }
            }

            // If ADVCOG1 or ADVIBI2 have been running longer than expected set status to UserActionRequired
            WebPageMetadata advcog1Page = FindWebPage("ADVCOG1");
            WebPageMetadata advibi2Page = FindWebPage("ADVIBI2");

            if (((advcog1Page.Status == ProcessStatus.Running) && (advcog1Page.startTime.Add(new TimeSpan(0, 30, 0)) < DateTime.Now)) ||
                ((advibi2Page.Status == ProcessStatus.Running) && (advibi2Page.startTime.Add(new TimeSpan(0, 30, 0)) < DateTime.Now)))
            {
                Status = ProcessStatus.UserActionRequired;
            }

            // Send email if everything is done
            if ((Status == BaseProcess.ProcessStatus.Success) && (_previousStatus == BaseProcess.ProcessStatus.Running || _previousStatus == BaseProcess.ProcessStatus.UserActionRequired))
            {
                SendEmailItem("FIQ Cube Migration completed succesfully", "");
            }

            // call base function to handle notifications
            return(base.GetCurrentStatus());
        }
Example #3
0
        public PageModuleGenerator(WebPageMetadata metadata, IComponentAdapterFactory componentAdapterFactory)
        {
            _metadata = metadata;
            _componentAdapterFactory = componentAdapterFactory;
            _components        = new List <IComponentAdapter>();
            _metaPageExtension = new HyperappPageMetadata();

            metadata.Extensions.Add(_metaPageExtension);
        }
Example #4
0
        internal void AddWebPages(String name, WebBrowser webBrowser)
        {
            WebPageMetadata metadata = new WebPageMetadata();

            metadata.webPageName = name;
            metadata.webBrowser  = webBrowser;
            metadata.Status      = ProcessStatus.Unknown;
            _webPages.Add(metadata);
        }
Example #5
0
 private static void DetermineModulePath(WebPageMetadata page, out string[] folderPath, out string moduleName)
 {
     if (page.IsIndex)
     {
         folderPath = new[] { "src" };
         moduleName = "index";
     }
     else
     {
         folderPath = new[] { "src", "pages" };
         moduleName = page.PageClass.Name.TrimSuffixFragment("Page").ToString().ToLower();
     }
 }
        // Find the web page in the array of web pages
        private WebPageMetadata GetWebPage(string webPageName)
        {
            WebPageMetadata currentWebPage = null;

            foreach (WebPageMetadata m in WebPages)
            {
                if (m.webPageName == webPageName)
                {
                    currentWebPage = m;
                    break;
                }
            }
            return(currentWebPage);
        }
Example #7
0
        internal void UpdateWebPageStatus(string webPageName)
        {
            // Find web page in page array
            WebPageMetadata currentWebPage = null;

            foreach (WebPageMetadata m in WebPages)
            {
                if (m.webPageName == webPageName)
                {
                    currentWebPage = m;
                    break;
                }
            }
            if (currentWebPage == null)
            {
                throw new ApplicationException("Unknown web page name: " + webPageName);
            }

            // scrape web page contents to set status
            string docText = currentWebPage.webBrowser.DocumentText;

            switch (currentWebPage.webBrowser.Name)
            {
            case "webBrowserCognos8":
                if (docText.Contains("Please type your credentials for authentication"))
                {
                    currentWebPage.Status = ProcessStatus.Success;
                    retryCount            = 5;
                }
                else if (retryCount == 0)
                {
                    currentWebPage.Status = ProcessStatus.Failed;
                }
                else
                {
                    currentWebPage.Status = ProcessStatus.Success;
                    retryCount           -= 1;
                }
                break;

            default:
                break;
            }
            // Notify parent class instance that status has been updated
            RaiseStatusUpdatedEvent();
        }
        internal void UpdateWebPageStatus(string webPageName)
        {
            // Find web page in page array
            WebPageMetadata currentWebPage = GetWebPage(webPageName);

            foreach (WebPageMetadata m in WebPages)
            {
                if (m.webPageName == webPageName)
                {
                    currentWebPage = m;
                    break;
                }
            }
            if (currentWebPage == null)
            {
                throw new ApplicationException("Unknown web page name: " + webPageName);
            }

            // scrape web page contents to set status
            try
            {
                string docText = currentWebPage.webBrowser.DocumentText;
                switch (webPageName)
                {
                case "ADVBI2":
                case "ADVBI3":
                    if (docText.Contains("Completed Cube Build Process"))
                    {
                        currentWebPage.Status = ProcessStatus.Success;
                    }
                    else if (docText.Contains("Begin Cube Build Process"))
                    {
                        currentWebPage.Status = ProcessStatus.Running;
                    }
                    else
                    {
                        currentWebPage.Status = ProcessStatus.Failed;
                    }
                    break;

                case "ADVCOG1":
                case "ADVIBI2":
                    if (docText.Contains("Successful Cube Migration process"))
                    {
                        currentWebPage.Status = ProcessStatus.Success;
                    }
                    else if (docText.Contains("Start Migration process"))
                    {
                        currentWebPage.Status = ProcessStatus.Running;
                    }
                    else
                    {
                        currentWebPage.Status = ProcessStatus.Failed;
                    }
                    break;

                default:
                    break;
                }

                //docText = "Start Migration process...[10/21/2009 9:30:02 AM]<BR>";
                // Update start and end times
                if (docText.Contains("Start Time: ") == true)
                {
                    currentWebPage.startTime = ParseDateTime(docText, "Start Time: ", "<BR>");
                }
                else if (docText.Contains("Start Migration process") == true)
                {
                    currentWebPage.startTime = ParseDateTime(docText, "Start Migration process...[", "]");
                }
                else
                {
                    currentWebPage.startTime = DateTime.Parse("1/1/1990");
                }

                if (docText.Contains("End Time: "))
                {
                    currentWebPage.endTime = ParseDateTime(docText, "End Time: ", "<BR>");
                }
                else
                {
                    currentWebPage.endTime = DateTime.Parse("1/1/1990");
                }

                if (docText.Contains("Cubes Built: "))
                {
                    currentWebPage.nbrCubes = ParseInt32(docText, "Cubes Built: ", "\n");
                }
                else if (docText.Contains("Cubes Moved: "))
                {
                    currentWebPage.nbrCubes = ParseInt32(docText, "Cubes Moved: ", "<BR>");
                }
                else
                {
                    currentWebPage.endTime = DateTime.Parse("1/1/1990");
                }

                // Notify parent class instance that status has been updated
                RaiseStatusUpdatedEvent();
            }
            catch (System.IO.FileNotFoundException e)
            {    // Ignore file not found exceptions: sometimes it is not possible to get the page
                //MessageBox.Show(e.Message);
                System.Diagnostics.EventLog.WriteEntry("BI Monitor", e.Message);
            }
        }
        public DataSet GetFIQBISummary()
        {
            // Create data table
            DataTable  summaryTable = new DataTable();
            DataColumn dc           = new DataColumn();

            dc.DataType   = System.Type.GetType("System.DateTime");
            dc.ColumnName = "Date";
            summaryTable.Columns.Add(dc);
            dc            = new DataColumn();
            dc.DataType   = System.Type.GetType("System.DateTime");
            dc.ColumnName = "BI2Start";
            summaryTable.Columns.Add(dc);
            dc            = new DataColumn();
            dc.DataType   = System.Type.GetType("System.DateTime");
            dc.ColumnName = "BI2End";
            summaryTable.Columns.Add(dc);
            dc            = new DataColumn();
            dc.DataType   = System.Type.GetType("System.TimeSpan");
            dc.ColumnName = "BI2Duration";
            summaryTable.Columns.Add(dc);
            dc            = new DataColumn();
            dc.DataType   = System.Type.GetType("System.Int32");
            dc.ColumnName = "BI2Cubes";
            summaryTable.Columns.Add(dc);
            dc            = new DataColumn();
            dc.DataType   = System.Type.GetType("System.DateTime");
            dc.ColumnName = "BI3Start";
            summaryTable.Columns.Add(dc);
            dc            = new DataColumn();
            dc.DataType   = System.Type.GetType("System.DateTime");
            dc.ColumnName = "BI3End";
            summaryTable.Columns.Add(dc);
            dc            = new DataColumn();
            dc.DataType   = System.Type.GetType("System.TimeSpan");
            dc.ColumnName = "BI3Duration";
            summaryTable.Columns.Add(dc);
            dc            = new DataColumn();
            dc.DataType   = System.Type.GetType("System.Int32");
            dc.ColumnName = "BI3Cubes";
            summaryTable.Columns.Add(dc);
            dc            = new DataColumn();
            dc.DataType   = System.Type.GetType("System.DateTime");
            dc.ColumnName = "IBI2Start";
            summaryTable.Columns.Add(dc);
            dc            = new DataColumn();
            dc.DataType   = System.Type.GetType("System.DateTime");
            dc.ColumnName = "IBI2End";
            summaryTable.Columns.Add(dc);
            dc            = new DataColumn();
            dc.DataType   = System.Type.GetType("System.TimeSpan");
            dc.ColumnName = "IBI2Duration";
            summaryTable.Columns.Add(dc);
            dc            = new DataColumn();
            dc.DataType   = System.Type.GetType("System.Int32");
            dc.ColumnName = "IBI2Cubes";
            summaryTable.Columns.Add(dc);
            dc            = new DataColumn();
            dc.DataType   = System.Type.GetType("System.DateTime");
            dc.ColumnName = "COG1Start";
            summaryTable.Columns.Add(dc);
            dc            = new DataColumn();
            dc.DataType   = System.Type.GetType("System.DateTime");
            dc.ColumnName = "COG1End";
            summaryTable.Columns.Add(dc);
            dc            = new DataColumn();
            dc.DataType   = System.Type.GetType("System.TimeSpan");
            dc.ColumnName = "COG1Duration";
            summaryTable.Columns.Add(dc);
            dc            = new DataColumn();
            dc.DataType   = System.Type.GetType("System.Int32");
            dc.ColumnName = "COG1Cubes";
            summaryTable.Columns.Add(dc);

            // Create row
            DataRow row = summaryTable.NewRow();
            // ADVBI2
            WebPageMetadata page = GetWebPage("ADVBI2");

            row["Date"]        = page.endTime;
            row["BI2Start"]    = page.startTime;
            row["BI2End"]      = page.endTime;
            row["BI2Duration"] = page.endTime - page.startTime;
            row["BI2Cubes"]    = page.nbrCubes;
            // ADVBI3
            page               = GetWebPage("ADVBI3");
            row["Date"]        = page.endTime;
            row["BI3Start"]    = page.startTime;
            row["BI3End"]      = page.endTime;
            row["BI3Duration"] = page.endTime - page.startTime;
            row["BI3Cubes"]    = page.nbrCubes;
            // ADVIBI2
            page                = GetWebPage("ADVIBI2");
            row["Date"]         = page.endTime;
            row["IBI2Start"]    = page.startTime;
            row["IBI2End"]      = page.endTime;
            row["IBI2Duration"] = page.endTime - page.startTime;
            row["IBI2Cubes"]    = page.nbrCubes;
            // ADVIBI2
            page                = GetWebPage("ADVCOG1");
            row["Date"]         = page.endTime;
            row["COG1Start"]    = page.startTime;
            row["COG1End"]      = page.endTime;
            row["COG1Duration"] = page.endTime - page.startTime;
            row["COG1Cubes"]    = page.nbrCubes;
            summaryTable.Rows.Add(row);

            // Create a table from the query.
            DataSet summaryData = new DataSet();

            summaryData.Tables.Add(summaryTable);

            return(summaryData);
        }
Example #10
0
 public ModelMemberAccessRewriter(WebPageMetadata metaPage, AbstractExpression modelMemberReplacement)
 {
     _metaPage = metaPage;
     _modelMemberReplacement = modelMemberReplacement;
 }
Example #11
0
 public ModelMemberAccessRewriter(WebPageMetadata metaPage, LocalVariable modelVariable)
     : this(metaPage, modelMemberReplacement : modelVariable.AsExpression())
 {
 }
Example #12
0
 public BackendApiProxyAccessRewriter(WebPageMetadata metaPage)
 {
     _metaPage          = metaPage;
     _metaPageExtension = _metaPage.Extensions.Get <HyperappPageMetadata>();
     _backendApiTypes   = new HashSet <TypeMember>(metaPage.BackendApis.Select(api => api.InterfaceType));
 }