コード例 #1
0
        //サイト一覧テーブルをExcelファイルで出力
        private void create_site_info_book()
        {
            Task.Run(() =>
            {
                //共通デリゲートインスタンス
                d_status_messenger message   = w_status_messenger;
                d_ldr_activate ldr_activate  = w_ldr_activate;
                d_task_cancel canceler       = w_task_cancel;
                d_get_workDir _d_get_workDir = w_get_workDir;

                if (ldr_activated == false)
                {
                    //Libraドライバ起動しエラーの場合早期退出
                    if (!(Boolean)this.Invoke(ldr_activate))
                    {
                        return;
                    }
                }

                ldr.home();
                this.Invoke(message, "Libraにログインします。(" + DateUtil.get_logtime() + ")");
                ldr.login();
                DateUtil.app_sleep(shortWait);

                List <List <string> > data = ldr.get_site_info_data();
                List <string> head_row     = new List <string>()
                {
                    "ID", "サイト名", "備考", "検査期間"
                };
                data.Insert(0, head_row);

                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(canceler))
                {
                    return;
                }

                string save_dir      = (string)this.Invoke(_d_get_workDir);
                string save_filename = save_dir + "Libra検査サイト一覧_" + DateUtil.fetch_filename_logtime() + ".xlsx";
                ExcelUtil eu         = new ExcelUtil();
                eu.save_xlsx_as(data, save_filename);

                ldr.logout();
                this.Invoke(message, "処理が完了しました。(" + DateUtil.get_logtime() + ")");
            });
        }
コード例 #2
0
        //レポートを表示
        private void display_survey_report()
        {
            Task.Run(() =>
            {
                //共通デリゲートインスタンス
                d_status_messenger message  = w_status_messenger;
                d_ldr_activate ldr_activate = w_ldr_activate;
                d_task_cancel canceler      = w_task_cancel;

                //専用デリゲートインスタンス(条件分岐)
                d_is_pageID_selected _is_pageID_selected       = w_is_pageID_selected;
                d_is_guideline_selected _is_guideline_selected = w_is_guideline_selected;
                d_is_tech_selected _is_tech_selected           = w_is_tech_selected;

                //専用デリゲートインスタンス(取得系)
                d_get_projectID get_projectID             = w_get_projectID;
                d_get_basic_auth_cond get_basic_auth_cond = w_get_basic_auth_cond;
                d_get_source_flag get_source_flag         = w_get_source_flag;
                d_get_workDir get_workDir                      = w_get_workDir;
                d_pageID_data get_page_rows                    = w_pageID_data;
                d_guideline_data get_guideline_rows            = w_guideline_data;
                d_get_pageID_sufix get_pageID_sufix            = w_get_pageID_sufix;
                d_get_guideline_sufix get_guideline_sufix      = w_get_guideline_sufix;
                d_data_grid_as_RepoTask _data_grid_as_RepoTask = w_data_grid_as_RepoTask;
                d_tech_data get_tech_rows                      = w_tech_data;

                Boolean is_pageID_selected    = (Boolean)this.Invoke(_is_pageID_selected);
                Boolean is_guideline_selected = (Boolean)this.Invoke(_is_guideline_selected);
                Boolean is_tech_selected      = (Boolean)this.Invoke(_is_tech_selected);

                if (is_pageID_selected == false)
                {
                    this.Invoke(message, "【エラー】ページIDが選択されていません!処理を停止します。");
                    return;
                }
                if (is_guideline_selected == false)
                {
                    this.Invoke(message, "【エラー】達成基準が選択されていません!処理を停止します。");
                    return;
                }

                if (ldr_activated == false)
                {
                    //Libraドライバ起動しエラーの場合早期退出
                    if (!(Boolean)this.Invoke(ldr_activate))
                    {
                        return;
                    }
                }

                ldr.home();
                this.Invoke(message, "Libraにログインします。(" + DateUtil.get_logtime() + ")");
                ldr.login();
                DateUtil.app_sleep(shortWait);

                string projectID = (string)this.Invoke(get_projectID);
                ldr.projectID    = projectID;

                //サイト名取得
                this.Invoke(message, "レポートインデックスページに移動します。(" + DateUtil.get_logtime() + ")");
                ldr.browse_repo();
                DateUtil.app_sleep(shortWait);
                string site_name = ldr.get_site_name();

                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(canceler))
                {
                    return;
                }

                //pageIDコンボから選択値を取得
                List <string> guideline_rows = (List <string>) this.Invoke(get_guideline_rows);

                //guidelineコンボから選択値を取得
                List <List <string> > page_rows = (List <List <string> >) this.Invoke(get_page_rows);

                this.Invoke(message, "レポート詳細ページに順次アクセスしていきます。(" + DateUtil.get_logtime() + ")");

                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(canceler))
                {
                    return;
                }

                //レポートデータ初期化
                List <List <string> > rep_data = new List <List <string> >();

                //処理タイプ条件分岐
                string opt_type = "";
                if (is_tech_selected == true)
                {
                    opt_type = "qry";
                }
                else
                {
                    opt_type = "seq";
                }

                switch (opt_type)
                {
                //絞り込み
                case "qry":

                    //techコンボから値取得
                    List <string> tech_rows = (List <string>) this.Invoke(get_tech_rows);

                    //一次格納用rep_data
                    List <List <string> > tmp_rep_data = new List <List <string> >();

                    //guidelineのループ
                    for (int i = 0; i < guideline_rows.Count; i++)
                    {
                        if (i > 0)
                        {
                            break;            //複数達成基準には対応しない
                        }
                        string guideline      = guideline_rows[i];
                        string guideline_disp = guideline;
                        guideline             = "7." + guideline;

                        //タスクのキャンセル判定
                        if ((Boolean)this.Invoke(canceler))
                        {
                            return;
                        }

                        //pageのループ
                        for (int j = 0; j < page_rows.Count; j++)
                        {
                            List <string> page_row = page_rows[j];
                            string pageID          = page_row[0];
                            string pageURL         = page_row[1];
                            this.Invoke(message, pageID + ", " + guideline_disp + " を処理しています。 (" + DateUtil.get_logtime() + ")");
                            string path = ldr.fetch_report_detail_path(pageID, guideline);
                            ldr.wd.Navigate().GoToUrl(path);
                            DateUtil.app_sleep(shortWait);
                            List <List <string> > tbl_data = ldr.get_detail_table_data(pageID, pageURL, guideline);
                            tmp_rep_data.AddRange(tbl_data);
                        }
                    }

                    //rep_dataを組み立て
                    foreach (List <string> row in tmp_rep_data)
                    {
                        string q_col = row[4];
                        Func <List <string>, string, Boolean> _contain_tech = delegate(List <string> arr, string key)
                        {
                            Boolean flg = false;
                            foreach (string vl in arr)
                            {
                                if (vl == key)
                                {
                                    flg = true;
                                    break;
                                }
                            }
                            return(flg);
                        };
                        if (_contain_tech(tech_rows, q_col))
                        {
                            rep_data.Add(row);
                        }
                    }
                    break;

                //全件
                case "seq":

                    //guidelineのループ
                    for (int i = 0; i < guideline_rows.Count; i++)
                    {
                        string guideline      = guideline_rows[i];
                        string guideline_disp = guideline;
                        guideline             = "7." + guideline;

                        //タスクのキャンセル判定
                        if ((Boolean)this.Invoke(canceler))
                        {
                            return;
                        }

                        //pageのループ
                        for (int j = 0; j < page_rows.Count; j++)
                        {
                            List <string> page_row = page_rows[j];
                            string pageID          = page_row[0];
                            string pageURL         = page_row[1];
                            this.Invoke(message, pageID + ", " + guideline_disp + " を処理しています。 (" + DateUtil.get_logtime() + ")");
                            string path = ldr.fetch_report_detail_path(pageID, guideline);
                            ldr.wd.Navigate().GoToUrl(path);
                            DateUtil.app_sleep(shortWait);
                            List <List <string> > tbl_data = ldr.get_detail_table_data(pageID, pageURL, guideline);
                            rep_data.AddRange(tbl_data);
                        }
                    }
                    break;
                }

                //DataGridレポート処理
                this.Invoke(message, "データグリッドビューへの書き出しを開始します。(" + DateUtil.get_logtime() + ")");
                List <string> head_row = TextUtil.get_header();
                rep_data.Insert(0, head_row);
                this.Invoke(_data_grid_as_RepoTask, rep_data);

                ldr.logout();
                this.Invoke(message, "処理が完了しました。(" + DateUtil.get_logtime() + ")");
            });
        }
コード例 #3
0
        //レポートを生成
        private void create_survey_report()
        {
            Task.Run(() =>
            {
                //共通デリゲートインスタンス
                d_status_messenger message  = w_status_messenger;
                d_ldr_activate ldr_activate = w_ldr_activate;
                d_task_cancel canceler      = w_task_cancel;

                //専用デリゲートインスタンス(条件系)
                d_get_basic_auth_cond _d_get_basic_auth_cond   = w_get_basic_auth_cond;
                d_get_source_flag _d_get_source_flag           = w_get_source_flag;
                d_is_pageID_selected _is_pageID_selected       = w_is_pageID_selected;
                d_is_guideline_selected _is_guideline_selected = w_is_guideline_selected;

                //専用デリゲートインスタンス(取得系)
                d_get_workDir _get_workDir                = w_get_workDir;
                d_get_projectID _get_projectID            = w_get_projectID;
                d_pageID_data get_page_rows               = w_pageID_data;
                d_guideline_data get_guideline_rows       = w_guideline_data;
                d_get_pageID_sufix get_pageID_sufix       = w_get_pageID_sufix;
                d_get_guideline_sufix get_guideline_sufix = w_get_guideline_sufix;


                //ファイル名サフィックス取得
                string guideline_sufix = (string)this.Invoke(get_guideline_sufix);
                string pageID_sufix    = (string)this.Invoke(get_pageID_sufix);

                Boolean is_pageID_selected    = (Boolean)this.Invoke(_is_pageID_selected);
                Boolean is_guideline_selected = (Boolean)this.Invoke(_is_guideline_selected);

                if (is_pageID_selected == false)
                {
                    this.Invoke(message, "【エラー】ページIDが選択されていません!処理を停止します。");
                    return;
                }
                if (is_guideline_selected == false)
                {
                    this.Invoke(message, "【エラー】達成基準が選択されていません!処理を停止します。");
                    return;
                }

                if (ldr_activated == false)
                {
                    //Libraドライバ起動しエラーの場合早期退出
                    if (!(Boolean)this.Invoke(ldr_activate))
                    {
                        return;
                    }
                }

                ldr.home();
                this.Invoke(message, "Libraにログインします。(" + DateUtil.get_logtime() + ")");
                ldr.login();
                DateUtil.app_sleep(shortWait);

                string projectID = (string)this.Invoke(_get_projectID);
                ldr.projectID    = projectID;

                //サイト名取得
                this.Invoke(message, "レポートインデックスページに移動します。(" + DateUtil.get_logtime() + ")");
                ldr.browse_repo();
                DateUtil.app_sleep(shortWait);
                string site_name = ldr.get_site_name();

                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(canceler))
                {
                    return;
                }

                //pageIDコンボから選択値を取得
                List <string> guideline_rows = (List <string>) this.Invoke(get_guideline_rows);

                //guidelineコンボから選択値を取得
                List <List <string> > page_rows = (List <List <string> >) this.Invoke(get_page_rows);

                this.Invoke(message, "レポート詳細ページに順次アクセスしていきます。(" + DateUtil.get_logtime() + ")");

                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(canceler))
                {
                    return;
                }

                //レポートデータ初期化
                List <List <string> > rep_data = new List <List <string> >();

                //guidelineのループ
                for (int i = 0; i < guideline_rows.Count; i++)
                {
                    string guideline      = guideline_rows[i];
                    string guideline_disp = guideline;
                    guideline             = "7." + guideline;

                    //タスクのキャンセル判定
                    if ((Boolean)this.Invoke(canceler))
                    {
                        return;
                    }

                    //pageのループ
                    for (int j = 0; j < page_rows.Count; j++)
                    {
                        List <string> page_row = page_rows[j];
                        string pageID          = page_row[0];
                        string pageURL         = page_row[1];
                        this.Invoke(message, pageID + ", " + guideline_disp + " を処理しています。 (" + DateUtil.get_logtime() + ")");
                        string path = ldr.fetch_report_detail_path(pageID, guideline);
                        ldr.wd.Navigate().GoToUrl(path);
                        DateUtil.app_sleep(shortWait);
                        List <List <string> > tbl_data = ldr.get_detail_table_data(pageID, pageURL, guideline);
                        rep_data.AddRange(tbl_data);
                    }
                }

                //Excelレポート処理
                this.Invoke(message, "Excelファイルへの書き出しを開始します。(" + DateUtil.get_logtime() + ")");
                List <string> head_row = TextUtil.get_header();
                rep_data.Insert(0, head_row);
                string save_dir      = (string)this.Invoke(_get_workDir);
                string save_filename = save_dir + projectID + "_" + site_name + "_" + guideline_sufix + "_" + pageID_sufix + " " + " 検査結果 " + DateUtil.fetch_filename_logtime() + ".xlsx";

                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(canceler))
                {
                    return;
                }

                ExcelUtil eu = new ExcelUtil();
                eu.repo_task_save_xlsx(rep_data, save_filename);
                ldr.logout();
                this.Invoke(message, "処理が完了しました。(" + DateUtil.get_logtime() + ")");
            });
        }
コード例 #4
0
        //ページIDコンボをセット
        private void set_pageID_combo()
        {
            Task.Run(() =>
            {
                //共通デリゲートインスタンス
                d_status_messenger message          = w_status_messenger;
                d_ldr_activate ldr_activate         = w_ldr_activate;
                d_task_cancel canceler              = w_task_cancel;
                d_ctrl_activate w_ctrl_activate     = ctrl_activate;
                d_ctrl_deactivate w_ctrl_deactivate = ctrl_deactivate;

                //専用デリゲートインスタンス
                d_get_projectID _d_get_projectID             = w_get_projectID;
                d_get_source_flag _d_get_source_flag         = w_get_source_flag;
                d_get_basic_auth_cond _d_get_basic_auth_cond = w_get_basic_auth_cond;
                d_set_pageID_combo _set_pageID_combo         = w_set_pageID_combo;

                //2重実行防止
                this.Invoke(w_ctrl_deactivate, "pageIDLoadButton");
                this.Invoke(w_ctrl_deactivate, "projectIDLoadButton");
                this.Invoke(w_ctrl_deactivate, "doRepoTaskButton");
                this.Invoke(w_ctrl_deactivate, "cancelRepoTaskButton");

                if (ldr_activated == false)
                {
                    //Libraドライバ起動しエラーの場合早期退出
                    if (!(Boolean)this.Invoke(ldr_activate))
                    {
                        return;
                    }
                }

                ldr.home();
                this.Invoke(message, "Libraにログインします。(" + DateUtil.get_logtime() + ")");
                ldr.login();
                DateUtil.app_sleep(shortWait);

                string cr     = (string)this.Invoke(_d_get_projectID);
                ldr.projectID = cr;

                string flg = (string)this.Invoke(_d_get_source_flag);
                if (flg == "report")
                {
                    this.Invoke(message, "レポートインデックスページにアクセスしています。(" + DateUtil.get_logtime() + ")");
                    ldr.browse_repo();
                    DateUtil.app_sleep(shortWait);
                    List <List <string> > data = ldr.get_page_list_data();

                    //タスクのキャンセル判定
                    if ((Boolean)this.Invoke(canceler))
                    {
                        return;
                    }

                    this.Invoke(_set_pageID_combo, data);
                }
                else if (flg == "svpage")
                {
                    Boolean auth_param_check = (Boolean)this.Invoke(_d_get_basic_auth_cond);
                    if (auth_param_check == false)
                    {
                        return;
                    }

                    this.Invoke(message, "検査メイン画面ページにアクセスしています。(" + DateUtil.get_logtime() + ")");
                    ldr.browse_sv_mainpage();
                    DateUtil.app_sleep(longWait);
                    List <List <string> > data = ldr.get_page_list_data_from_svpage();

                    //タスクのキャンセル判定
                    if ((Boolean)this.Invoke(canceler))
                    {
                        return;
                    }

                    this.Invoke(_set_pageID_combo, data);
                }

                this.Invoke(message, "ページIDコンボが設定完了しました。(" + DateUtil.get_logtime() + ")");

                ldr.logout();
                this.Invoke(message, "処理が完了しました。(" + DateUtil.get_logtime() + ")");

                this.Invoke(w_ctrl_activate, "pageIDLoadButton");
                this.Invoke(w_ctrl_activate, "projectIDLoadButton");
                this.Invoke(w_ctrl_activate, "doRepoTaskButton");
                this.Invoke(w_ctrl_activate, "cancelRepoTaskButton");

                this.Invoke(w_ctrl_activate, "pageIDListBoxSelectAllButton");
                this.Invoke(w_ctrl_activate, "pageIDListBoxSelectClearButton");

                this.Invoke(w_ctrl_activate, "openAsFirefoxButton");
                this.Invoke(w_ctrl_activate, "openAsIEButton");
                this.Invoke(w_ctrl_activate, "openAsChromeButton");
                this.Invoke(w_ctrl_activate, "openAsAnotherBrowserButton");

                this.Invoke(w_ctrl_activate, "techIDLoadButton");
            });
        }
コード例 #5
0
        //実装番号コンボをセット
        private void set_techID_combo()
        {
            Task.Run(() =>
            {
                //共通デリゲートインスタンス
                d_status_messenger message          = w_status_messenger;
                d_ldr_activate ldr_activate         = w_ldr_activate;
                d_task_cancel canceler              = w_task_cancel;
                d_ctrl_activate w_ctrl_activate     = ctrl_activate;
                d_ctrl_deactivate w_ctrl_deactivate = ctrl_deactivate;

                //専用デリゲートインスタンス
                d_is_pageID_selected _is_pageID_selected       = w_is_pageID_selected;
                d_is_guideline_selected _is_guideline_selected = w_is_guideline_selected;
                d_get_projectID _projectID           = w_get_projectID;
                d_pageID_data _page_rows             = w_pageID_data;
                d_guideline_data _guideline_rows     = w_guideline_data;
                d_set_techID_combo _set_techID_combo = w_set_techID_combo;

                //2重実行防止
                this.Invoke(w_ctrl_deactivate, "techIDLoadButton");
                this.Invoke(w_ctrl_deactivate, "projectIDLoadButton");
                this.Invoke(w_ctrl_deactivate, "pageIDLoadButton");

                Boolean pageID_selected = (Boolean)this.Invoke(_is_pageID_selected);
                if (!pageID_selected)
                {
                    this.Invoke(message, "【エラー】ページIDが未選択です!処理を停止します。");
                    this.Invoke(w_ctrl_activate, "techIDLoadButton");
                    this.Invoke(w_ctrl_activate, "projectIDLoadButton");
                    this.Invoke(w_ctrl_activate, "pageIDLoadButton");
                    return;
                }
                Boolean guideline_selected = (Boolean)this.Invoke(_is_guideline_selected);
                if (!guideline_selected)
                {
                    this.Invoke(message, "【エラー】達成基準が未選択です!処理を停止します。");
                    this.Invoke(w_ctrl_activate, "techIDLoadButton");
                    this.Invoke(w_ctrl_activate, "projectIDLoadButton");
                    this.Invoke(w_ctrl_activate, "pageIDLoadButton");
                    return;
                }

                if (ldr_activated == false)
                {
                    //Libraドライバ起動しエラーの場合早期退出
                    if (!(Boolean)this.Invoke(ldr_activate))
                    {
                        return;
                    }
                }
                ldr.home();
                this.Invoke(message, "Libraにログインします。(" + DateUtil.get_logtime() + ")");
                ldr.login();
                DateUtil.app_sleep(shortWait);

                //projectIDコンボから選択値を取得しセットする
                string projectID = (string)this.Invoke(_projectID);
                ldr.projectID    = projectID;

                //pageIDコンボの選択値を匿名関数で取得(複数選択の場合先頭のみ取得)
                List <List <string> > page_rows = (List <List <string> >) this.Invoke(_page_rows);
                Func <List <List <string> >, string> _pageID = delegate(List <List <string> > data)
                {
                    return(data[0][0]);
                };
                string pageID = _pageID(page_rows);

                //guidelineコンボの選択値を匿名関数で取得(複数選択の場合先頭のみ取得)
                List <string> guideline_rows            = (List <string>) this.Invoke(_guideline_rows);
                Func <List <string>, string> _guideline = delegate(List <string> data)
                {
                    return(data[0]);
                };
                string guideline = _guideline(guideline_rows);
                guideline        = "7." + guideline;

                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(canceler))
                {
                    return;
                }

                this.Invoke(message, "レポート詳細ページに移動します。(" + DateUtil.get_logtime() + ")");

                string path = ldr.fetch_report_detail_path(pageID, guideline);
                ldr.wd.Navigate().GoToUrl(path);
                DateUtil.app_sleep(shortWait);

                this.Invoke(message, "レポート詳細ページから実装番号を取得しています。(" + DateUtil.get_logtime() + ")");

                List <string> tech_rows = ldr.get_tech_list();
                this.Invoke(_set_techID_combo, tech_rows);

                this.Invoke(message, "実装番号コンボが設定完了しました。(" + DateUtil.get_logtime() + ")");

                ldr.logout();
                this.Invoke(message, "処理が完了しました。(" + DateUtil.get_logtime() + ")");

                this.Invoke(w_ctrl_activate, "techIDLoadButton");
                this.Invoke(w_ctrl_activate, "projectIDLoadButton");
                this.Invoke(w_ctrl_activate, "pageIDLoadButton");

                this.Invoke(w_ctrl_activate, "techSelectAllButton");
                this.Invoke(w_ctrl_activate, "techSelectClearButton");
            });
        }
コード例 #6
0
        //解析レポートを作成
        private void create_presv_report()
        {
            Task.Run(() =>
            {
                d_status_messenger message               = w_status_messenger;
                d_get_projectID _d_get_projectID         = w_get_projectID;
                d_ldr_activate ldr_activate              = w_ldr_activate;
                d_task_cancel canceler                   = w_task_cancel;
                d_get_workDir _d_get_workDir             = w_get_workDir;
                d_is_pageID_selected _is_pageID_selected = w_is_pageID_selected;
                d_pageID_data get_page_rows              = w_pageID_data;
                d_get_presv_operation get_operation_rows = w_get_presv_operation;
                d_get_layer_flag _get_layer_flag         = w_get_layer_flag;

                if (ldr_activated == false)
                {
                    //Libraドライバ起動しエラーの場合早期退出
                    if (!(Boolean)this.Invoke(ldr_activate))
                    {
                        return;
                    }
                }

                ldr.home();
                this.Invoke(message, "Libraにログインします。(" + DateUtil.get_logtime() + ")");
                ldr.login();
                DateUtil.app_sleep(shortWait);

                string projectID = (string)this.Invoke(_d_get_projectID);
                ldr.projectID    = projectID;

                //サイト名取得
                this.Invoke(message, "レポートインデックスページに移動します。(" + DateUtil.get_logtime() + ")");
                ldr.browse_repo();
                DateUtil.app_sleep(shortWait);
                string site_name = ldr.get_site_name();

                //解析結果保存ディレクトリ作成
                string save_path = (string)this.Invoke(_d_get_workDir) + projectID + "_" + site_name + @"\";
                if (!Directory.Exists(save_path))
                {
                    Directory.CreateDirectory(save_path);
                }

                //pageIDコンボから選択値を取得
                List <List <string> > page_rows = (List <List <string> >) this.Invoke(get_page_rows);

                //operationコンボから選択値を取得
                List <string> operation_rows = (List <string>) this.Invoke(get_operation_rows);

                //重ね掛け判定
                Boolean layer_flag = (Boolean)this.Invoke(_get_layer_flag);

                this.Invoke(message, "解析対象ページに順次アクセスしていきます。(" + DateUtil.get_logtime() + ")");

                //pageのループ
                foreach (var page_row in page_rows)
                {
                    string pageID  = page_row[0];
                    string pageURL = page_row[1];
                    this.Invoke(message, pageID + " を処理しています。(" + DateUtil.get_logtime() + ")");
                    ldr.wd.Navigate().GoToUrl(pageURL);
                    DateUtil.app_sleep(shortWait);

                    //タスクのキャンセル判定
                    if ((Boolean)this.Invoke(canceler))
                    {
                        return;
                    }

                    //operationのループ
                    foreach (string opt in operation_rows)
                    {
                        switch (opt)
                        {
                        case "css-cut":
                            ldr.jexe.ExecuteScript(JsUtil.css_cut());
                            break;

                        case "document-link":
                            ldr.jexe.ExecuteScript(JsUtil.document_link());
                            break;

                        case "target-attr":
                            ldr.jexe.ExecuteScript(JsUtil.target_attr());
                            break;

                        case "image-alt":
                            ldr.jexe.ExecuteScript(JsUtil.image_alt());
                            break;

                        case "lang-attr":
                            ldr.jexe.ExecuteScript(JsUtil.lang_attr());
                            break;

                        case "semantic-check":
                            ldr.jexe.ExecuteScript(JsUtil.semantic_check());
                            break;

                        case "tag-label-and-title-attr":
                            ldr.jexe.ExecuteScript(JsUtil.tag_label_and_title_attr());
                            break;
                        }
                        if (layer_flag == false)
                        {
                            ldr.fullpage_screenshot_as(save_path + pageID + "." + opt + ".png");
                            ldr.wd.Navigate().GoToUrl(pageURL); //reload
                        }
                    }
                    if (layer_flag == true)
                    {
                        string sufix = "";
                        foreach (string cop in operation_rows)
                        {
                            sufix += cop + ".";
                        }
                        ldr.fullpage_screenshot_as(save_path + pageID + "." + sufix + "png");
                    }
                }

                ldr.logout();
                this.Invoke(message, "処理が完了しました。(" + DateUtil.get_logtime() + ")");
            });
        }
コード例 #7
0
        //プロジェクトIDコンボをセット
        private void set_projectID_combo()
        {
            Task.Run(() =>
            {
                //共通デリゲートインスタンス
                d_status_messenger message          = w_status_messenger;
                d_ldr_activate ldr_activate         = w_ldr_activate;
                d_task_cancel canceler              = w_task_cancel;
                d_ctrl_activate w_ctrl_activate     = ctrl_activate;
                d_ctrl_deactivate w_ctrl_deactivate = ctrl_deactivate;

                //専用デリゲートインスタンス
                d_set_projectID_combo _set_projectID_combo = w_set_projectID_combo;

                //2重実行防止
                this.Invoke(w_ctrl_deactivate, "projectIDLoadButton");
                this.Invoke(w_ctrl_deactivate, "pageIDLoadButton");
                this.Invoke(w_ctrl_deactivate, "doUrlTaskButton");
                this.Invoke(w_ctrl_deactivate, "cancelUrlTaskButton");

                if (ldr_activated == false)
                {
                    //Libraドライバ起動しエラーの場合早期退出
                    if (!(Boolean)this.Invoke(ldr_activate))
                    {
                        return;
                    }
                }
                ldr.home();
                this.Invoke(message, "Libraにログインします。(" + DateUtil.get_logtime() + ")");
                ldr.login();
                DateUtil.app_sleep(shortWait);


                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(canceler))
                {
                    return;
                }

                this.Invoke(message, "サイト一覧を取得しています。(" + DateUtil.get_logtime() + ")");
                List <List <string> > data = new List <List <string> >();
                data.AddRange(ldr.get_site_list());

                this.Invoke(message, "検査終了サイト一覧を取得しています。(" + DateUtil.get_logtime() + ")");
                ldr.completed_site();
                DateUtil.app_sleep(shortWait);
                data.AddRange(ldr.get_site_list());

                this.Invoke(message, "証明書発行サイト一覧を取得しています。(" + DateUtil.get_logtime() + ")");
                ldr.certificated_site();
                DateUtil.app_sleep(shortWait);
                data.AddRange(ldr.get_site_list());

                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(canceler))
                {
                    return;
                }


                this.Invoke(_set_projectID_combo, data);
                this.Invoke(message, "サイト名コンボが設定完了しました。(" + DateUtil.get_logtime() + ")");
                ldr.logout();
                this.Invoke(message, "処理が完了しました。(" + DateUtil.get_logtime() + ")");

                this.Invoke(w_ctrl_activate, "projectIDLoadButton");
                this.Invoke(w_ctrl_activate, "pageIDLoadButton");

                this.Invoke(w_ctrl_activate, "doUrlTaskButton");
                this.Invoke(w_ctrl_activate, "cancelUrlTaskButton");
                this.Invoke(w_ctrl_activate, "createSiteInfoBookButton");
            });
        }
コード例 #8
0
ファイル: BrowseTask.cs プロジェクト: szkmiyabi/LibraUtilGUI
        //選択されたPIDのページをブラウズ
        private void do_browse_page_as(string browser_name)
        {
            Task.Run(() =>
            {
                d_get_browse_mode _mode      = w_get_browse_mode;
                d_get_projectID _projectID   = w_get_projectID;
                d_pageID_data _page_rows     = w_pageID_data;
                d_ldr_activate _ldr_activate = w_ldr_activate;

                string mode      = (string)this.Invoke(_mode);
                string projectId = (string)this.Invoke(_projectID);
                List <List <string> > page_rows = (List <List <string> >) this.Invoke(_page_rows);

                foreach (List <string> col in page_rows)
                {
                    string pageID  = col[0];
                    string pageURL = col[1];

                    if (mode == "normal")
                    {
                        switch (browser_name)
                        {
                        case "firefox":
                            browseByFirefox(pageURL);
                            break;

                        case "ie":
                            browseByIE(pageURL);
                            break;

                        case "chrome":
                            browseByChrome(pageURL);
                            break;
                        }
                    }
                    else if (mode == "survey")
                    {
                        if (ldr_activated == false)
                        {
                            if (!(Boolean)this.Invoke(_ldr_activate))
                            {
                                return;
                            }
                            ldr.projectID = _projectID();
                        }
                        string svpage_url = ldr.get_sv_mainpage_url(pageID);
                        switch (browser_name)
                        {
                        case "firefox":
                            browseByFirefox(svpage_url);
                            break;

                        case "ie":
                            browseByIE(svpage_url);
                            break;

                        case "chrome":
                            browseByChrome(svpage_url);
                            break;
                        }
                    }
                }
            });
        }
コード例 #9
0
        //PIDのテキストファイル出力
        private void do_create_pid_list()
        {
            Task.Run(() =>
            {
                //共通デリゲートインスタンス
                d_status_messenger message  = w_status_messenger;
                d_ldr_activate ldr_activate = w_ldr_activate;
                d_task_cancel canceler      = w_task_cancel;

                //専用デリゲートインスタンス(条件系)
                d_get_UrlTask_source_flag _get_UrlTask_source_flag = w_get_UrlTask_source_flag;
                d_is_pageID_selected _is_pageID_selected           = w_is_pageID_selected;

                //専用デリゲートインスタンス(取得系)
                d_get_workDir _get_workDir     = w_get_workDir;
                d_get_projectID _get_projectID = w_get_projectID;
                d_pageID_data get_page_rows    = w_pageID_data;

                if (ldr_activated == false)
                {
                    //Libraドライバ起動しエラーの場合早期退出
                    if (!(Boolean)this.Invoke(ldr_activate))
                    {
                        return;
                    }
                }

                ldr.home();
                this.Invoke(message, "Libraにログインします。(" + DateUtil.get_logtime() + ")");
                ldr.login();
                DateUtil.app_sleep(shortWait);

                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(canceler))
                {
                    return;
                }

                string projectID = (string)this.Invoke(_get_projectID);
                ldr.projectID    = projectID;

                string flag = (string)this.Invoke(_get_UrlTask_source_flag);
                List <List <string> > data = new List <List <string> >();
                string site_name           = "";

                if (flag == "report")
                {
                    this.Invoke(message, "レポートインデックスページに移動します。(" + DateUtil.get_logtime() + ")");
                    ldr.browse_repo();
                    DateUtil.app_sleep(shortWait);

                    //タスクのキャンセル判定
                    if ((Boolean)this.Invoke(canceler))
                    {
                        return;
                    }

                    site_name = ldr.get_site_name();
                    data      = ldr.get_page_list_data();
                }
                else if (flag == "combo")
                {
                    if (!(Boolean)this.Invoke(_is_pageID_selected))
                    {
                        this.Invoke(message, "ページIDが選択されていません。処理を停止します。");
                        ldr.logout();
                        this.Invoke(message, "処理を停止しました。(" + DateUtil.get_logtime() + ")");
                        return;
                    }
                    this.Invoke(message, "レポートインデックスページに移動します。(" + DateUtil.get_logtime() + ")");
                    ldr.browse_repo();
                    DateUtil.app_sleep(shortWait);

                    //タスクのキャンセル判定
                    if ((Boolean)this.Invoke(canceler))
                    {
                        return;
                    }

                    site_name = ldr.get_site_name();
                    data      = (List <List <string> >) this.Invoke(get_page_rows);
                }
                else if (flag == "svpage")
                {
                    this.Invoke(message, "検査メイン画面に移動します。(" + DateUtil.get_logtime() + ")");
                    ldr.browse_sv_mainpage();
                    DateUtil.app_sleep(longWait);
                    data = ldr.get_page_list_data_from_svpage();

                    //タスクのキャンセル判定
                    if ((Boolean)this.Invoke(canceler))
                    {
                        return;
                    }

                    this.Invoke(message, "レポートインデックスページに移動します。(" + DateUtil.get_logtime() + ")");
                    ldr.browse_repo();
                    DateUtil.app_sleep(shortWait);
                    site_name = ldr.get_site_name();

                    //タスクのキャンセル判定
                    if ((Boolean)this.Invoke(canceler))
                    {
                        return;
                    }
                }

                string save_dir      = (string)this.Invoke(_get_workDir);
                string save_filename = save_dir + projectID + "_" + site_name + " PID.txt";

                List <string> fetch_data = new List <string>();
                for (int i = 0; i < data.Count; i++)
                {
                    List <string> cols = (List <string>)data[i];
                    string col         = (string)cols[0];
                    fetch_data.Add(col);
                }

                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(canceler))
                {
                    return;
                }

                FileUtil fu = new FileUtil();
                fu.write_text_data(fetch_data, save_filename);

                ldr.logout();
                this.Invoke(message, "処理が完了しました。(" + DateUtil.get_logtime() + ")");
            });
        }
コード例 #10
0
        //PID+URLのExcelファイル出力
        private void do_create_pid_url_list_xlsx()
        {
            Task.Run(() =>
            {
                //共通デリゲートインスタンス
                d_status_messenger message  = w_status_messenger;
                d_ldr_activate ldr_activate = w_ldr_activate;
                d_task_cancel canceler      = w_task_cancel;

                //専用デリゲートインスタンス(条件系)
                d_get_UrlTask_source_flag _get_UrlTask_source_flag = w_get_UrlTask_source_flag;
                d_is_pageID_selected _is_pageID_selected           = w_is_pageID_selected;

                //専用デリゲートインスタンス(取得系)
                d_get_workDir _get_workDir     = w_get_workDir;
                d_get_projectID _get_projectID = w_get_projectID;
                d_pageID_data get_page_rows    = w_pageID_data;

                if (ldr_activated == false)
                {
                    //Libraドライバ起動しエラーの場合早期退出
                    if (!(Boolean)this.Invoke(ldr_activate))
                    {
                        return;
                    }
                }

                ldr.home();
                this.Invoke(message, "Libraにログインします。(" + DateUtil.get_logtime() + ")");
                ldr.login();
                DateUtil.app_sleep(shortWait);

                string projectID = (string)this.Invoke(_get_projectID);
                ldr.projectID    = projectID;

                string flag = (string)this.Invoke(_get_UrlTask_source_flag);
                List <List <string> > data = new List <List <string> >();
                string site_name           = "";

                if (flag == "report")
                {
                    this.Invoke(message, "レポートインデックスページに移動します。(" + DateUtil.get_logtime() + ")");
                    ldr.browse_repo();
                    DateUtil.app_sleep(shortWait);

                    //タスクのキャンセル判定
                    if ((Boolean)this.Invoke(canceler))
                    {
                        return;
                    }

                    site_name = ldr.get_site_name();
                    data      = ldr.get_page_list_data();
                }
                else if (flag == "combo")
                {
                    if (!(Boolean)this.Invoke(_is_pageID_selected))
                    {
                        this.Invoke(message, "ページIDが選択されていません。処理を停止します。");
                        ldr.logout();
                        this.Invoke(message, "処理を停止しました。(" + DateUtil.get_logtime() + ")");
                        return;
                    }
                    this.Invoke(message, "レポートインデックスページに移動します。(" + DateUtil.get_logtime() + ")");
                    ldr.browse_repo();
                    DateUtil.app_sleep(shortWait);

                    //タスクのキャンセル判定
                    if ((Boolean)this.Invoke(canceler))
                    {
                        return;
                    }

                    site_name = ldr.get_site_name();
                    data      = (List <List <string> >) this.Invoke(get_page_rows);
                }
                else if (flag == "svpage")
                {
                    this.Invoke(message, "検査メイン画面に移動します。(" + DateUtil.get_logtime() + ")");
                    ldr.browse_sv_mainpage();
                    DateUtil.app_sleep(longWait);
                    data = ldr.get_page_list_data_from_svpage();

                    //タスクのキャンセル判定
                    if ((Boolean)this.Invoke(canceler))
                    {
                        return;
                    }

                    this.Invoke(message, "レポートインデックスページに移動します。(" + DateUtil.get_logtime() + ")");
                    ldr.browse_repo();
                    DateUtil.app_sleep(shortWait);
                    site_name = ldr.get_site_name();

                    //タスクのキャンセル判定
                    if ((Boolean)this.Invoke(canceler))
                    {
                        return;
                    }
                }

                //ヘッダー行の処理
                List <string> head_row = new List <string>()
                {
                    "PID", "URL"
                };
                data.Insert(0, head_row);

                string save_dir      = (string)this.Invoke(_get_workDir);
                string save_filename = save_dir + projectID + "_" + site_name + " URL.xlsx";

                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(canceler))
                {
                    return;
                }

                ExcelUtil eu = new ExcelUtil();
                eu.save_xlsx_as(data, save_filename);

                ldr.logout();
                this.Invoke(message, "処理が完了しました。(" + DateUtil.get_logtime() + ")");
            });
        }
コード例 #11
0
        //DOM展開ソースコードを取得
        private void get_dom_expanded_srccode()
        {
            Task.Run(() =>
            {
                d_status_messenger message               = w_status_messenger;
                d_get_projectID _d_get_projectID         = w_get_projectID;
                d_ldr_activate ldr_activate              = w_ldr_activate;
                d_task_cancel canceler                   = w_task_cancel;
                d_get_workDir _d_get_workDir             = w_get_workDir;
                d_is_pageID_selected _is_pageID_selected = w_is_pageID_selected;
                d_pageID_data get_page_rows              = w_pageID_data;
                d_get_presv_operation get_operation_rows = w_get_presv_operation;
                d_get_layer_flag _get_layer_flag         = w_get_layer_flag;

                if (ldr_activated == false)
                {
                    //Libraドライバ起動しエラーの場合早期退出
                    if (!(Boolean)this.Invoke(ldr_activate))
                    {
                        return;
                    }
                }

                ldr.home();
                this.Invoke(message, "Libraにログインします。(" + DateUtil.get_logtime() + ")");
                ldr.login();
                DateUtil.app_sleep(shortWait);

                string projectID = (string)this.Invoke(_d_get_projectID);
                ldr.projectID    = projectID;

                //サイト名取得
                this.Invoke(message, "レポートインデックスページに移動します。(" + DateUtil.get_logtime() + ")");
                ldr.browse_repo();
                DateUtil.app_sleep(shortWait);
                string site_name = ldr.get_site_name();

                //解析結果保存ディレクトリ作成
                string save_path = (string)this.Invoke(_d_get_workDir) + projectID + "_" + site_name + @"\";
                if (!Directory.Exists(save_path))
                {
                    Directory.CreateDirectory(save_path);
                }

                //pageIDコンボから選択値を取得
                List <List <string> > page_rows = (List <List <string> >) this.Invoke(get_page_rows);

                //operationコンボから選択値を取得
                List <string> operation_rows = (List <string>) this.Invoke(get_operation_rows);

                //重ね掛け判定
                // Boolean layer_flag = (Boolean)this.Invoke(_get_layer_flag);

                this.Invoke(message, "解析対象ページに順次アクセスしていきます。(" + DateUtil.get_logtime() + ")");

                FileUtil fu = new FileUtil();

                //pageのループ
                foreach (var page_row in page_rows)
                {
                    string pageID  = page_row[0];
                    string pageURL = page_row[1];
                    this.Invoke(message, pageID + " を処理しています。(" + DateUtil.get_logtime() + ")");
                    ldr.wd.Navigate().GoToUrl(pageURL);
                    DateUtil.app_sleep(shortWait);
                    string docc = (string)ldr.jexe.ExecuteScript(JsUtil.get_doctype_string());
                    string data = docc + "\r\n" + ldr.wd.PageSource;
                    fu.write_anyfile_encode_by(data, "utf-8", save_path + pageID + ".html");
                }

                ldr.logout();
                this.Invoke(message, "処理が完了しました。(" + DateUtil.get_logtime() + ")");
            });
        }
コード例 #12
0
        //レポートを表示
        private void display_srccode_report()
        {
            Task.Run(() =>
            {
                d_status_messenger message                = w_status_messenger;
                d_get_projectID get_projectID             = w_get_projectID;
                d_get_basic_auth_cond get_basic_auth_cond = w_get_basic_auth_cond;
                d_get_source_flag get_source_flag         = w_get_source_flag;
                d_ldr_activate ldr_activate               = w_ldr_activate;
                d_task_cancel canceler    = w_task_cancel;
                d_get_workDir get_workDir = w_get_workDir;
                d_is_pageID_selected is_pageID_selected       = w_is_pageID_selected;
                d_is_guideline_selected is_guideline_selected = w_is_guideline_selected;
                d_is_tech_selected is_tech_selected           = w_is_tech_selected;
                d_pageID_data get_page_rows                  = w_pageID_data;
                d_guideline_data get_guideline_rows          = w_guideline_data;
                d_get_pageID_sufix get_pageID_sufix          = w_get_pageID_sufix;
                d_get_guideline_sufix get_guideline_sufix    = w_get_guideline_sufix;
                d_data_grid_as_SrcTask _data_grid_as_SrcTask = w_data_grid_as_SrcTask;
                d_tech_data get_tech_rows = w_tech_data;

                if (ldr_activated == false)
                {
                    //Libraドライバ起動しエラーの場合早期退出
                    if (!(Boolean)this.Invoke(ldr_activate))
                    {
                        return;
                    }
                }

                ldr.home();
                this.Invoke(message, "Libraにログインします。(" + DateUtil.get_logtime() + ")");
                ldr.login();
                DateUtil.app_sleep(shortWait);

                string projectID = (string)this.Invoke(get_projectID);
                ldr.projectID    = projectID;

                //サイト名取得
                this.Invoke(message, "レポートインデックスページに移動します。(" + DateUtil.get_logtime() + ")");
                ldr.browse_repo();
                DateUtil.app_sleep(shortWait);
                string site_name = ldr.get_site_name();

                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(canceler))
                {
                    return;
                }

                //pageIDコンボから選択値を取得
                List <string> guideline_rows = (List <string>) this.Invoke(get_guideline_rows);

                //guidelineコンボから選択値を取得
                List <List <string> > page_rows = (List <List <string> >) this.Invoke(get_page_rows);

                //techデータ初期化
                List <string> tech_rows = new List <string>();

                //レポートデータ初期化
                List <List <string> > rep_data = new List <List <string> >();

                this.Invoke(message, "検査メインページに順次アクセスしていきます。(" + DateUtil.get_logtime() + ")");

                //タスクのキャンセル判定
                if ((Boolean)this.Invoke(canceler))
                {
                    return;
                }

                //処理タイプ条件分岐
                string opt_type = "";
                if ((Boolean)this.Invoke(is_tech_selected))
                {
                    opt_type = "qry";
                }
                else
                {
                    opt_type = "seq";
                }

                switch (opt_type)
                {
                //絞り込み
                case "qry":

                    //techコンボから値取得
                    tech_rows = (List <string>) this.Invoke(get_tech_rows);

                    //guidelineのループ
                    for (int i = 0; i < guideline_rows.Count; i++)
                    {
                        if (i > 0)
                        {
                            break;            //複数達成基準には対応しない
                        }
                        string guideline      = guideline_rows[i];
                        string guideline_disp = guideline;

                        //タスクのキャンセル判定
                        if ((Boolean)this.Invoke(canceler))
                        {
                            return;
                        }

                        //pageのループ
                        for (int j = 0; j < page_rows.Count; j++)
                        {
                            List <string> page_row = page_rows[j];
                            string pageID          = page_row[0];
                            string pageURL         = page_row[1];

                            //techのループ
                            for (int k = 0; k < tech_rows.Count; k++)
                            {
                                string tech = tech_rows[k];
                                this.Invoke(message, pageID + ", " + guideline_disp + ", " + tech + " を処理しています。 (" + DateUtil.get_logtime() + ")");
                                string path = ldr.get_sv_mainpage_url(pageID);
                                ldr.wd.Navigate().GoToUrl(path);
                                DateUtil.app_sleep(midWait);

                                ldr.select_guideline(guideline);
                                DateUtil.app_sleep(midWait);

                                ldr.select_techlist(tech);
                                DateUtil.app_sleep(midWait);

                                //ldr.browse_all_sv_page();
                                List <string> srccode_rows = ldr.get_srccode_list();
                                foreach (string srccode in srccode_rows)
                                {
                                    List <string> row_data = new List <string>();
                                    row_data.Add(pageID);
                                    row_data.Add(pageURL);
                                    row_data.Add(guideline);
                                    row_data.Add(tech);
                                    row_data.Add(srccode);
                                    rep_data.Add(row_data);
                                }

                                //余分な行がついてくるので削除
                                rep_data.RemoveAt(rep_data.Count - 1);
                            }
                        }
                    }
                    break;

                //全件
                case "seq":

                    //guidelineのループ
                    for (int i = 0; i < guideline_rows.Count; i++)
                    {
                        string guideline      = guideline_rows[i];
                        string guideline_disp = guideline;

                        //タスクのキャンセル判定
                        if ((Boolean)this.Invoke(canceler))
                        {
                            return;
                        }

                        //pageのループ
                        for (int j = 0; j < page_rows.Count; j++)
                        {
                            List <string> page_row = page_rows[j];
                            string pageID          = page_row[0];
                            string pageURL         = page_row[1];

                            //検査メイン画面アクセス
                            string path = ldr.get_sv_mainpage_url(pageID);
                            ldr.wd.Navigate().GoToUrl(path);
                            DateUtil.app_sleep(midWait);

                            ldr.select_guideline(guideline);
                            DateUtil.app_sleep(midWait);

                            //LibraDriverクラスからtechデータ取得
                            tech_rows = ldr.get_tech_list_from_svpage();

                            //techのループ
                            for (int k = 0; k < tech_rows.Count; k++)
                            {
                                string tech = tech_rows[k];
                                this.Invoke(message, pageID + ", " + guideline_disp + ", " + tech + " を処理しています。 (" + DateUtil.get_logtime() + ")");

                                ldr.select_techlist(tech);
                                DateUtil.app_sleep(midWait);

                                //ldr.browse_all_sv_page();
                                List <string> srccode_rows = ldr.get_srccode_list();
                                foreach (string srccode in srccode_rows)
                                {
                                    List <string> row_data = new List <string>();
                                    row_data.Add(pageID);
                                    row_data.Add(pageURL);
                                    row_data.Add(guideline);
                                    row_data.Add(tech);
                                    row_data.Add(srccode);
                                    rep_data.Add(row_data);
                                }

                                //余分な行がついてくるので削除
                                rep_data.RemoveAt(rep_data.Count - 1);
                            }
                        }
                    }
                    break;
                }

                //DataGridレポート処理
                this.Invoke(message, "データグリッドビューへの書き出しを開始します。(" + DateUtil.get_logtime() + ")");
                List <string> head_row = TextUtil.get_header_SrcTask();
                rep_data.Insert(0, head_row);


                this.Invoke(_data_grid_as_SrcTask, rep_data);

                ldr.logout();
                this.Invoke(message, "処理が完了しました。(" + DateUtil.get_logtime() + ")");
            });
        }